mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-30 19:53:09 +00:00
(pp-buffer): New fun created from the code in
`pp-to-string' modified to be able to format text with newlines. (pp-to-string): Move the buffer-formatting part of the code to `pp-buffer'. Call `pp-buffer'.
This commit is contained in:
parent
a82456f080
commit
575c3bca4c
@ -50,34 +50,40 @@ to make output that `read' can handle, whenever this is possible."
|
||||
(let ((print-escape-newlines pp-escape-newlines)
|
||||
(print-quoted t))
|
||||
(prin1 object (current-buffer)))
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
;; (message "%06d" (- (point-max) (point)))
|
||||
(cond
|
||||
((condition-case err-var
|
||||
(prog1 t (down-list 1))
|
||||
(error nil))
|
||||
(save-excursion
|
||||
(backward-char 1)
|
||||
(skip-chars-backward "'`#^")
|
||||
(when (and (not (bobp)) (= ?\ (char-before)))
|
||||
(delete-char -1)
|
||||
(insert "\n"))))
|
||||
((condition-case err-var
|
||||
(prog1 t (up-list 1))
|
||||
(error nil))
|
||||
(while (looking-at "\\s)")
|
||||
(forward-char 1))
|
||||
(delete-region
|
||||
(point)
|
||||
(progn (skip-chars-forward " \t") (point)))
|
||||
(insert ?\n))
|
||||
(t (goto-char (point-max)))))
|
||||
(goto-char (point-min))
|
||||
(indent-sexp)
|
||||
(pp-buffer)
|
||||
(buffer-string))
|
||||
(kill-buffer (current-buffer)))))
|
||||
|
||||
(defun pp-buffer ()
|
||||
"Prettify the current buffer with printed representation of a Lisp object."
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
;; (message "%06d" (- (point-max) (point)))
|
||||
(cond
|
||||
((condition-case err-var
|
||||
(prog1 t (down-list 1))
|
||||
(error nil))
|
||||
(save-excursion
|
||||
(backward-char 1)
|
||||
(skip-chars-backward "'`#^")
|
||||
(when (and (not (bobp)) (memq (char-before) '(?\ ?\t ?\n)))
|
||||
(delete-region
|
||||
(point)
|
||||
(progn (skip-chars-backward " \t\n") (point)))
|
||||
(insert "\n"))))
|
||||
((condition-case err-var
|
||||
(prog1 t (up-list 1))
|
||||
(error nil))
|
||||
(while (looking-at "\\s)")
|
||||
(forward-char 1))
|
||||
(delete-region
|
||||
(point)
|
||||
(progn (skip-chars-forward " \t\n") (point)))
|
||||
(insert ?\n))
|
||||
(t (goto-char (point-max)))))
|
||||
(goto-char (point-min))
|
||||
(indent-sexp))
|
||||
|
||||
;;;###autoload
|
||||
(defun pp (object &optional stream)
|
||||
"Output the pretty-printed representation of OBJECT, any Lisp object.
|
||||
|
Loading…
Reference in New Issue
Block a user