From dadcd29f279d161e566469d2be9f8ca691d5d747 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 11 Mar 2019 13:06:46 -0400 Subject: [PATCH] Refactor leader key initialization Ensures general-override-mode is enabled and labels are correctly registered to all (visible) leader keys. Relevant to #1240 --- core/core-keybinds.el | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/core/core-keybinds.el b/core/core-keybinds.el index 3c71cfb27..0664af462 100644 --- a/core/core-keybinds.el +++ b/core/core-keybinds.el @@ -117,15 +117,17 @@ If any hook returns non-nil, all hooks after it are ignored.") (if (not (featurep 'evil)) (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* '(emacs insert) map (kbd doom-leader-alt-key) 'doom/leader))) - (setq doom--which-key-leader-regexp - (concat "\\(?:" - (let ((where (where-is-internal 'doom/leader - (list (current-global-map))))) - (cond (where (mapconcat #'key-description where "\\|")) - ((stringp doom-leader-alt-key) (regexp-quote doom-leader-alt-key)) - ((regexp-quote (key-description doom-leader-alt-key))))) - "\\)"))) + (evil-define-key* '(emacs insert) map (kbd doom-leader-alt-key) 'doom/leader)) + (general-override-mode +1)) + (unless (stringp doom-which-key-leader-prefix-regexp) + (setq doom-which-key-leader-prefix-regexp + (concat "\\(?:" + (cl-loop for key in (append (list doom-leader-key doom-leader-alt-key) + (where-is-internal 'doom/leader)) + 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) ;; However, the prefix command approach (along with :wk-full-keys in