লক্ষ্যটি যদি ইতিমধ্যে পরিবেশে ফাংশন এবং ভেরিয়েবল সম্পর্কে তথ্য পাওয়া যায় :
ফাংশন এবং ম্যাক্রোগুলির ডকাস্ট্রিংয়ের জন্য, ফাংশনটি দেখুন documentation
।
পরিবর্তনশীল ডকাস্ট্রিংয়ের জন্য, ব্যবহার করুন documentation-property
; উদাহরণ স্বরূপ:
(documentation-property
'user-init-file 'variable-documentation)
ফাংশন শালীনতা এবং যুক্তি তালিকার জন্য, এই Emacs.SE প্রশ্ন , উত্তর এবং প্রশ্নের মন্তব্য দেখুন।
(আমি C-h k C-h f
সোর্স কোড টিপে এবং describe-function
স্কিম করে এটি পেয়েছি (ভেরিয়েবল ডকাস্ট্রিংয়ের জন্য একই, তবে অধ্যয়নরত describe-variable
।))
একটি ইমাস লিস্প উত্স কোড ফাইল বিশ্লেষণ করতে, ধরে নেওয়া যে লক্ষ্যটি শীর্ষ-স্তরের def.*
ফর্মগুলি সম্পর্কে তথ্য পাওয়া যায়, নীচের মতো কিছু করতে পারে।
(defun get-defun-info (buffer)
"Get information about all `defun' top-level sexps in a buffer
BUFFER. Returns a list with elements of the form (symbol args docstring)."
(with-current-buffer buffer
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(let (result)
;; keep going while reading succeeds
(while (condition-case nil
(progn
(read (current-buffer))
(forward-sexp -1)
t)
(error nil))
(let ((form (read (current-buffer))))
(cond
((not (listp form)) ; if it's not a list, skip it
nil)
((eq (nth 0 form) 'defun) ; if it's a defun, collect info
(let ((sym (nth 1 form))
(args (nth 2 form))
(doc (when (stringp (nth 3 form)) (nth 3 form))))
(push (list sym args doc) result))))))
result)))))
এই সহজেই বাড়ানো যেতে পারে defvar
, defconst
ইত্যাদি
শীর্ষ-স্তরের ফর্মগুলির ভিতরেdefun
উপস্থিত হ্যান্ডেল করতে একজনকে সম্ভবত এই পুনরাবৃত্তি ব্যবহার করে এই ফর্মগুলির মধ্যে নামতে হবে ।
(def…)
কেবল শীর্ষ স্তরের চশমা নয়, সমস্ত সেক্সপসকে সত্যই চান ? অথবা ফাংশন এবং ভেরিয়েবলগুলির মধ্যবর্তী ব্যাখ্যা যা ফাইলটি লোড করা হলে সংজ্ঞায়িত হবে? বা আরও স্বাচ্ছন্দ্যযুক্ত সংজ্ঞা যেমন এর মতো শীর্ষ-স্তরের ফর্মগুলি অন্তর্ভুক্ত করে(when nil (defun …))
)?