emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/use-package 141fe8b8273: use-package: Improve :mode keyword docu


From: Stefan Kangas
Subject: feature/use-package 141fe8b8273: use-package: Improve :mode keyword documentation
Date: Wed, 7 Dec 2022 23:28:25 -0500 (EST)

branch: feature/use-package
commit 141fe8b827399057e2f854cd5e6b0c148c5fe12b
Author: Stefan Kangas <stefankangas@gmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>

    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
---
 doc/misc/use-package.texi | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

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
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]