Digamos que eu tenha uma função que se parece com a seguinte (como geralmente ocorre ao imprimir a saída elisp).
(defun my-example-function () (let ((a (do-something)) (b (do-something))) (setq someone me) (with-current-buffer b (do-that (or this (and that those))) (format "%s" a))))
Eu gostaria de um comando que possa transformar isso em algo que um humano escreveria, como o seguinte.
(defun my-example-function ()
(let ((a (do-something))
(b (do-something)))
(setq someone me)
(with-current-buffer b
(do-that (or this (and that those)))
(format "%s" a))))
Entendo que há mais de uma maneira de formatar um pedaço de código elisp , e diferentes seres humanos o fazem de maneira diferente. Além disso, eu entendo que é um pouco subjetivo. Mas deve ser bastante fácil criar um conjunto de regras que resultem em código que seja pelo menos decente.
Na verdade, eu pensei em fazer isso sozinho há um tempo, mas achei melhor perguntar antes de reinventar a roda.
Observe que estou ciente da função pp , mas ela não chega lá:
(defun my-example-function nil
(let
((a
(do-something))
(b
(do-something)))
(setq someone me)
(with-current-buffer b
(do-that
(or this
(and that those)))
(format "%s" a))))
pp
.