(defvar use-package-keywords
'(
:bind
+ :bind*
:commands
:config
:defer
:init Code to run when `use-package' form evals.
:bind Perform key bindings, and define autoload for bound
commands.
+:bind* Perform key bindings, and define autoload for bound
+ commands, overriding all minor mode bindings.
:commands Define autoloads for given commands.
:pre-load Code to run when `use-package' form evals and before
anything else. Unlike :init this form runs before the
:mode Form to be added to `auto-mode-alist'.
:interpreter Form to be added to `interpreter-mode-alist'.
:defer Defer loading of package -- automatic
- if :commands, :bind, :mode or :interpreter are used.
+ if :commands, :bind, :bind*, :mode or :interpreter are used.
:demand Prevent deferred loading in all cases.
:config Runs if and when package loads.
:if Conditional loading.
(idle-body (use-package-plist-get args :idle))
(idle-priority (use-package-plist-get args :idle-priority))
(keybindings-alist (use-package-plist-get args :bind t t))
+ (overriding-keybindings-alist (use-package-plist-get args :bind* t t))
(mode (use-package-plist-get args :mode t t))
(mode-alist
(if (stringp mode) (cons mode name) mode))
(quote ,(cdr binding))))
keybindings-alist)
+ (funcall init-for-commands
+ #'(lambda (binding)
+ `(bind-key* ,(car binding)
+ (quote ,(cdr binding))))
+ overriding-keybindings-alist)
+
(funcall init-for-commands
#'(lambda (mode)
`(add-to-list 'auto-mode-alist