Function: pp--format-function
pp--format-function is a byte-compiled function defined in pp.el.gz.
Signature
(pp--format-function SEXP)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/pp.el.gz
(defun pp--format-function (sexp)
(let* ((sym (car sexp))
(edebug (get sym 'edebug-form-spec))
(indent (get sym 'lisp-indent-function))
(doc (get sym 'doc-string-elt)))
(when (eq indent 'defun)
(setq indent 2))
;; We probably want to keep all the elements before the doc string
;; on a single line.
(when doc
(setq indent (1- doc)))
;; Special-case closures -- these shouldn't really exist in actual
;; source code, so there's no indentation information. But make
;; them output slightly better.
(when (and (not indent)
(eq sym 'closure))
(setq indent 0))
(pp--insert "(" sym)
(pop sexp)
;; Get the first entries on the first line.
(if indent
(pp--format-definition sexp indent edebug)
(let ((prev 0))
(while sexp
(let ((start (point)))
;; Don't put sexps on the same line as a multi-line sexp
;; preceding it.
(pp--insert (if (> prev 1) "\n" " ")
(pop sexp))
(setq prev (count-lines start (point)))))))
(insert ")")))