1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-06 14:02:07 -08:00

Normalize key sequences from -add-key-based-replacements

This commit is contained in:
Justin Burkett 2016-11-29 08:38:21 -05:00
parent a32ec0c45a
commit 2b78bdd26d

View file

@ -808,12 +808,14 @@ replacements are added to
`which-key-key-based-description-replacement-alist'."
;; TODO: Make interactive
(while key-sequence
(push (cons (cons (format "\\`%s\\'" key-sequence) nil)
(cons nil (or (car-safe replacement) replacement)))
which-key-replacement-alist)
(when (consp replacement)
(push (cons key-sequence (cdr-safe replacement))
which-key--prefix-title-alist))
;; normalize key sequences before adding
(let ((key-seq (key-description (kbd key-sequence))))
(push (cons (cons (format "\\`%s\\'" key-seq) nil)
(cons nil (or (car-safe replacement) replacement)))
which-key-replacement-alist)
(when (consp replacement)
(push (cons key-seq (cdr-safe replacement))
which-key--prefix-title-alist)))
(setq key-sequence (pop more) replacement (pop more))))
(put 'which-key-add-key-based-replacements 'lisp-indent-function 'defun)
@ -832,12 +834,14 @@ addition KEY-SEQUENCE REPLACEMENT pairs) to apply."
(title-mode-alist
(or (cdr-safe (assq mode which-key--prefix-title-alist)) (list))))
(while key-sequence
(push (cons (cons (format "\\`%s\\'" key-sequence) nil)
(cons nil (or (car-safe replacement) replacement)))
mode-alist)
(when (consp replacement)
(push (cons key-sequence (cdr-safe replacement))
title-mode-alist))
;; normalize key sequences before adding
(let ((key-seq (key-description (kbd key-sequence))))
(push (cons (cons (format "\\`%s\\'" key-seq) nil)
(cons nil (or (car-safe replacement) replacement)))
mode-alist)
(when (consp replacement)
(push (cons key-seq (cdr-safe replacement))
title-mode-alist)))
(setq key-sequence (pop more) replacement (pop more)))
(if (assq mode which-key-replacement-alist)
(setcdr (assq mode which-key-replacement-alist) mode-alist)