core: add :eval-after-load
keyword to spacemmacs|evilify-map
macro
This commit is contained in:
parent
6c171fdc48
commit
bca0999726
|
@ -14,26 +14,32 @@
|
|||
(declare (indent 1))
|
||||
(let* ((mode (plist-get props :mode))
|
||||
(evilified-map (plist-get props :evilified-map))
|
||||
(eval-after-load (plist-get props :eval-after-load))
|
||||
(bindings (spacemacs/mplist-get props :bindings))
|
||||
(defkey (when bindings `(evil-define-key 'evilified ,map ,@bindings))))
|
||||
`(progn
|
||||
(let ((sorted-map (spacemacs//evilify-sort-keymap
|
||||
(or ,evilified-map evil-evilified-state-map)))
|
||||
processed)
|
||||
(mapc (lambda (map-entry)
|
||||
(unless (or (member (car map-entry) processed)
|
||||
;; don't care about evil-escape starter key
|
||||
(and (boundp 'evil-escape-key-sequence)
|
||||
(equal (car map-entry)
|
||||
(defkey (when bindings `(evil-define-key 'evilified ,map ,@bindings)))
|
||||
(body
|
||||
`(progn
|
||||
(let ((sorted-map (spacemacs//evilify-sort-keymap
|
||||
(or ,evilified-map evil-evilified-state-map)))
|
||||
processed)
|
||||
(mapc (lambda (map-entry)
|
||||
(unless (or (member (car map-entry) processed)
|
||||
;; don't care about evil-escape starter key
|
||||
(and (boundp 'evil-escape-key-sequence)
|
||||
(equal
|
||||
(car map-entry)
|
||||
(elt evil-escape-key-sequence 0))))
|
||||
(setq processed (spacemacs//evilify-event
|
||||
,map ',map
|
||||
(car map-entry) (cdr map-entry)))))
|
||||
sorted-map))
|
||||
(unless ,(null defkey)
|
||||
(,@defkey))
|
||||
(unless ,(null mode)
|
||||
(spacemacs/evilify-configure-default-state ',mode)))))
|
||||
(setq processed (spacemacs//evilify-event
|
||||
,map ',map
|
||||
(car map-entry) (cdr map-entry)))))
|
||||
sorted-map))
|
||||
(unless ,(null defkey)
|
||||
(,@defkey))
|
||||
(unless ,(null mode)
|
||||
(spacemacs/evilify-configure-default-state ',mode)))))
|
||||
(if (null eval-after-load)
|
||||
`(,@body)
|
||||
`(eval-after-load ',eval-after-load '(,@body)))))
|
||||
|
||||
(defun spacemacs/evilify-configure-default-state (mode)
|
||||
"Configure default state for the passed mode."
|
||||
|
|
|
@ -310,3 +310,28 @@
|
|||
(3 . (keymap (24 . func3))))
|
||||
(spacemacs//evilify-sort-keymap input-map)))))
|
||||
|
||||
;; eval-after-load
|
||||
|
||||
(ert-deftest test-evilify-map--eval-after-load-already-loaded ()
|
||||
(let ((evil-evilified-state-map (let ((evil-map (make-sparse-keymap)))
|
||||
(define-key evil-map "s" 'evil-func)
|
||||
evil-map))
|
||||
(input-map (make-sparse-keymap)))
|
||||
(define-key input-map "s" 'func)
|
||||
;; pass a feature already loaded at the time of calling
|
||||
(spacemacs|evilify-map input-map :eval-after-load core-funcs)
|
||||
(should (equal '((115 . func-or-evil-func--evilified-input-map-s)
|
||||
(83 . func--evilified-input-map-S))
|
||||
(spacemacs//evilify-sort-keymap input-map)))))
|
||||
|
||||
|
||||
(ert-deftest test-evilify-map--eval-after-load-not-loaded ()
|
||||
(let ((evil-evilified-state-map (let ((evil-map (make-sparse-keymap)))
|
||||
(define-key evil-map "s" 'evil-func)
|
||||
evil-map))
|
||||
(input-map (make-sparse-keymap)))
|
||||
(define-key input-map "s" 'func)
|
||||
(spacemacs|evilify-map input-map :eval-after-load dummy-feature)
|
||||
;; unmodified keymap since `dummy-feature' is not loaded
|
||||
(should (equal '((115 . func))
|
||||
(spacemacs//evilify-sort-keymap input-map)))))
|
||||
|
|
Loading…
Reference in a new issue