Add conditional loading examples to use-package manual
* doc/misc/use-package.texi (Conditional loading): Expand section with examples. Resolves https://github.com/jwiegley/use-package/issues/693
This commit is contained in:
parent
67ef92fb0e
commit
a17a6036dd
1 changed files with 45 additions and 6 deletions
|
@ -394,22 +394,61 @@ is provided as an alias for @code{:if}. Finally, the @code{:unless}
|
|||
keyword is the inverse of @code{:if}, such that @w{@code{:unless foo}}
|
||||
means the same thing as @w{@code{:if (not foo)}}.
|
||||
|
||||
For example, if you only want @samp{foo} in graphical Emacs sessions,
|
||||
you could use the following:
|
||||
For example, if you only want to load @samp{foo} in graphical Emacs
|
||||
sessions, you could use the following:
|
||||
|
||||
@lisp
|
||||
(use-package foo
|
||||
:if (display-graphic-p))
|
||||
@end lisp
|
||||
|
||||
Another common use case is to make it conditional on the operating
|
||||
system:
|
||||
@subheading Some common use cases
|
||||
|
||||
Here are some common cases for conditional loading, and how to achieve
|
||||
them.
|
||||
|
||||
@itemize
|
||||
|
||||
@item Operating system
|
||||
|
||||
This example loads a package only on GNU/Linux. See the
|
||||
@code{system-type} docstring for other valid values.
|
||||
|
||||
@lisp
|
||||
(use-package foo
|
||||
:if (memq window-system '(mac ns)))
|
||||
:if (eq system-type 'gnu/linux)
|
||||
@end lisp
|
||||
|
||||
@item Window system
|
||||
|
||||
This example loads a package only on macOS and X. See the
|
||||
@code{window-system} docstring for valid values.
|
||||
|
||||
@lisp
|
||||
:if (memq window-system '(ns x))
|
||||
@end lisp
|
||||
|
||||
@item Installed package
|
||||
|
||||
This example loads a package only when the @samp{foo} package is
|
||||
installed.
|
||||
|
||||
@lisp
|
||||
:if (package-installed-p 'foo)
|
||||
@end lisp
|
||||
|
||||
@item Libraries in @code{load-path}
|
||||
|
||||
This example loads a package only when @file{foo.el} is available in
|
||||
your @code{load-path} (for example, if you installed that file
|
||||
manually):
|
||||
|
||||
@lisp
|
||||
:if (locate-library "foo.el")
|
||||
@end lisp
|
||||
@end itemize
|
||||
|
||||
@subheading Making conditional loading affect @code{:preface} and @code{:ensure}
|
||||
|
||||
@cindex conditional loading before @code{:preface} or @code{:ensure}
|
||||
If you need to conditionalize a use-package form so that the condition
|
||||
occurs before even @code{:ensure} or @code{:preface}, use @code{when}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue