Eu odeio a maneira como elisp (não tenho certeza se LISP em geral) lida com doutrinas de várias linhas.
(defun foo ()
"This is
a multi
liner
docstring"
(do-stuff))
Eu com certeza gostaria de poder fazer algo como
(defun foo ()
(eval-when-compile
(concat
"This is\n"
"a multi\n"
"line\n"
"docstring"))
(do-stuff))
para que o recuo fosse consistente.
Infelizmente, eval-when-compile não faz o trabalho.
Alguém tem alguma idéia?
eval-when-compile
cita seu resultado (para transformá-lo de valor em expressão). Se fosse um pouco mais inteligente e apenas citasse seu resultado quando não é auto-citado, funcionaria.
defun
. A desvantagem dessa abordagem - e é grande - é que irá confundir qualquer software (que não seja o elisp compilador / intérprete) que está analisando seu código procurando pordefun
s.