Mercurial > hg > xemacs-beta
diff lisp/autoload.el @ 4695:fee33ab25966
Add arglist info for autoloaded functions and macros.
lisp/ChangeLog addition:
2009-09-20 Aidan Kehoe <kehoea@parhasard.net>
Add arglist information to docstrings for autoloaded functions and
macros.
* hyper-apropos.el (hyper-apropos-get-doc):
Treat autoload docstrings like subr docstrings; correct the regexp
used.
* help.el (describe-function-show-arglist):
This no longer treats autoloads specially.
(function-arglist): Treat autoload docstrings like subr docstrings.
(function-documentation): Treat documentation strings that are
zero-length after the arglist has been removed as indicating a
lack of documentation.
* cl-macs.el (case):
(ecase):
(typecase):
(etypecase):
(block):
(return):
(return-from):
(progv):
(lexical-let):
(lexical-let*):
(remf):
(callf):
(callf2):
(define-modify-macro):
(deftype):
(define-compiler-macro):
Rely on the autoload code to always show an arglist for these
functions, don't supply an ad-hoc one in the docstring.
These changes are for the most obvious functions; there are some
missed that would require changing argument names in the docstring
or in the function bodies.
* autoload.el (make-autoload):
Add arg list information to the doc string, using the same
approach as for subrs.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 20 Sep 2009 23:50:05 +0100 |
parents | bfb8a26de3cb |
children | eb1a409c317b |
line wrap: on
line diff
--- a/lisp/autoload.el Sun Sep 20 21:41:22 2009 +0100 +++ b/lisp/autoload.el Sun Sep 20 23:50:05 2009 +0100 @@ -283,8 +283,17 @@ ((memq car autoload-make-autoload-operators) (let* ((macrop (memq car '(defmacro defmacro*))) (name (nth 1 form)) + (arglist (nth 2 form)) (body (nthcdr (get car 'doc-string-elt) form)) - (doc (if (stringp (car body)) (pop body)))) + (placeholder (eval-when-compile (gensym))) + (doc (concat (if (stringp (car body)) + (pop body) + "") + "\n\narguments: " + (replace-in-string + (cl-function-arglist placeholder arglist) + (format "^(%s ?" placeholder) + "(") "\n"))) ;; `define-generic-mode' quotes the name, so take care of that (list 'autoload (if (listp name) name (list 'quote name)) file doc (or (and (memq car '(define-skeleton define-derived-mode