Ich versuche, eine Funktion zu schreiben, die die Dokumentzeichenfolgen von allen Sexps in einer übereinstimmenden Datei abruft (def.*)
.
Ich möchte sowohl Funktionen / Makros als auch definierte Variablen abrufen können. Für Variablen möchte ich die Dokumentzeichenfolge, für alle Funktionen möchte ich auch die Argumentlisten.
elisp
doc-strings
Jonathan Leech-Pepin
quelle
quelle
(def…)
Sexps, nicht nur Top-Level-Spezifikationen? Oder die Zwischeninterpretation der Funktionen und Variablen, die beim Laden der Datei definiert würden? Oder eine entspanntere Definition, die Formulare der obersten Ebene wie(when nil (defun …))
) enthält?describe-function
Integrierten und Freunde einen guten Teil dessen, was Sie wollen (Dokumentzeichenfolge und Argumentliste).Antworten:
Wenn das Ziel darin besteht, Informationen über Funktionen und Variablen zu erhalten, die sich bereits in der Umgebung befinden :
Dokumente zu Funktionen und Makros finden Sie in der
documentation
Funktion.Verwenden Sie für variable Dokumentzeichenfolgen
documentation-property
; zum Beispiel:Informationen zur Funktionsarität und zur Argumentliste finden Sie in dieser Emacs.SE-Frage , der Antwort und den Kommentaren zur Frage.
(Ich fand dies durch Drücken
C-h k C-h f
und Überfliegen des Quellcodes vondescribe-function
(dasselbe für variable Dokumentzeichenfolgen, aber Lernendescribe-variable
).)Um eine Emacs Lisp-Quellcodedatei zu analysieren, unter der Annahme, dass das Ziel darin besteht, Informationen über
def.*
Formulare der obersten Ebene zu erhalten , können Sie Folgendes tun.Dies kann leicht erweitert werden
defvar
,defconst
usw.Um das
defun
Erscheinen in Formularen der obersten Ebene zu handhaben , müsste man in diese Formulare absteigen , möglicherweise unter Verwendung von Rekursion.quelle