aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Burkett2016-11-29 08:38:21 -0500
committerJustin Burkett2016-11-29 08:38:21 -0500
commit2b78bdd26d3d5385b473f18bb217915488e0d3ff (patch)
tree62f433a1792511c930a7e4bea653baa3a6620908
parenta32ec0c45a73e1d03e3e79203aa808803b00ba5c (diff)
downloademacs-2b78bdd26d3d5385b473f18bb217915488e0d3ff.tar.gz
emacs-2b78bdd26d3d5385b473f18bb217915488e0d3ff.zip
Normalize key sequences from -add-key-based-replacements
-rw-r--r--which-key.el28
1 files changed, 16 insertions, 12 deletions
diff --git a/which-key.el b/which-key.el
index 9acb29bb2d4..496d2cbebd7 100644
--- a/which-key.el
+++ b/which-key.el
@@ -808,12 +808,14 @@ replacements are added to
808`which-key-key-based-description-replacement-alist'." 808`which-key-key-based-description-replacement-alist'."
809 ;; TODO: Make interactive 809 ;; TODO: Make interactive
810 (while key-sequence 810 (while key-sequence
811 (push (cons (cons (format "\\`%s\\'" key-sequence) nil) 811 ;; normalize key sequences before adding
812 (cons nil (or (car-safe replacement) replacement))) 812 (let ((key-seq (key-description (kbd key-sequence))))
813 which-key-replacement-alist) 813 (push (cons (cons (format "\\`%s\\'" key-seq) nil)
814 (when (consp replacement) 814 (cons nil (or (car-safe replacement) replacement)))
815 (push (cons key-sequence (cdr-safe replacement)) 815 which-key-replacement-alist)
816 which-key--prefix-title-alist)) 816 (when (consp replacement)
817 (push (cons key-seq (cdr-safe replacement))
818 which-key--prefix-title-alist)))
817 (setq key-sequence (pop more) replacement (pop more)))) 819 (setq key-sequence (pop more) replacement (pop more))))
818(put 'which-key-add-key-based-replacements 'lisp-indent-function 'defun) 820(put 'which-key-add-key-based-replacements 'lisp-indent-function 'defun)
819 821
@@ -832,12 +834,14 @@ addition KEY-SEQUENCE REPLACEMENT pairs) to apply."
832 (title-mode-alist 834 (title-mode-alist
833 (or (cdr-safe (assq mode which-key--prefix-title-alist)) (list)))) 835 (or (cdr-safe (assq mode which-key--prefix-title-alist)) (list))))
834 (while key-sequence 836 (while key-sequence
835 (push (cons (cons (format "\\`%s\\'" key-sequence) nil) 837 ;; normalize key sequences before adding
836 (cons nil (or (car-safe replacement) replacement))) 838 (let ((key-seq (key-description (kbd key-sequence))))
837 mode-alist) 839 (push (cons (cons (format "\\`%s\\'" key-seq) nil)
838 (when (consp replacement) 840 (cons nil (or (car-safe replacement) replacement)))
839 (push (cons key-sequence (cdr-safe replacement)) 841 mode-alist)
840 title-mode-alist)) 842 (when (consp replacement)
843 (push (cons key-seq (cdr-safe replacement))
844 title-mode-alist)))
841 (setq key-sequence (pop more) replacement (pop more))) 845 (setq key-sequence (pop more) replacement (pop more)))
842 (if (assq mode which-key-replacement-alist) 846 (if (assq mode which-key-replacement-alist)
843 (setcdr (assq mode which-key-replacement-alist) mode-alist) 847 (setcdr (assq mode which-key-replacement-alist) mode-alist)