Refactor leader key initialization

Ensures general-override-mode is enabled and labels are correctly
registered to all (visible) leader keys.

Relevant to #1240
This commit is contained in:
Henrik Lissner 2019-03-11 13:06:46 -04:00
parent 16f7bad266
commit dadcd29f27
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -117,15 +117,17 @@ If any hook returns non-nil, all hooks after it are ignored.")
(if (not (featurep 'evil)) (if (not (featurep 'evil))
(define-key map (kbd doom-leader-alt-key) 'doom/leader) (define-key map (kbd doom-leader-alt-key) 'doom/leader)
(evil-define-key* '(normal visual motion) map (kbd doom-leader-key) 'doom/leader) (evil-define-key* '(normal visual motion) map (kbd doom-leader-key) 'doom/leader)
(evil-define-key* '(emacs insert) map (kbd doom-leader-alt-key) 'doom/leader))) (evil-define-key* '(emacs insert) map (kbd doom-leader-alt-key) 'doom/leader))
(setq doom--which-key-leader-regexp (general-override-mode +1))
(concat "\\(?:" (unless (stringp doom-which-key-leader-prefix-regexp)
(let ((where (where-is-internal 'doom/leader (setq doom-which-key-leader-prefix-regexp
(list (current-global-map))))) (concat "\\(?:"
(cond (where (mapconcat #'key-description where "\\|")) (cl-loop for key in (append (list doom-leader-key doom-leader-alt-key)
((stringp doom-leader-alt-key) (regexp-quote doom-leader-alt-key)) (where-is-internal 'doom/leader))
((regexp-quote (key-description doom-leader-alt-key))))) if (stringp key) collect key into keys
"\\)"))) else collect (key-description key) into keys
finally return (string-join keys "\\|"))
"\\)"))))
(add-hook 'doom-after-init-modules-hook #'doom|init-leader-keys) (add-hook 'doom-after-init-modules-hook #'doom|init-leader-keys)
;; However, the prefix command approach (along with :wk-full-keys in ;; However, the prefix command approach (along with :wk-full-keys in