mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-24 06:20:43 -08:00
Fix minor issues with 'pp' and related commands
* etc/NEWS: * lisp/emacs-lisp/pp.el (pp-use-max-width, pp-emacs-lisp-code): Mention in doc string that formatting via 'pp-emacs-lisp-code' could be slow. (pp-eval-expression, pp-macroexpand-expression): Honor 'pp-use-max-width'. (Bug#58687)
This commit is contained in:
parent
dfb38fb2ee
commit
2a2b1d09ac
2 changed files with 20 additions and 10 deletions
18
etc/NEWS
18
etc/NEWS
|
|
@ -4321,15 +4321,21 @@ whose matches are to be replaced. If these variables are nil (which
|
|||
is the default), 'query-replace' and 'query-replace-regexp' take the
|
||||
default value from the previous FROM-TO pair.
|
||||
|
||||
---
|
||||
** New user option 'pp-use-max-width'.
|
||||
If non-nil, 'pp' will attempt to limit the line length when formatting
|
||||
long lists and vectors.
|
||||
** Lisp pretty-printer ('pp')
|
||||
|
||||
---
|
||||
** New function 'pp-emacs-lisp-code'.
|
||||
*** New function 'pp-emacs-lisp-code'.
|
||||
'pp' formats general Lisp sexps. This function does much the same,
|
||||
but applies formatting rules appropriate for Emacs Lisp code.
|
||||
but applies formatting rules appropriate for Emacs Lisp code. Note
|
||||
that this could currently be quite slow, and is thus appropriate only
|
||||
for relatively small code fragments.
|
||||
|
||||
---
|
||||
*** New user option 'pp-use-max-width'.
|
||||
If non-nil, 'pp' and all 'pp-*' commands that format the results, will
|
||||
attempt to limit the line length when formatting long lists and
|
||||
vectors. This uses 'pp-emacs-lisp-code', and thus could be slow for
|
||||
large lists.
|
||||
|
||||
+++
|
||||
** New function 'file-has-changed-p'.
|
||||
|
|
|
|||
|
|
@ -47,7 +47,9 @@ Otherwise this should be a number."
|
|||
|
||||
(defcustom pp-use-max-width nil
|
||||
"If non-nil, `pp'-related functions will try to fold lines.
|
||||
The target width is given by the `pp-max-width' variable."
|
||||
The target width is given by the `pp-max-width' variable.
|
||||
Note that this could slow down `pp' considerably when formatting
|
||||
large lists."
|
||||
:type 'boolean
|
||||
:version "29.1")
|
||||
|
||||
|
|
@ -162,14 +164,15 @@ Also add the value to the front of the list in the variable `values'."
|
|||
(message "Evaluating...")
|
||||
(let ((result (eval expression lexical-binding)))
|
||||
(values--store-value result)
|
||||
(pp-display-expression result "*Pp Eval Output*")))
|
||||
(pp-display-expression result "*Pp Eval Output*" pp-use-max-width)))
|
||||
|
||||
;;;###autoload
|
||||
(defun pp-macroexpand-expression (expression)
|
||||
"Macroexpand EXPRESSION and pretty-print its value."
|
||||
(interactive
|
||||
(list (read--expression "Macroexpand: ")))
|
||||
(pp-display-expression (macroexpand-1 expression) "*Pp Macroexpand Output*"))
|
||||
(pp-display-expression (macroexpand-1 expression) "*Pp Macroexpand Output*"
|
||||
pp-use-max-width))
|
||||
|
||||
(defun pp-last-sexp ()
|
||||
"Read sexp before point. Ignore leading comment characters."
|
||||
|
|
@ -219,7 +222,8 @@ Ignores leading comment characters."
|
|||
;;;###autoload
|
||||
(defun pp-emacs-lisp-code (sexp)
|
||||
"Insert SEXP into the current buffer, formatted as Emacs Lisp code.
|
||||
Use the `pp-max-width' variable to control the desired line length."
|
||||
Use the `pp-max-width' variable to control the desired line length.
|
||||
Note that this could be slow for large SEXPs."
|
||||
(require 'edebug)
|
||||
(let ((obuf (current-buffer)))
|
||||
(with-temp-buffer
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue