Saya mencoba untuk menulis fungsi yang akan mengambil dokumen dari setiap sexps dalam file yang cocok (def.*)
.
Saya ingin keduanya dapat mengambil fungsi / makro, serta variabel apa pun yang didefinisikan. Untuk variabel saya ingin docstring, sedangkan untuk fungsi apa pun saya juga ingin daftar argumen.
elisp
doc-strings
Jonathan Leech-Pepin
sumber
sumber
(def…)
sexps, bukan hanya spesifikasi tingkat atas? Atau interpretasi menengah fungsi dan variabel yang akan ditentukan jika file dimuat? Atau definisi yang lebih santai yang mencakup bentuk tingkat atas seperti(when nil (defun …))
)?describe-function
dan teman-teman melakukan bagian yang cukup baik dari apa yang Anda inginkan (docstring dan daftar argumen).Jawaban:
Jika tujuannya adalah untuk mendapatkan informasi tentang fungsi dan variabel yang sudah ada di lingkungan :
Untuk dokumentasi fungsi dan makro, lihat
documentation
fungsi.Untuk dokumen variabel, gunakan
documentation-property
; sebagai contoh:Untuk fungsi arity dan daftar argumen, lihat pertanyaan Emacs.SE ini , jawabannya, dan komentar untuk pertanyaan itu.
(Saya menemukan ini dengan menekan
C-h k C-h f
dan membaca kode sumberdescribe-function
(sama untuk variabel docstring, tetapi belajardescribe-variable
).)Untuk menganalisis file kode sumber Emacs Lisp, dengan asumsi bahwa tujuannya adalah untuk mendapatkan informasi tentang
def.*
formulir tingkat atas , orang dapat melakukan sesuatu yang mirip dengan yang berikut ini.Hal ini dapat dengan mudah diperluas untuk
defvar
,defconst
, dllUntuk menangani
defun
muncul di dalam bentuk tingkat atas seseorang harus turun ke bentuk ini, mungkin menggunakan rekursi.sumber