]> git.eshelyaron.com Git - emacs.git/commitdiff
Make lambda/closure help buttons format as Emacs Lisp
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 4 Nov 2021 20:52:56 +0000 (21:52 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 4 Nov 2021 20:52:56 +0000 (21:52 +0100)
* lisp/help.el (help--describe-command): Format lambda/closures as
Emacs Lisp.

* lisp/emacs-lisp/pp.el (pp-display-expression): Allow formatting
as Emacs Lisp.

lisp/emacs-lisp/pp.el
lisp/help.el

index 5a643d94e4bb3988cea7b89c8999d57c6f1bf66d..ca3f2a270e22e2cc96e1626bb99209933be344f5 100644 (file)
@@ -90,8 +90,10 @@ 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)
+(defun pp-display-expression (expression out-buffer-name &optional lisp)
   "Prettify and display EXPRESSION in an appropriate way, depending on length.
+If LISP, format with `pp-emacs-lisp-code'; use `pp' otherwise.
+
 If a temporary buffer is needed for representation, it will be named
 after OUT-BUFFER-NAME."
   (let* ((old-show-function temp-buffer-show-function)
@@ -119,7 +121,10 @@ after OUT-BUFFER-NAME."
                       (message "See buffer %s." out-buffer-name)))
                 (message "%s" (buffer-substring (point-min) (point))))))))
     (with-output-to-temp-buffer out-buffer-name
-      (pp expression)
+      (if lisp
+          (with-current-buffer standard-output
+            (pp-emacs-lisp-code expression))
+        (pp expression))
       (with-current-buffer standard-output
        (emacs-lisp-mode)
        (setq buffer-read-only nil)
index d10ea1c2867e86ce379864538e73a79d43befbd2..2a72656bb0d14567d9e3d17172eb25c4c103d997 100644 (file)
@@ -1347,7 +1347,7 @@ Return nil if the key sequence is too long."
                           (symbol-name (car definition))
                           (lambda (_)
                             (pp-display-expression
-                             definition "*Help Source*"))))))
+                             definition "*Help Source*" t))))))
         (t
          (insert "??\n"))))