emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[nongnu] elpa/bind-map 40ed95d4d5 80/97: Add bindings keyword


From: ELPA Syncer
Subject: [nongnu] elpa/bind-map 40ed95d4d5 80/97: Add bindings keyword
Date: Thu, 20 Jan 2022 07:59:26 -0500 (EST)

branch: elpa/bind-map
commit 40ed95d4d57192ed0c472e637778e98643ba9afa
Author: justbur <justin@burkett.cc>
Commit: justbur <justin@burkett.cc>

    Add bindings keyword
---
 bind-map.el | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/bind-map.el b/bind-map.el
index c6a4a330c6..7eeb5bcbe6 100644
--- a/bind-map.el
+++ b/bind-map.el
@@ -252,7 +252,12 @@ unspecified the bindings are global.
 
 :prefix-cmd COMMAND-NAME
 
-Declare a prefix command for MAP named COMMAND-NAME."
+Declare a prefix command for MAP named COMMAND-NAME.
+
+:bindings \(KEY1 BINDING1 KEY2 BINDING2 ...\)
+
+Bind keys when declaring the map. This is optional, but added as
+a convenience."
   (let* ((root-map (intern (format "%s-root-map" map)))
          (active-var (intern (format "%s-active" map)))
          (prefix-cmd (or (plist-get args :prefix-cmd)
@@ -273,7 +278,8 @@ mode maps. Set up by bind-map.el." map))
          (evil-states (or (plist-get args :evil-states)
                           bind-map-default-evil-states))
          (minor-modes (plist-get args :minor-modes))
-         (major-modes (plist-get args :major-modes)))
+         (major-modes (plist-get args :major-modes))
+         (bindings (plist-get args :bindings)))
     (append
      '(progn)
 
@@ -358,7 +364,11 @@ mode maps. Set up by bind-map.el." map))
                      (push (list ',override-mode state key ',prefix-cmd)
                            bind-map-evil-local-bindings))
                    (evil-global-set-key state key ',prefix-cmd)))
-               (evil-normalize-keymaps)))))))))
+               (evil-normalize-keymaps))))))
+
+     (when bindings
+       `((bind-map-set-keys ,map
+           ,@bindings))))))
 (put 'bind-map 'lisp-indent-function 'defun)
 
 (defun bind-map--get-prop (keyword args parent-args)
@@ -379,7 +389,8 @@ and :evil-states. All others must be declared explicitly."
   (declare (indent defun))
   (let* ((parent-args (symbol-plist parent))
          (minor-modes (plist-get args :minor-modes))
-         (major-modes (plist-get args :major-modes)))
+         (major-modes (plist-get args :major-modes))
+         (bindings (plist-get args :bindings)))
     `(progn
        (if (and (null ',minor-modes)
                 (null ',major-modes))
@@ -390,6 +401,7 @@ reference to :major-modes or :minor-modes")
            :override-mode-name ,(plist-get args :override-mode-name)
            :minor-modes ,minor-modes
            :major-modes ,major-modes
+           :bindings ,bindings
            ,@(bind-map--get-prop :override-minor-modes args parent-args)
            ,@(bind-map--get-prop :keys args parent-args)
            ,@(bind-map--get-prop :evil-keys args parent-args)



reply via email to

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