Diciamo che ho una funzione simile alla seguente (come spesso accade quando si stampa un output 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))))
Vorrei un comando che potesse trasformarlo in qualcosa che un essere umano avrebbe scritto, come il seguente.
(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))))
Capisco che esiste più di un modo per formattare un pezzo di codice elisp e diversi esseri umani lo fanno in modo diverso. Inoltre, capisco che è in qualche modo soggettivo. Ma dovrebbe essere abbastanza facile elaborare un insieme di regole che si traducano in un codice almeno decente.
In realtà ho pensato di farlo da solo qualche tempo fa, ma ho pensato che sarebbe meglio chiedere prima di reinventare la ruota.
Nota, sono a conoscenza della funzione pp , ma non ci arriva proprio:
(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
.