diff options
| author | Justin Burkett | 2016-11-29 08:38:21 -0500 |
|---|---|---|
| committer | Justin Burkett | 2016-11-29 08:38:21 -0500 |
| commit | 2b78bdd26d3d5385b473f18bb217915488e0d3ff (patch) | |
| tree | 62f433a1792511c930a7e4bea653baa3a6620908 | |
| parent | a32ec0c45a73e1d03e3e79203aa808803b00ba5c (diff) | |
| download | emacs-2b78bdd26d3d5385b473f18bb217915488e0d3ff.tar.gz emacs-2b78bdd26d3d5385b473f18bb217915488e0d3ff.zip | |
Normalize key sequences from -add-key-based-replacements
| -rw-r--r-- | which-key.el | 28 |
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) |