diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2022-12-08 02:25:53 +0100 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2022-12-08 05:27:59 +0100 |
commit | 141fe8b827399057e2f854cd5e6b0c148c5fe12b (patch) | |
tree | a52b8d2bb75830dfdf882443df82585a9d2a1d45 | |
parent | 888558ec425031e878c4243b205bd281134c10b2 (diff) | |
download | emacs-141fe8b827.tar.gz |
use-package: Improve :mode keyword documentation
* doc/misc/use-package.texi (Modes and interpreters): Improve
section and document the use of a list of regexps.
Resolves https://github.com/jwiegley/use-package/issues/996
-rw-r--r-- | doc/misc/use-package.texi | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/doc/misc/use-package.texi b/doc/misc/use-package.texi index 7819cb250d0..c1cc22808e6 100644 --- a/doc/misc/use-package.texi +++ b/doc/misc/use-package.texi @@ -1064,19 +1064,43 @@ Similar to @code{:bind}, you can use @code{:mode} and @code{:interpreter} to establish a deferred binding within the @code{auto-mode-alist} and @code{interpreter-mode-alist} variables. The specifier to either keyword can be a cons cell, a list of cons -cells, or a string or regexp: +cells, or a string or regexp. + +The following example reproduces the default @code{ruby-mode} +configuration, exactly as it is in Emacs out-of-the-box. That mode is +enabled automatically when a file whose name matches the regexp +@code{"\\.rb\\'"} (a file with the @samp{.rb} extension), or when the +first line of the file (known as the ``shebang'') matches the string +@code{"ruby"}: @lisp (use-package ruby-mode :mode "\\.rb\\'" :interpreter "ruby") +@end lisp + +The default @code{python-mode} configuration can be reproduced using +the below declaration. Note that the package that should be loaded +differs from the mode name in this case, so we must use a cons: +@lisp ;; The package is "python" but the mode is "python-mode": (use-package python :mode ("\\.py\\'" . python-mode) :interpreter ("python" . python-mode)) @end lisp +Both the @code{:mode} and @code{:interpreter} keywords also accept a +list of regexps: + +@lisp +(use-package foo + ;; Equivalent to "\\(ba[rz]\\)\\'": + :mode ("\\.bar\\'" "\\.baz\\'") + ;; Equivalent to "\\(foo[ab]\\)": + :interpreter ("fooa" "foob")) +@end lisp + @node Magic handlers @section Magic handlers |