1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Make lambdas/closures/byte code in `C-h b' clickable

* lisp/help.el (help--describe-command): Add links for
lambdas/closures/byte code (bug#24235).

* lisp/emacs-lisp/pp.el (pp-display-expression): Autoload.
This commit is contained in:
Lars Ingebrigtsen 2021-11-02 16:20:15 +01:00
parent 4f851c2357
commit cd73ec72a6
2 changed files with 9 additions and 2 deletions

View file

@ -85,6 +85,7 @@ can handle, whenever this is possible.
Output stream is STREAM, or value of `standard-output' (which see)."
(princ (pp-to-string object) (or stream standard-output)))
;;;###autoload
(defun pp-display-expression (expression out-buffer-name)
"Prettify and display EXPRESSION in an appropriate way, depending on length.
If a temporary buffer is needed for representation, it will be named

View file

@ -1352,10 +1352,16 @@ Return nil if the key sequence is too long."
((keymapp definition)
(insert "Prefix Command\n"))
((byte-code-function-p definition)
(insert "[byte-code]\n"))
(insert "[%s]\n"
(button-buttonize "byte-code" #'disassemble definition)))
((and (consp definition)
(memq (car definition) '(closure lambda)))
(insert (format "[%s]\n" (car definition))))
(insert (format "[%s]\n"
(button-buttonize
(symbol-name (car definition))
(lambda (_)
(pp-display-expression
definition "*Help Source*"))))))
(t
(insert "??\n"))))