branch: master commit 437065886d8ac256c5539d040852c971b922a9b4 Author: Justin Burkett <jus...@burkett.cc> Commit: Justin Burkett <jus...@burkett.cc>
Factor out which-key--this-command-keys function --- which-key.el | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/which-key.el b/which-key.el index 580cab5..e38571f 100644 --- a/which-key.el +++ b/which-key.el @@ -2026,7 +2026,7 @@ including prefix arguments." (defun which-key--get-popup-map () "Generate transient-map for use in the top level binding display." - (unless (which-key--current-prefix) + (unless which-key--automatic-display (let ((map (make-sparse-keymap))) (define-key map (kbd which-key-paging-key) #'which-key-C-h-dispatch) (when which-key-use-C-h-commands @@ -2485,14 +2485,12 @@ Finally, show the buffer." (message "On prefix \"%s\" which-key took %.0f ms." prefix-desc (* 1000 (float-time (time-since start-time))))))) -(defun which-key--update () - "Function run by timer to possibly trigger -`which-key--create-buffer-and-show'." - (let ((prefix-keys (this-single-command-keys)) - delay-time) - (when (and (equal prefix-keys [key-chord]) +(defun which-key--this-command-keys () + "Version of `this-single-command-keys' corrected for key-chords and god-mode." + (let ((this-command-keys (this-single-command-keys))) + (when (and (equal this-command-keys [key-chord]) (bound-and-true-p key-chord-mode)) - (setq prefix-keys + (setq this-command-keys (condition-case nil (let ((rkeys (recent-keys))) (vector 'key-chord @@ -2509,8 +2507,15 @@ Finally, show the buffer." (when (and which-key--god-mode-support-enabled (bound-and-true-p god-local-mode) (eq this-command 'god-mode-self-insert)) - (setq prefix-keys (when which-key--god-mode-key-string + (setq this-command-keys (when which-key--god-mode-key-string (kbd which-key--god-mode-key-string)))) + this-command-keys)) + +(defun which-key--update () + "Function run by timer to possibly trigger +`which-key--create-buffer-and-show'." + (let ((prefix-keys (which-key--this-command-keys)) + delay-time) (cond ((and (> (length prefix-keys) 0) (or (keymapp (key-binding prefix-keys)) ;; Some keymaps are stored here like iso-transl-ctl-x-8-map @@ -2590,7 +2595,7 @@ Finally, show the buffer." which-key--paging-functions)) (and (< 0 (length (this-single-command-keys))) (not (equal (which-key--current-prefix) - (this-single-command-keys))))) + (which-key--this-command-keys))))) (cancel-timer which-key--paging-timer) (which-key--start-timer))))))