Add details to cl-lib defining macros' docstrings

* lisp/emacs-lisp/cl-macs.el (cl-defun, cl-defmacro): Add terse summary
of supported arglist forms (Bug #22462).
This commit is contained in:
Noam Postavsky 2016-07-01 23:53:26 -04:00
parent d6aa4da832
commit aac62a67dd

View file

@ -327,6 +327,20 @@ FORM is of the form (ARGS . BODY)."
Like normal `defun', except ARGLIST allows full Common Lisp conventions, Like normal `defun', except ARGLIST allows full Common Lisp conventions,
and BODY is implicitly surrounded by (cl-block NAME ...). and BODY is implicitly surrounded by (cl-block NAME ...).
The full form of a Common Lisp function argument list is
(VAR...
[&optional (VAR [INITFORM [SVAR]])...]
[&rest|&body VAR]
[&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]]
[&aux (VAR [INITFORM])...])
VAR maybe be replaced recursively with an argument list for
destructing, `&whole' is supported within these sublists. If
SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be
written simply `VAR'. See the Info node `(cl)Argument Lists' for
more details.
\(fn NAME ARGLIST [DOCSTRING] BODY...)" \(fn NAME ARGLIST [DOCSTRING] BODY...)"
(declare (debug (declare (debug
;; Same as defun but use cl-lambda-list. ;; Same as defun but use cl-lambda-list.
@ -406,6 +420,21 @@ and BODY is implicitly surrounded by (cl-block NAME ...).
Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, Like normal `defmacro', except ARGLIST allows full Common Lisp conventions,
and BODY is implicitly surrounded by (cl-block NAME ...). and BODY is implicitly surrounded by (cl-block NAME ...).
The full form of a Common Lisp macro argument list is
(VAR...
[&optional (VAR [INITFORM [SVAR]])...]
[&rest|&body VAR]
[&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]]
[&aux (VAR [INITFORM])...]
[&environment VAR])
VAR maybe be replaced recursively with an argument list for
destructing, `&whole' is supported within these sublists. If
SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be
written simply `VAR'. See the Info node `(cl)Argument Lists' for
more details.
\(fn NAME ARGLIST [DOCSTRING] BODY...)" \(fn NAME ARGLIST [DOCSTRING] BODY...)"
(declare (debug (declare (debug
(&define name cl-macro-list cl-declarations-or-string def-body)) (&define name cl-macro-list cl-declarations-or-string def-body))