Function: helpful--format-keymap
helpful--format-keymap is a byte-compiled function defined in
helpful.el.
Signature
(helpful--format-keymap KEYMAP)
Documentation
Format KEYMAP.
Source Code
;; Defined in ~/.emacs.d/elpa/helpful-20250408.334/helpful.el
;; TODO: unlike `substitute-command-keys', this shows keybindings
;; which are currently shadowed (e.g. a global minor mode map).
(defun helpful--format-keymap (keymap)
"Format KEYMAP."
(let* ((keys-and-commands (helpful--keymap-keys keymap))
;; Convert keycodes [27 i] to "C-M-i".
(keys (-map #'-first-item keys-and-commands))
;; Add padding so all our strings are the same length.
(formatted-keys (-map #'key-description keys))
(max-formatted-length (-max (cons 0 (-map #'length formatted-keys))))
(aligned-keys (--map (s-pad-right (1+ max-formatted-length)
" " it)
formatted-keys))
;; Format commands as buttons.
(commands (-map (-lambda ((_ command)) command)
keys-and-commands))
(formatted-commands
(--map
(cond
((symbolp it)
(helpful--button
(symbol-name it)
'helpful-describe-button
'symbol it))
((or (stringp it) (vectorp it))
"Keyboard Macro")
(t
"#<anonymous-function>"))
commands))
;; Build lines for display.
(lines
(-map (-lambda ((key . command)) (format "%s %s" key command))
(-zip-pair aligned-keys formatted-commands))))
;; The flattened keymap will have normal bindings first, and
;; inherited bindings last. Sort so that we group by prefix.
(s-join "\n" (-sort #'string< lines))))