Tôi ghét cái cách mà elisp (không chắc chắn nếu LISP nói chung) xử lý các tài liệu đa dòng.
(defun foo ()
"This is
a multi
liner
docstring"
(do-stuff))
Tôi chắc chắn ước gì tôi có thể làm một cái gì đó như
(defun foo ()
(eval-when-compile
(concat
"This is\n"
"a multi\n"
"line\n"
"docstring"))
(do-stuff))
để vết lõm phù hợp.
Thật không may, eval-khi-biên dịch không thực hiện công việc.
Có ai có ý tưởng nào?
eval-when-compile
trích dẫn kết quả của nó (để biến nó từ một giá trị thành một biểu thức). Nếu nó thông minh hơn một chút và chỉ trích dẫn kết quả của nó khi nó không tự trích dẫn, nó sẽ hoạt động.
defun
. Hạn chế của cách tiếp cận đó - và nó là một nhược điểm lớn - đó là sẽ gây nhầm lẫn cho bất kỳ phần mềm nào (ngoài trình biên dịch / trình thông dịch elisp) đang phân tích cú pháp mã của bạn để tìmdefun
s.