Function: helpful--keymaps-containing
helpful--keymaps-containing is a byte-compiled function defined in
helpful.el.
Signature
(helpful--keymaps-containing COMMAND-SYM)
Documentation
Return a list of pairs listing keymap names that contain COMMAND-SYM, along with the keybindings in each keymap.
Keymap names are typically variable names, but may also be
descriptions of values in minor-mode-map-alist.
We ignore keybindings that are menu items, and ignore keybindings from parent keymaps.
widget-global-map is also ignored as it generally contains the
same bindings as global-map.
Source Code
;; Defined in ~/.emacs.d/elpa/helpful-20250408.334/helpful.el
(defun helpful--keymaps-containing (command-sym)
"Return a list of pairs listing keymap names that contain COMMAND-SYM,
along with the keybindings in each keymap.
Keymap names are typically variable names, but may also be
descriptions of values in `minor-mode-map-alist'.
We ignore keybindings that are menu items, and ignore keybindings
from parent keymaps.
`widget-global-map' is also ignored as it generally contains the
same bindings as `global-map'."
(let* ((keymap-syms (helpful--all-keymap-syms))
(keymap-sym-vals (-map #'symbol-value keymap-syms))
(global-keycodes (where-is-internal
command-sym (list global-map) nil t))
matching-keymaps)
;; Look for this command in all keymaps bound to variables.
(-map
(-lambda ((keymap-sym . keymap))
(let ((key-sequences (helpful--key-sequences command-sym keymap global-keycodes)))
(when (and key-sequences (not (eq keymap-sym 'widget-global-map)))
(push (cons (symbol-name keymap-sym) key-sequences)
matching-keymaps))))
(-zip-pair keymap-syms keymap-sym-vals))
;; Look for this command in keymaps used by minor modes that
;; aren't bound to variables.
(-map
(-lambda ((minor-mode . keymap))
;; Only consider this keymap if we didn't find it bound to a variable.
(when (and (keymapp keymap)
(not (memq keymap keymap-sym-vals)))
(let ((key-sequences (helpful--key-sequences command-sym keymap global-keycodes)))
(when key-sequences
(push (cons (format "minor-mode-map-alist (%s)" minor-mode)
key-sequences)
matching-keymaps)))))
;; TODO: examine `minor-mode-overriding-map-alist' too.
minor-mode-map-alist)
matching-keymaps))