summaryrefslogtreecommitdiff
path: root/lisp/help.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-11-02 16:20:15 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2021-11-02 16:20:19 +0100
commitcd73ec72a6c864a8979fa1041df8618fe67cf480 (patch)
tree87e4dc90a0061bb509969683c47640cc7f977bb1 /lisp/help.el
parent4f851c2357cb8a09024432f2c6e061907311ce43 (diff)
downloademacs-cd73ec72a6c864a8979fa1041df8618fe67cf480.tar.gz
emacs-cd73ec72a6c864a8979fa1041df8618fe67cf480.tar.bz2
emacs-cd73ec72a6c864a8979fa1041df8618fe67cf480.zip
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.
Diffstat (limited to 'lisp/help.el')
-rw-r--r--lisp/help.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/help.el b/lisp/help.el
index 77c5d124deb..9f7e1a90cf4 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -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"))))