Move define-key! macro to core-lib
This commit is contained in:
parent
818cb27724
commit
796af69c28
2 changed files with 28 additions and 21 deletions
|
@ -153,27 +153,6 @@ For example, :nvi will map to (list 'normal 'visual 'insert). See
|
|||
(defvar doom--defer nil)
|
||||
(defvar doom--local nil)
|
||||
|
||||
(defmacro define-key! (keymaps key def &rest rest)
|
||||
"TODO"
|
||||
(declare (indent defun))
|
||||
(if (and (listp keymaps)
|
||||
(not (eq (car-safe keymaps) 'quote)))
|
||||
`(dolist (map (list ,@keymaps))
|
||||
,(macroexpand `(define-key! map ,key ,def ,@rest)))
|
||||
(when (eq (car-safe keymaps) 'quote)
|
||||
(pcase (cadr keymaps)
|
||||
(`global (setq keymaps '(current-global-map)))
|
||||
(`local (setq keymaps '(current-local-map)))
|
||||
(x (error "%s is not a valid keymap" x))))
|
||||
`(let ((map ,keymaps))
|
||||
(define-key map ,key ,def)
|
||||
,@(let (forms)
|
||||
(while rest
|
||||
(let ((key (pop rest))
|
||||
(def (pop rest)))
|
||||
(push `(define-key map ,key ,def) forms)))
|
||||
(nreverse forms)))))
|
||||
|
||||
(defmacro map! (&rest rest)
|
||||
"A nightmare of a key-binding macro that will use `evil-define-key*',
|
||||
`define-key', `local-set-key' and `global-set-key' depending on context and
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue