คำถามติดแท็ก doc-strings

1
จะดึงเอกสารจากฟังก์ชั่นและตัวแปรได้อย่างไร
ฉันพยายามที่จะเขียนฟังก์ชั่นที่จะดึง docstrings จาก sexps ใด ๆ (def.*)ในแฟ้มที่แข่งขัน ฉันต้องการทั้งสองสามารถเรียกคืนฟังก์ชั่น / มาโครใด ๆ รวมทั้งตัวแปรใด ๆ ที่กำหนดไว้ สำหรับตัวแปรที่ฉันต้องการ docstring ในขณะที่ฟังก์ชั่นใด ๆ ที่ฉันต้องการรายการอาร์กิวเมนต์

2
เป็นไปได้หรือไม่ที่จะแนบสตริงเอกสารที่สร้างขึ้นกับแลมบ์ดา?
Emacs docs บอกว่าเมื่อมีการวางสตริง doc ไว้ภายในlambdaหรือdefunเป็น“ เก็บไว้ในฟังก์ชันวัตถุ” โดยตรง อย่างไรก็ตามเราสามารถเปลี่ยนเอกสารของฟังก์ชั่นที่มีชื่อดังนี้: (put 'my-function-name 'function-documentation "Blah.") แต่เคล็ดลับแบบเดียวกันนั้นใช้ไม่ได้กับลูกแกะ มีวิธีเพิ่มเอกสารในแลมบ์ดาหรือไม่? หรืออย่างใดอย่างหนึ่งสร้างตัวอักษร doc- สตริงแบบไดนามิก? หากต้องการชี้แจงให้จินตนาการถึงสถานการณ์ต่อไปนี้: (let ((foo 1) (bar 2)) (lambda () (+ foo bar))) ผมอยากแลมบ์ดาที่จะมีสตริง doc ที่กล่าวถึงคุณค่าของและfoobar

3
มีวิธีที่ดีกว่าในการจัดการเอกสารหลายบรรทัดด้วย elisp หรือไม่?
ฉันเกลียดวิธีที่ elisp (ไม่แน่ใจว่า LISP โดยทั่วไป) จัดการเอกสารหลายบรรทัด (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 ไม่สามารถทำงานได้ ไม่มีใครมีความคิดใด ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.