(repeat-echo-message-string): Reuse 'r-m-c' prompt formatting

Now that 'repeat-mode' supports adding labels ("hints") next to
available keys, its prompt is very similar in its structure to
what we have in 'read-multiple-choice' (a list of labeled keys).
To make the two interfaces more consistent, reuse the prompt
formatting that 'read-multiple-choice' employs.

See short discussion at
https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00467.html

* lisp/repeat.el (repeat-echo-message-string): Use
'rmc--add-key-description' to format keys and their labels.
This commit is contained in:
Eshel Yaron 2024-05-08 18:05:20 +02:00
parent de5a89254c
commit 840c33070d
No known key found for this signature in database
GPG key ID: EF3EE9CA35D78618

View file

@ -558,14 +558,14 @@ This function can be used to force exit of repetition while it's active."
(format-message
"Repeat with %s%s"
(mapconcat (lambda (key-cmd)
(let* ((key (car key-cmd))
(cmd (cdr key-cmd))
(hint (when (symbolp cmd)
(get cmd 'repeat-hint))))
(substitute-command-keys
(format "\\`%s'%s"
(key-description (vector key))
(if hint (format ":%s" hint) "")))))
(let ((key (car key-cmd))
(cmd (cdr key-cmd)))
(if-let ((hint (and (symbolp cmd)
(get cmd 'repeat-hint))))
;; Reuse `read-multiple-choice' formatting.
(cdr (rmc--add-key-description (list key hint)))
(propertize (key-description (vector key))
'face 'read-multiple-choice-face))))
keys ", ")
(if repeat-exit-key
(substitute-command-keys