Я ненавиджу те, що elisp (не впевнений, чи LISP взагалі) обробляє багаторядкові docstrings.
(defun foo ()
"This is
a multi
liner
docstring"
(do-stuff))
Я впевнений, хочу, щоб я міг зробити щось подібне
(defun foo ()
(eval-when-compile
(concat
"This is\n"
"a multi\n"
"line\n"
"docstring"))
(do-stuff))
щоб відступ був послідовним.
На жаль, eval-when-compile не справляється із цією справою.
Хтось має ідеї?
eval-when-compile
котирується його результат (щоб перетворити його зі значення на вираз). Якби він був трохи розумнішим і лише цитував його результат, коли він не цитував себе, він би спрацював.
defun
. Недолік цього підходу - і він великий - полягає в тому, що заплутає будь-яке програмне забезпечення (крім компілятора / інтерпретатора elisp), що аналізує ваш код, шукаючиdefun
s.