Add `:disable-evil-leader` keyword in micro-states
This commit is contained in:
parent
453343a920
commit
9ee4e5d9fb
|
@ -57,6 +57,10 @@ Available PROPS:
|
||||||
If non nil then the minibuffer is used to display the documenation
|
If non nil then the minibuffer is used to display the documenation
|
||||||
strings. Default is nil.
|
strings. Default is nil.
|
||||||
|
|
||||||
|
`:disable-evil-leader BOOLEAN'
|
||||||
|
If non nil then the evil leader has no effect when the micro state
|
||||||
|
is active. Default to nil.
|
||||||
|
|
||||||
`:persistent BOOLEAN'
|
`:persistent BOOLEAN'
|
||||||
If BOOLEAN is non nil then the micro-state never exits. A binding
|
If BOOLEAN is non nil then the micro-state never exits. A binding
|
||||||
with an explicitly set `exit t' property is required. Default is nil.
|
with an explicitly set `exit t' property is required. Default is nil.
|
||||||
|
@ -82,13 +86,14 @@ used."
|
||||||
(let* ((func (spacemacs//micro-state-func-name name))
|
(let* ((func (spacemacs//micro-state-func-name name))
|
||||||
(doc (spacemacs/mplist-get props :doc))
|
(doc (spacemacs/mplist-get props :doc))
|
||||||
(persistent (plist-get props :persistent))
|
(persistent (plist-get props :persistent))
|
||||||
|
(disable-leader (plist-get props :disable-evil-leader))
|
||||||
(msg-func (if (plist-get props :use-minibuffer) 'message 'lv-message))
|
(msg-func (if (plist-get props :use-minibuffer) 'message 'lv-message))
|
||||||
(exec-binding (plist-get props :execute-binding-on-enter))
|
(exec-binding (plist-get props :execute-binding-on-enter))
|
||||||
(on-enter (spacemacs/mplist-get props :on-enter))
|
(on-enter (spacemacs/mplist-get props :on-enter))
|
||||||
(on-exit (spacemacs/mplist-get props :on-exit))
|
(on-exit (spacemacs/mplist-get props :on-exit))
|
||||||
(bindings (spacemacs/mplist-get props :bindings))
|
(bindings (spacemacs/mplist-get props :bindings))
|
||||||
(wrappers (spacemacs//micro-state-create-wrappers
|
(wrappers (spacemacs//micro-state-create-wrappers
|
||||||
name doc msg-func bindings))
|
name doc msg-func disable-leader bindings))
|
||||||
(keymap-body (spacemacs//micro-state-fill-map-sexps wrappers))
|
(keymap-body (spacemacs//micro-state-fill-map-sexps wrappers))
|
||||||
(bindkeys (spacemacs//create-key-binding-form props func)))
|
(bindkeys (spacemacs//create-key-binding-form props func)))
|
||||||
`(progn (defun ,func ()
|
`(progn (defun ,func ()
|
||||||
|
@ -121,14 +126,17 @@ used."
|
||||||
(when binding
|
(when binding
|
||||||
(call-interactively (cadr binding)))))
|
(call-interactively (cadr binding)))))
|
||||||
|
|
||||||
(defun spacemacs//micro-state-create-wrappers (name doc msg-func bindings)
|
(defun spacemacs//micro-state-create-wrappers
|
||||||
|
(name doc msg-func disable-leader bindings)
|
||||||
"Return an alist (key wrapper) for each binding in BINDINGS."
|
"Return an alist (key wrapper) for each binding in BINDINGS."
|
||||||
(mapcar (lambda (x) (spacemacs//micro-state-create-wrapper
|
(mapcar (lambda (x) (spacemacs//micro-state-create-wrapper
|
||||||
name doc msg-func x))
|
name doc msg-func x))
|
||||||
(append bindings
|
(append bindings
|
||||||
;; force SPC to quit the micro-state to avoid a edge case
|
;; force SPC to quit the micro-state to avoid a edge case
|
||||||
;; with evil-leader
|
;; with evil-leader
|
||||||
(list '("SPC" evil-leader--default-map :exit t)))))
|
(list `(,dotspacemacs-leader-key
|
||||||
|
,(unless disable-leader 'evil-leader--default-map)
|
||||||
|
:exit t)))))
|
||||||
|
|
||||||
(defun spacemacs//micro-state-create-wrapper (name default-doc msg-func binding)
|
(defun spacemacs//micro-state-create-wrapper (name default-doc msg-func binding)
|
||||||
"Create a wrapper of FUNC and return a tuple (key wrapper BINDING)."
|
"Create a wrapper of FUNC and return a tuple (key wrapper BINDING)."
|
||||||
|
|
|
@ -1403,6 +1403,7 @@ which require an initialization must be listed explicitly in the list.")
|
||||||
|
|
||||||
(spacemacs|define-micro-state helm-navigation
|
(spacemacs|define-micro-state helm-navigation
|
||||||
:persistent t
|
:persistent t
|
||||||
|
:disable-evil-leader t
|
||||||
:define-key (helm-map . "C-SPC") (helm-map . "C-@")
|
:define-key (helm-map . "C-SPC") (helm-map . "C-@")
|
||||||
:on-enter (spacemacs//helm-navigation-ms-on-enter)
|
:on-enter (spacemacs//helm-navigation-ms-on-enter)
|
||||||
:on-exit (spacemacs//helm-navigation-ms-on-exit)
|
:on-exit (spacemacs//helm-navigation-ms-on-exit)
|
||||||
|
@ -1681,6 +1682,7 @@ Put (global-hungry-delete-mode) in dotspacemacs/config to enable by default."
|
||||||
|
|
||||||
(spacemacs|define-micro-state ido-navigation
|
(spacemacs|define-micro-state ido-navigation
|
||||||
:persistent t
|
:persistent t
|
||||||
|
:disable-evil-leader t
|
||||||
:on-enter (spacemacs//ido-navigation-ms-on-enter)
|
:on-enter (spacemacs//ido-navigation-ms-on-enter)
|
||||||
:on-exit (spacemacs//ido-navigation-ms-on-exit)
|
:on-exit (spacemacs//ido-navigation-ms-on-exit)
|
||||||
:bindings
|
:bindings
|
||||||
|
|
Loading…
Reference in New Issue