Improve `C-h b' output for remapped commands.
* lisp/help.el (describe-map): Include the bindings of the remapped commands (bug#14084). This will result in output like this, instead of just listing the remapped commands: <remap> <display-buffer> ido-display-buffer C-x 4 C-o display-buffer <remap> <display-buffer-other-frame> ido-display-buffer-other-frame C-x 5 C-o display-buffer-other-frame <remap> <insert-buffer> ido-insert-buffer C-x x i insert-buffer <remap> <kill-buffer> ido-kill-buffer C-x k kill-buffer <remap> <switch-to-buffer> ido-switch-buffer C-x b switch-to-buffer <remap> <switch-to-buffer-other-frame> ido-switch-buffer-other-frame C-x 5 b switch-to-buffer-other-frame <remap> <switch-to-buffer-other-window> ido-switch-buffer-other-window C-x 4 b switch-to-buffer-other-window
This commit is contained in:
parent
8cb7682e88
commit
f0cd91067d
1 changed files with 21 additions and 3 deletions
24
lisp/help.el
24
lisp/help.el
|
@ -1503,12 +1503,30 @@ in `describe-map-tree'."
|
|||
(let ((vect (sort vect 'help--describe-map-compare))
|
||||
(columns ())
|
||||
line-start key-end column)
|
||||
;; If we're in a <remap> section of the output, then also
|
||||
;; display the bindings of the keys that we've remapped from.
|
||||
;; This enables the user to actually see what keys to tap to
|
||||
;; execute the remapped commands.
|
||||
(when (equal prefix [remap])
|
||||
(dolist (binding (prog1 vect
|
||||
(setq vect nil)))
|
||||
(push binding vect)
|
||||
(when-let ((other (and (not (eq (car binding) 'self-insert-command))
|
||||
(car (where-is-internal (car binding))))))
|
||||
(push (list (elt other (1- (length other)))
|
||||
(car binding)
|
||||
nil
|
||||
(seq-into (butlast (seq-into other 'list)) 'vector))
|
||||
vect)))
|
||||
(setq vect (nreverse vect)))
|
||||
;; Now output them in sorted order.
|
||||
(while vect
|
||||
(let* ((elem (car vect))
|
||||
(start (car elem))
|
||||
(definition (cadr elem))
|
||||
(shadowed (caddr elem))
|
||||
(start (nth 0 elem))
|
||||
(definition (nth 1 elem))
|
||||
(shadowed (nth 2 elem))
|
||||
;; We override the prefix for the <remap> extra commands.
|
||||
(prefix (or (nth 3 elem) prefix))
|
||||
(end start))
|
||||
;; Find consecutive chars that are identically defined.
|
||||
(when (fixnump start)
|
||||
|
|
Loading…
Add table
Reference in a new issue