Supongamos que tengo una función similar a la siguiente (como suele ser el caso al imprimir resultados de 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))))
Me gustaría un comando que pueda convertir eso en algo que un humano escribiría, como el siguiente.
(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))))
Entiendo que hay más de una forma de formatear un código de Elisp , y que diferentes seres humanos lo hacen de manera diferente. Además, entiendo que es algo subjetivo. Pero debería ser bastante fácil crear un conjunto de reglas que dé como resultado un código que sea al menos decente.
De hecho, pensé en hacer esto hace un tiempo, pero pensé que era mejor preguntar antes de reinventar la rueda.
Tenga en cuenta que conozco la función pp , pero no llega allí:
(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
.