Nienawidzę sposobu, w jaki elisp (nie jestem pewien, czy ogólnie LISP) obsługuje wieloliniowe dokumenty.
(defun foo ()
"This is
a multi
liner
docstring"
(do-stuff))
Na pewno żałuję, że nie mogę zrobić czegoś takiego
(defun foo ()
(eval-when-compile
(concat
"This is\n"
"a multi\n"
"line\n"
"docstring"))
(do-stuff))
tak aby wcięcie było spójne.
Niestety, eval-when-compile nie działa.
Czy ktoś ma jakieś pomysły?
eval-when-compile
cytowanie jej wyniku (aby zamienić ją z wartości na wyrażenie). Gdyby był nieco mądrzejszy i cytował swój wynik tylko wtedy, gdy nie jest cytatem własnym, działałby.
defun
. Wadą tego podejścia - i jest ono duże - jest to, że dezorientuje każde oprogramowanie (inne niż kompilator / interpreter elisp), które analizuje Twój kod w poszukiwaniudefun
s.