]> git.eshelyaron.com Git - emacs.git/commitdiff
add :bind* keyword for `bind-key*`
authorJustin Talbott <justin@waymondo.com>
Tue, 16 Sep 2014 20:38:58 +0000 (16:38 -0400)
committerJustin Talbott <justin@waymondo.com>
Tue, 16 Sep 2014 20:39:21 +0000 (16:39 -0400)
lisp/use-package/use-package.el

index 34ea1ca30e56fb84d950880c8bf8a34cd41d9239..68aa3c9d0b6a0306b5c29e1eb5f477e0d59b1da4 100644 (file)
@@ -146,6 +146,7 @@ Return nil when the queue is empty."
 (defvar use-package-keywords
   '(
      :bind
+     :bind*
      :commands
      :config
      :defer
@@ -247,6 +248,8 @@ For full documentation. please see commentary.
 :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
@@ -254,7 +257,7 @@ For full documentation. please see commentary.
 :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.
@@ -279,6 +282,7 @@ For full documentation. please see commentary.
          (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))
@@ -371,6 +375,12 @@ For full documentation. please see commentary.
                                 (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