Improve repeat-mode to correctly show multi-key sequences as echo
* lisp/repeat.el (repeat-echo-message-string): Use 'cl--map-keymap-recursively' that iterates over complete key sequences. Also it returns key vectors, so don't need to use 'vector'.
This commit is contained in:
parent
0bd12f560b
commit
2e937dc2b5
1 changed files with 4 additions and 3 deletions
|
@ -566,8 +566,9 @@ This function can be used to force exit of repetition while it's active."
|
|||
(defun repeat-echo-message-string (keymap)
|
||||
"Return a string with the list of repeating keys in KEYMAP."
|
||||
(let (keys)
|
||||
(map-keymap (lambda (key cmd) (and cmd (push (cons key cmd) keys)))
|
||||
keymap)
|
||||
(cl--map-keymap-recursively
|
||||
(lambda (key cmd) (and cmd (push (cons (copy-sequence key) cmd) keys)))
|
||||
keymap)
|
||||
(format-message
|
||||
"Repeat with %s%s"
|
||||
(mapconcat (lambda (key-cmd)
|
||||
|
@ -577,7 +578,7 @@ This function can be used to force exit of repetition while it's active."
|
|||
(get cmd 'repeat-hint))))
|
||||
;; Reuse `read-multiple-choice' formatting.
|
||||
(cdr (rmc--add-key-description (list key hint)))
|
||||
(propertize (key-description (vector key))
|
||||
(propertize (key-description key)
|
||||
'face 'read-multiple-choice-face))))
|
||||
keys ", ")
|
||||
(if repeat-exit-key
|
||||
|
|
Loading…
Add table
Reference in a new issue