diff options
| author | Stefan Monnier | 2012-05-17 21:46:20 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-05-17 21:46:20 -0400 |
| commit | b581bb5c8ac2aed4a610097aaaca4a8d354fe9b4 (patch) | |
| tree | 3fac722bbeb0fdf55dc40e414732a3867f29c9e1 | |
| parent | 70b8ef8f7855b9983d17731acad2fdfb4fb2a5be (diff) | |
| download | emacs-b581bb5c8ac2aed4a610097aaaca4a8d354fe9b4.tar.gz emacs-b581bb5c8ac2aed4a610097aaaca4a8d354fe9b4.zip | |
* lisp/emacs-lisp/lisp-mode.el (doc-string-elt): Move those properties to
their respective macro declarations.
* lisp/skeleton.el (define-skeleton):
* lisp/progmodes/compile.el (define-compilation-mode):
* lisp/ibuf-macs.el (define-ibuffer-sorter, define-ibuffer-op)
(define-ibuffer-filter):
* lisp/emacs-lisp/generic.el (define-generic-mode):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode):
* lisp/emacs-lisp/cl-macs.el (defun*, defmacro*, defstruct, deftype):
* lisp/emacs-lisp/byte-run.el (defsubst):
* lisp/custom.el (deftheme): Add doc-string metadata.
| -rw-r--r-- | lisp/ChangeLog | 15 | ||||
| -rw-r--r-- | lisp/cedet/mode-local.el | 4 | ||||
| -rw-r--r-- | lisp/custom.el | 1 | ||||
| -rw-r--r-- | lisp/emacs-lisp/byte-run.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-loaddefs.el | 66 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 7 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl.el | 9 | ||||
| -rw-r--r-- | lisp/emacs-lisp/easy-mmode.el | 5 | ||||
| -rw-r--r-- | lisp/emacs-lisp/generic.el | 3 | ||||
| -rw-r--r-- | lisp/emacs-lisp/lisp-mode.el | 20 | ||||
| -rw-r--r-- | lisp/ibuf-macs.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/compile.el | 3 | ||||
| -rw-r--r-- | lisp/skeleton.el | 2 |
13 files changed, 112 insertions, 31 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fcdb2ce65b7..e22b3d07985 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,18 @@ | |||
| 1 | 2012-05-18 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * emacs-lisp/lisp-mode.el (doc-string-elt): Move those properties to | ||
| 4 | their respective macro declarations. | ||
| 5 | * skeleton.el (define-skeleton): | ||
| 6 | * progmodes/compile.el (define-compilation-mode): | ||
| 7 | * ibuf-macs.el (define-ibuffer-sorter, define-ibuffer-op) | ||
| 8 | (define-ibuffer-filter): | ||
| 9 | * emacs-lisp/generic.el (define-generic-mode): | ||
| 10 | * emacs-lisp/easy-mmode.el (define-minor-mode) | ||
| 11 | (define-globalized-minor-mode): | ||
| 12 | * emacs-lisp/cl-macs.el (defun*, defmacro*, defstruct, deftype): | ||
| 13 | * emacs-lisp/byte-run.el (defsubst): | ||
| 14 | * custom.el (deftheme): Add doc-string metadata. | ||
| 15 | |||
| 1 | 2012-05-17 Stefan Monnier <monnier@iro.umontreal.ca> | 16 | 2012-05-17 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 17 | ||
| 3 | * emacs-lisp/cl-macs.el, emacs-lisp/cl.el: Move indent info. | 18 | * emacs-lisp/cl-macs.el, emacs-lisp/cl.el: Move indent info. |
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index 7346e88797d..11968f3fa35 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el | |||
| @@ -522,6 +522,9 @@ See also the function `define-overload'." | |||
| 522 | (list (mode-local--override name args body)) | 522 | (list (mode-local--override name args body)) |
| 523 | result))) | 523 | result))) |
| 524 | 524 | ||
| 525 | ;;;###autoload | ||
| 526 | (put 'define-overloadable-function 'doc-string-elt 3) | ||
| 527 | |||
| 525 | (defmacro define-overloadable-function (name args docstring &rest body) | 528 | (defmacro define-overloadable-function (name args docstring &rest body) |
| 526 | "Define a new function, as with `defun', which can be overloaded. | 529 | "Define a new function, as with `defun', which can be overloaded. |
| 527 | NAME is the name of the function to create. | 530 | NAME is the name of the function to create. |
| @@ -546,6 +549,7 @@ defined. The default is to call the function `NAME-default' with the | |||
| 546 | appropriate arguments deduced from ARGS. | 549 | appropriate arguments deduced from ARGS. |
| 547 | OVERARGS is a list of arguments passed to the override and | 550 | OVERARGS is a list of arguments passed to the override and |
| 548 | `NAME-default' function, in place of those deduced from ARGS." | 551 | `NAME-default' function, in place of those deduced from ARGS." |
| 552 | (declare (doc-string 3)) | ||
| 549 | `(eval-and-compile | 553 | `(eval-and-compile |
| 550 | (defun ,name ,args | 554 | (defun ,name ,args |
| 551 | ,docstring | 555 | ,docstring |
diff --git a/lisp/custom.el b/lisp/custom.el index d0eadcc23ff..50481f2aa7f 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -1048,6 +1048,7 @@ The optional argument DOC is a doc string describing the theme. | |||
| 1048 | 1048 | ||
| 1049 | Any theme `foo' should be defined in a file called `foo-theme.el'; | 1049 | Any theme `foo' should be defined in a file called `foo-theme.el'; |
| 1050 | see `custom-make-theme-feature' for more information." | 1050 | see `custom-make-theme-feature' for more information." |
| 1051 | (declare (doc-string 2)) | ||
| 1051 | (let ((feature (custom-make-theme-feature theme))) | 1052 | (let ((feature (custom-make-theme-feature theme))) |
| 1052 | ;; It is better not to use backquote in this file, | 1053 | ;; It is better not to use backquote in this file, |
| 1053 | ;; because that makes a bootstrapping problem | 1054 | ;; because that makes a bootstrapping problem |
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index dc7166bc2ea..7de3396f8ed 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el | |||
| @@ -96,7 +96,7 @@ The return value of this function is not used." | |||
| 96 | ;; This has a special byte-hunk-handler in bytecomp.el. | 96 | ;; This has a special byte-hunk-handler in bytecomp.el. |
| 97 | (defmacro defsubst (name arglist &rest body) | 97 | (defmacro defsubst (name arglist &rest body) |
| 98 | "Define an inline function. The syntax is just like that of `defun'." | 98 | "Define an inline function. The syntax is just like that of `defun'." |
| 99 | (declare (debug defun)) | 99 | (declare (debug defun) (doc-string 3)) |
| 100 | (or (memq (get name 'byte-optimizer) | 100 | (or (memq (get name 'byte-optimizer) |
| 101 | '(nil byte-compile-inline-expand)) | 101 | '(nil byte-compile-inline-expand)) |
| 102 | (error "`%s' is a primitive" name)) | 102 | (error "`%s' is a primitive" name)) |
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index d16b98630c8..a9380619e6a 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el | |||
| @@ -286,7 +286,7 @@ This also does some trivial optimizations to make the form prettier. | |||
| 286 | ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist | 286 | ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist |
| 287 | ;;;;;; do* do loop return-from return block etypecase typecase ecase | 287 | ;;;;;; do* do loop return-from return block etypecase typecase ecase |
| 288 | ;;;;;; case load-time-value eval-when destructuring-bind function* | 288 | ;;;;;; case load-time-value eval-when destructuring-bind function* |
| 289 | ;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "ed94b3ba46080516e6ada69bdf617be5") | 289 | ;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "c383ef0fa5f6d28796cd8e9cf65e1c5d") |
| 290 | ;;; Generated autoloads from cl-macs.el | 290 | ;;; Generated autoloads from cl-macs.el |
| 291 | 291 | ||
| 292 | (autoload 'gensym "cl-macs" "\ | 292 | (autoload 'gensym "cl-macs" "\ |
| @@ -308,6 +308,10 @@ and BODY is implicitly surrounded by (block NAME ...). | |||
| 308 | 308 | ||
| 309 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" nil (quote macro)) | 309 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" nil (quote macro)) |
| 310 | 310 | ||
| 311 | (put 'defun* 'lisp-indent-function '2) | ||
| 312 | |||
| 313 | (put 'defun* 'doc-string-elt '3) | ||
| 314 | |||
| 311 | (autoload 'defmacro* "cl-macs" "\ | 315 | (autoload 'defmacro* "cl-macs" "\ |
| 312 | Define NAME as a macro. | 316 | Define NAME as a macro. |
| 313 | Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, | 317 | Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, |
| @@ -315,6 +319,10 @@ and BODY is implicitly surrounded by (block NAME ...). | |||
| 315 | 319 | ||
| 316 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" nil (quote macro)) | 320 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" nil (quote macro)) |
| 317 | 321 | ||
| 322 | (put 'defmacro* 'lisp-indent-function '2) | ||
| 323 | |||
| 324 | (put 'defmacro* 'doc-string-elt '3) | ||
| 325 | |||
| 318 | (autoload 'function* "cl-macs" "\ | 326 | (autoload 'function* "cl-macs" "\ |
| 319 | Introduce a function. | 327 | Introduce a function. |
| 320 | Like normal `function', except that if argument is a lambda form, | 328 | Like normal `function', except that if argument is a lambda form, |
| @@ -327,6 +335,8 @@ its argument list allows full Common Lisp conventions. | |||
| 327 | 335 | ||
| 328 | \(fn ARGS EXPR &rest BODY)" nil (quote macro)) | 336 | \(fn ARGS EXPR &rest BODY)" nil (quote macro)) |
| 329 | 337 | ||
| 338 | (put 'destructuring-bind 'lisp-indent-function '2) | ||
| 339 | |||
| 330 | (autoload 'eval-when "cl-macs" "\ | 340 | (autoload 'eval-when "cl-macs" "\ |
| 331 | Control when BODY is evaluated. | 341 | Control when BODY is evaluated. |
| 332 | If `compile' is in WHEN, BODY is evaluated when compiled at top-level. | 342 | If `compile' is in WHEN, BODY is evaluated when compiled at top-level. |
| @@ -335,6 +345,8 @@ If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level. | |||
| 335 | 345 | ||
| 336 | \(fn (WHEN...) BODY...)" nil (quote macro)) | 346 | \(fn (WHEN...) BODY...)" nil (quote macro)) |
| 337 | 347 | ||
| 348 | (put 'eval-when 'lisp-indent-function '1) | ||
| 349 | |||
| 338 | (autoload 'load-time-value "cl-macs" "\ | 350 | (autoload 'load-time-value "cl-macs" "\ |
| 339 | Like `progn', but evaluates the body at load time. | 351 | Like `progn', but evaluates the body at load time. |
| 340 | The result of the body appears to the compiler as a quoted constant. | 352 | The result of the body appears to the compiler as a quoted constant. |
| @@ -352,12 +364,16 @@ Key values are compared by `eql'. | |||
| 352 | 364 | ||
| 353 | \(fn EXPR (KEYLIST BODY...)...)" nil (quote macro)) | 365 | \(fn EXPR (KEYLIST BODY...)...)" nil (quote macro)) |
| 354 | 366 | ||
| 367 | (put 'case 'lisp-indent-function '1) | ||
| 368 | |||
| 355 | (autoload 'ecase "cl-macs" "\ | 369 | (autoload 'ecase "cl-macs" "\ |
| 356 | Like `case', but error if no case fits. | 370 | Like `case', but error if no case fits. |
| 357 | `otherwise'-clauses are not allowed. | 371 | `otherwise'-clauses are not allowed. |
| 358 | 372 | ||
| 359 | \(fn EXPR (KEYLIST BODY...)...)" nil (quote macro)) | 373 | \(fn EXPR (KEYLIST BODY...)...)" nil (quote macro)) |
| 360 | 374 | ||
| 375 | (put 'ecase 'lisp-indent-function '1) | ||
| 376 | |||
| 361 | (autoload 'typecase "cl-macs" "\ | 377 | (autoload 'typecase "cl-macs" "\ |
| 362 | Evals EXPR, chooses among clauses on that value. | 378 | Evals EXPR, chooses among clauses on that value. |
| 363 | Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it | 379 | Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it |
| @@ -367,12 +383,16 @@ final clause, and matches if no other keys match. | |||
| 367 | 383 | ||
| 368 | \(fn EXPR (TYPE BODY...)...)" nil (quote macro)) | 384 | \(fn EXPR (TYPE BODY...)...)" nil (quote macro)) |
| 369 | 385 | ||
| 386 | (put 'typecase 'lisp-indent-function '1) | ||
| 387 | |||
| 370 | (autoload 'etypecase "cl-macs" "\ | 388 | (autoload 'etypecase "cl-macs" "\ |
| 371 | Like `typecase', but error if no case fits. | 389 | Like `typecase', but error if no case fits. |
| 372 | `otherwise'-clauses are not allowed. | 390 | `otherwise'-clauses are not allowed. |
| 373 | 391 | ||
| 374 | \(fn EXPR (TYPE BODY...)...)" nil (quote macro)) | 392 | \(fn EXPR (TYPE BODY...)...)" nil (quote macro)) |
| 375 | 393 | ||
| 394 | (put 'etypecase 'lisp-indent-function '1) | ||
| 395 | |||
| 376 | (autoload 'block "cl-macs" "\ | 396 | (autoload 'block "cl-macs" "\ |
| 377 | Define a lexically-scoped block named NAME. | 397 | Define a lexically-scoped block named NAME. |
| 378 | NAME may be any symbol. Code inside the BODY forms can call `return-from' | 398 | NAME may be any symbol. Code inside the BODY forms can call `return-from' |
| @@ -385,6 +405,8 @@ called from BODY. | |||
| 385 | 405 | ||
| 386 | \(fn NAME &rest BODY)" nil (quote macro)) | 406 | \(fn NAME &rest BODY)" nil (quote macro)) |
| 387 | 407 | ||
| 408 | (put 'block 'lisp-indent-function '1) | ||
| 409 | |||
| 388 | (autoload 'return "cl-macs" "\ | 410 | (autoload 'return "cl-macs" "\ |
| 389 | Return from the block named nil. | 411 | Return from the block named nil. |
| 390 | This is equivalent to `(return-from nil RESULT)'. | 412 | This is equivalent to `(return-from nil RESULT)'. |
| @@ -400,6 +422,8 @@ This is compatible with Common Lisp, but note that `defun' and | |||
| 400 | 422 | ||
| 401 | \(fn NAME &optional RESULT)" nil (quote macro)) | 423 | \(fn NAME &optional RESULT)" nil (quote macro)) |
| 402 | 424 | ||
| 425 | (put 'return-from 'lisp-indent-function '1) | ||
| 426 | |||
| 403 | (autoload 'loop "cl-macs" "\ | 427 | (autoload 'loop "cl-macs" "\ |
| 404 | The Common Lisp `loop' macro. | 428 | The Common Lisp `loop' macro. |
| 405 | Valid clauses are: | 429 | Valid clauses are: |
| @@ -421,11 +445,15 @@ The Common Lisp `do' loop. | |||
| 421 | 445 | ||
| 422 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil (quote macro)) | 446 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil (quote macro)) |
| 423 | 447 | ||
| 448 | (put 'do 'lisp-indent-function '2) | ||
| 449 | |||
| 424 | (autoload 'do* "cl-macs" "\ | 450 | (autoload 'do* "cl-macs" "\ |
| 425 | The Common Lisp `do*' loop. | 451 | The Common Lisp `do*' loop. |
| 426 | 452 | ||
| 427 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil (quote macro)) | 453 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil (quote macro)) |
| 428 | 454 | ||
| 455 | (put 'do* 'lisp-indent-function '2) | ||
| 456 | |||
| 429 | (autoload 'dolist "cl-macs" "\ | 457 | (autoload 'dolist "cl-macs" "\ |
| 430 | Loop over a list. | 458 | Loop over a list. |
| 431 | Evaluate BODY with VAR bound to each `car' from LIST, in turn. | 459 | Evaluate BODY with VAR bound to each `car' from LIST, in turn. |
| @@ -449,11 +477,15 @@ from OBARRAY. | |||
| 449 | 477 | ||
| 450 | \(fn (VAR [OBARRAY [RESULT]]) BODY...)" nil (quote macro)) | 478 | \(fn (VAR [OBARRAY [RESULT]]) BODY...)" nil (quote macro)) |
| 451 | 479 | ||
| 480 | (put 'do-symbols 'lisp-indent-function '1) | ||
| 481 | |||
| 452 | (autoload 'do-all-symbols "cl-macs" "\ | 482 | (autoload 'do-all-symbols "cl-macs" "\ |
| 453 | 483 | ||
| 454 | 484 | ||
| 455 | \(fn SPEC &rest BODY)" nil (quote macro)) | 485 | \(fn SPEC &rest BODY)" nil (quote macro)) |
| 456 | 486 | ||
| 487 | (put 'do-all-symbols 'lisp-indent-function '1) | ||
| 488 | |||
| 457 | (autoload 'psetq "cl-macs" "\ | 489 | (autoload 'psetq "cl-macs" "\ |
| 458 | Set SYMs to the values VALs in parallel. | 490 | Set SYMs to the values VALs in parallel. |
| 459 | This is like `setq', except that all VAL forms are evaluated (in order) | 491 | This is like `setq', except that all VAL forms are evaluated (in order) |
| @@ -471,6 +503,8 @@ a `let' form, except that the list of symbols can be computed at run-time. | |||
| 471 | 503 | ||
| 472 | \(fn SYMBOLS VALUES &rest BODY)" nil (quote macro)) | 504 | \(fn SYMBOLS VALUES &rest BODY)" nil (quote macro)) |
| 473 | 505 | ||
| 506 | (put 'progv 'lisp-indent-function '2) | ||
| 507 | |||
| 474 | (autoload 'flet "cl-macs" "\ | 508 | (autoload 'flet "cl-macs" "\ |
| 475 | Make temporary function definitions. | 509 | Make temporary function definitions. |
| 476 | This is an analogue of `let' that operates on the function cell of FUNC | 510 | This is an analogue of `let' that operates on the function cell of FUNC |
| @@ -480,6 +514,8 @@ go back to their previous definitions, or lack thereof). | |||
| 480 | 514 | ||
| 481 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" nil (quote macro)) | 515 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" nil (quote macro)) |
| 482 | 516 | ||
| 517 | (put 'flet 'lisp-indent-function '1) | ||
| 518 | |||
| 483 | (autoload 'labels "cl-macs" "\ | 519 | (autoload 'labels "cl-macs" "\ |
| 484 | Make temporary function bindings. | 520 | Make temporary function bindings. |
| 485 | This is like `flet', except the bindings are lexical instead of dynamic. | 521 | This is like `flet', except the bindings are lexical instead of dynamic. |
| @@ -487,12 +523,16 @@ Unlike `flet', this macro is fully compliant with the Common Lisp standard. | |||
| 487 | 523 | ||
| 488 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" nil (quote macro)) | 524 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" nil (quote macro)) |
| 489 | 525 | ||
| 526 | (put 'labels 'lisp-indent-function '1) | ||
| 527 | |||
| 490 | (autoload 'macrolet "cl-macs" "\ | 528 | (autoload 'macrolet "cl-macs" "\ |
| 491 | Make temporary macro definitions. | 529 | Make temporary macro definitions. |
| 492 | This is like `flet', but for macros instead of functions. | 530 | This is like `flet', but for macros instead of functions. |
| 493 | 531 | ||
| 494 | \(fn ((NAME ARGLIST BODY...) ...) FORM...)" nil (quote macro)) | 532 | \(fn ((NAME ARGLIST BODY...) ...) FORM...)" nil (quote macro)) |
| 495 | 533 | ||
| 534 | (put 'macrolet 'lisp-indent-function '1) | ||
| 535 | |||
| 496 | (autoload 'symbol-macrolet "cl-macs" "\ | 536 | (autoload 'symbol-macrolet "cl-macs" "\ |
| 497 | Make symbol macro definitions. | 537 | Make symbol macro definitions. |
| 498 | Within the body FORMs, references to the variable NAME will be replaced | 538 | Within the body FORMs, references to the variable NAME will be replaced |
| @@ -500,6 +540,8 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). | |||
| 500 | 540 | ||
| 501 | \(fn ((NAME EXPANSION) ...) FORM...)" nil (quote macro)) | 541 | \(fn ((NAME EXPANSION) ...) FORM...)" nil (quote macro)) |
| 502 | 542 | ||
| 543 | (put 'symbol-macrolet 'lisp-indent-function '1) | ||
| 544 | |||
| 503 | (autoload 'lexical-let "cl-macs" "\ | 545 | (autoload 'lexical-let "cl-macs" "\ |
| 504 | Like `let', but lexically scoped. | 546 | Like `let', but lexically scoped. |
| 505 | The main visible difference is that lambdas inside BODY will create | 547 | The main visible difference is that lambdas inside BODY will create |
| @@ -507,6 +549,8 @@ lexical closures as in Common Lisp. | |||
| 507 | 549 | ||
| 508 | \(fn BINDINGS BODY)" nil (quote macro)) | 550 | \(fn BINDINGS BODY)" nil (quote macro)) |
| 509 | 551 | ||
| 552 | (put 'lexical-let 'lisp-indent-function '1) | ||
| 553 | |||
| 510 | (autoload 'lexical-let* "cl-macs" "\ | 554 | (autoload 'lexical-let* "cl-macs" "\ |
| 511 | Like `let*', but lexically scoped. | 555 | Like `let*', but lexically scoped. |
| 512 | The main visible difference is that lambdas inside BODY, and in | 556 | The main visible difference is that lambdas inside BODY, and in |
| @@ -516,6 +560,8 @@ Common Lisp. | |||
| 516 | 560 | ||
| 517 | \(fn BINDINGS BODY)" nil (quote macro)) | 561 | \(fn BINDINGS BODY)" nil (quote macro)) |
| 518 | 562 | ||
| 563 | (put 'lexical-let* 'lisp-indent-function '1) | ||
| 564 | |||
| 519 | (autoload 'multiple-value-bind "cl-macs" "\ | 565 | (autoload 'multiple-value-bind "cl-macs" "\ |
| 520 | Collect multiple return values. | 566 | Collect multiple return values. |
| 521 | FORM must return a list; the BODY is then executed with the first N elements | 567 | FORM must return a list; the BODY is then executed with the first N elements |
| @@ -526,6 +572,8 @@ a synonym for (list A B C). | |||
| 526 | 572 | ||
| 527 | \(fn (SYM...) FORM BODY)" nil (quote macro)) | 573 | \(fn (SYM...) FORM BODY)" nil (quote macro)) |
| 528 | 574 | ||
| 575 | (put 'multiple-value-bind 'lisp-indent-function '2) | ||
| 576 | |||
| 529 | (autoload 'multiple-value-setq "cl-macs" "\ | 577 | (autoload 'multiple-value-setq "cl-macs" "\ |
| 530 | Collect multiple return values. | 578 | Collect multiple return values. |
| 531 | FORM must return a list; the first N elements of this list are stored in | 579 | FORM must return a list; the first N elements of this list are stored in |
| @@ -535,6 +583,8 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). | |||
| 535 | 583 | ||
| 536 | \(fn (SYM...) FORM)" nil (quote macro)) | 584 | \(fn (SYM...) FORM)" nil (quote macro)) |
| 537 | 585 | ||
| 586 | (put 'multiple-value-setq 'lisp-indent-function '1) | ||
| 587 | |||
| 538 | (autoload 'locally "cl-macs" "\ | 588 | (autoload 'locally "cl-macs" "\ |
| 539 | 589 | ||
| 540 | 590 | ||
| @@ -545,6 +595,8 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). | |||
| 545 | 595 | ||
| 546 | \(fn TYPE FORM)" nil (quote macro)) | 596 | \(fn TYPE FORM)" nil (quote macro)) |
| 547 | 597 | ||
| 598 | (put 'the 'lisp-indent-function '1) | ||
| 599 | |||
| 548 | (autoload 'declare "cl-macs" "\ | 600 | (autoload 'declare "cl-macs" "\ |
| 549 | Declare SPECS about the current function while compiling. | 601 | Declare SPECS about the current function while compiling. |
| 550 | For instance | 602 | For instance |
| @@ -649,6 +701,8 @@ the PLACE is not modified before executing BODY. | |||
| 649 | 701 | ||
| 650 | \(fn ((PLACE VALUE) ...) BODY...)" nil (quote macro)) | 702 | \(fn ((PLACE VALUE) ...) BODY...)" nil (quote macro)) |
| 651 | 703 | ||
| 704 | (put 'letf 'lisp-indent-function '1) | ||
| 705 | |||
| 652 | (autoload 'letf* "cl-macs" "\ | 706 | (autoload 'letf* "cl-macs" "\ |
| 653 | Temporarily bind to PLACEs. | 707 | Temporarily bind to PLACEs. |
| 654 | This is the analogue of `let*', but with generalized variables (in the | 708 | This is the analogue of `let*', but with generalized variables (in the |
| @@ -661,6 +715,8 @@ the PLACE is not modified before executing BODY. | |||
| 661 | 715 | ||
| 662 | \(fn ((PLACE VALUE) ...) BODY...)" nil (quote macro)) | 716 | \(fn ((PLACE VALUE) ...) BODY...)" nil (quote macro)) |
| 663 | 717 | ||
| 718 | (put 'letf* 'lisp-indent-function '1) | ||
| 719 | |||
| 664 | (autoload 'callf "cl-macs" "\ | 720 | (autoload 'callf "cl-macs" "\ |
| 665 | Set PLACE to (FUNC PLACE ARGS...). | 721 | Set PLACE to (FUNC PLACE ARGS...). |
| 666 | FUNC should be an unquoted function name. PLACE may be a symbol, | 722 | FUNC should be an unquoted function name. PLACE may be a symbol, |
| @@ -668,12 +724,16 @@ or any generalized variable allowed by `setf'. | |||
| 668 | 724 | ||
| 669 | \(fn FUNC PLACE ARGS...)" nil (quote macro)) | 725 | \(fn FUNC PLACE ARGS...)" nil (quote macro)) |
| 670 | 726 | ||
| 727 | (put 'callf 'lisp-indent-function '2) | ||
| 728 | |||
| 671 | (autoload 'callf2 "cl-macs" "\ | 729 | (autoload 'callf2 "cl-macs" "\ |
| 672 | Set PLACE to (FUNC ARG1 PLACE ARGS...). | 730 | Set PLACE to (FUNC ARG1 PLACE ARGS...). |
| 673 | Like `callf', but PLACE is the second argument of FUNC, not the first. | 731 | Like `callf', but PLACE is the second argument of FUNC, not the first. |
| 674 | 732 | ||
| 675 | \(fn FUNC ARG1 PLACE ARGS...)" nil (quote macro)) | 733 | \(fn FUNC ARG1 PLACE ARGS...)" nil (quote macro)) |
| 676 | 734 | ||
| 735 | (put 'callf2 'lisp-indent-function '3) | ||
| 736 | |||
| 677 | (autoload 'define-modify-macro "cl-macs" "\ | 737 | (autoload 'define-modify-macro "cl-macs" "\ |
| 678 | Define a `setf'-like modify macro. | 738 | Define a `setf'-like modify macro. |
| 679 | If NAME is called, it combines its PLACE argument with the other arguments | 739 | If NAME is called, it combines its PLACE argument with the other arguments |
| @@ -699,6 +759,8 @@ value, that slot cannot be set via `setf'. | |||
| 699 | 759 | ||
| 700 | \(fn NAME SLOTS...)" nil (quote macro)) | 760 | \(fn NAME SLOTS...)" nil (quote macro)) |
| 701 | 761 | ||
| 762 | (put 'defstruct 'doc-string-elt '2) | ||
| 763 | |||
| 702 | (autoload 'cl-struct-setf-expander "cl-macs" "\ | 764 | (autoload 'cl-struct-setf-expander "cl-macs" "\ |
| 703 | 765 | ||
| 704 | 766 | ||
| @@ -710,6 +772,8 @@ The type name can then be used in `typecase', `check-type', etc. | |||
| 710 | 772 | ||
| 711 | \(fn NAME ARGLIST &rest BODY)" nil (quote macro)) | 773 | \(fn NAME ARGLIST &rest BODY)" nil (quote macro)) |
| 712 | 774 | ||
| 775 | (put 'deftype 'doc-string-elt '3) | ||
| 776 | |||
| 713 | (autoload 'typep "cl-macs" "\ | 777 | (autoload 'typep "cl-macs" "\ |
| 714 | Check that OBJECT is of type TYPE. | 778 | Check that OBJECT is of type TYPE. |
| 715 | TYPE is a Common Lisp-style type specifier. | 779 | TYPE is a Common Lisp-style type specifier. |
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 441ae55758c..c547a4f6460 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -227,6 +227,7 @@ and BODY is implicitly surrounded by (block NAME ...). | |||
| 227 | cl-declarations-or-string | 227 | cl-declarations-or-string |
| 228 | [&optional ("interactive" interactive)] | 228 | [&optional ("interactive" interactive)] |
| 229 | def-body)) | 229 | def-body)) |
| 230 | (doc-string 3) | ||
| 230 | (indent 2)) | 231 | (indent 2)) |
| 231 | (let* ((res (cl-transform-lambda (cons args body) name)) | 232 | (let* ((res (cl-transform-lambda (cons args body) name)) |
| 232 | (form (list* 'defun name (cdr res)))) | 233 | (form (list* 'defun name (cdr res)))) |
| @@ -279,6 +280,7 @@ and BODY is implicitly surrounded by (block NAME ...). | |||
| 279 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" | 280 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" |
| 280 | (declare (debug | 281 | (declare (debug |
| 281 | (&define name cl-macro-list cl-declarations-or-string def-body)) | 282 | (&define name cl-macro-list cl-declarations-or-string def-body)) |
| 283 | (doc-string 3) | ||
| 282 | (indent 2)) | 284 | (indent 2)) |
| 283 | (let* ((res (cl-transform-lambda (cons args body) name)) | 285 | (let* ((res (cl-transform-lambda (cons args body) name)) |
| 284 | (form (list* 'defmacro name (cdr res)))) | 286 | (form (list* 'defmacro name (cdr res)))) |
| @@ -2587,7 +2589,8 @@ one keyword is supported, `:read-only'. If this has a non-nil | |||
| 2587 | value, that slot cannot be set via `setf'. | 2589 | value, that slot cannot be set via `setf'. |
| 2588 | 2590 | ||
| 2589 | \(fn NAME SLOTS...)" | 2591 | \(fn NAME SLOTS...)" |
| 2590 | (declare (debug | 2592 | (declare (doc-string 2) |
| 2593 | (debug | ||
| 2591 | (&define ;Makes top-level form not be wrapped. | 2594 | (&define ;Makes top-level form not be wrapped. |
| 2592 | [&or symbolp | 2595 | [&or symbolp |
| 2593 | (gate | 2596 | (gate |
| @@ -2854,7 +2857,7 @@ value, that slot cannot be set via `setf'. | |||
| 2854 | (defmacro deftype (name arglist &rest body) | 2857 | (defmacro deftype (name arglist &rest body) |
| 2855 | "Define NAME as a new data type. | 2858 | "Define NAME as a new data type. |
| 2856 | The type name can then be used in `typecase', `check-type', etc." | 2859 | The type name can then be used in `typecase', `check-type', etc." |
| 2857 | (declare (debug defmacro*)) | 2860 | (declare (debug defmacro*) (doc-string 3)) |
| 2858 | (list 'eval-when '(compile load eval) | 2861 | (list 'eval-when '(compile load eval) |
| 2859 | (cl-transform-function-property | 2862 | (cl-transform-function-property |
| 2860 | name 'cl-deftype-handler (cons (list* '&cl-defs ''('*) arglist) body)))) | 2863 | name 'cl-deftype-handler (cons (list* '&cl-defs ''('*) arglist) body)))) |
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index 7c486e17dcf..137dd1bfb84 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el | |||
| @@ -656,6 +656,15 @@ If ALIST is non-nil, the new pairs are prepended to it." | |||
| 656 | (fmakunbound 'dolist) | 656 | (fmakunbound 'dolist) |
| 657 | (fmakunbound 'dotimes) | 657 | (fmakunbound 'dotimes) |
| 658 | (fmakunbound 'declare) | 658 | (fmakunbound 'declare) |
| 659 | ;;;###autoload | ||
| 660 | (progn | ||
| 661 | ;; Autoload, so autoload.el and font-lock can use it even when CL | ||
| 662 | ;; is not loaded. | ||
| 663 | (put 'defun* 'doc-string-elt 3) | ||
| 664 | (put 'defmacro* 'doc-string-elt 3) | ||
| 665 | (put 'defsubst 'doc-string-elt 3) | ||
| 666 | (put 'defstruct 'doc-string-elt 2)) | ||
| 667 | |||
| 659 | (load "cl-loaddefs" nil 'quiet) | 668 | (load "cl-loaddefs" nil 'quiet) |
| 660 | 669 | ||
| 661 | ;; This goes here so that cl-macs can find it if it loads right now. | 670 | ;; This goes here so that cl-macs can find it if it loads right now. |
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 301947f0735..a11f213e646 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el | |||
| @@ -142,7 +142,8 @@ For example, you could write | |||
| 142 | (define-minor-mode foo-mode \"If enabled, foo on you!\" | 142 | (define-minor-mode foo-mode \"If enabled, foo on you!\" |
| 143 | :lighter \" Foo\" :require 'foo :global t :group 'hassle :version \"27.5\" | 143 | :lighter \" Foo\" :require 'foo :global t :group 'hassle :version \"27.5\" |
| 144 | ...BODY CODE...)" | 144 | ...BODY CODE...)" |
| 145 | (declare (debug (&define name stringp | 145 | (declare (doc-string 2) |
| 146 | (debug (&define name stringp | ||
| 146 | [&optional [¬ keywordp] sexp | 147 | [&optional [¬ keywordp] sexp |
| 147 | &optional [¬ keywordp] sexp | 148 | &optional [¬ keywordp] sexp |
| 148 | &optional [¬ keywordp] sexp] | 149 | &optional [¬ keywordp] sexp] |
| @@ -335,7 +336,7 @@ enabled, then disabling and reenabling MODE should make MODE work | |||
| 335 | correctly with the current major mode. This is important to | 336 | correctly with the current major mode. This is important to |
| 336 | prevent problems with derived modes, that is, major modes that | 337 | prevent problems with derived modes, that is, major modes that |
| 337 | call another major mode in their body." | 338 | call another major mode in their body." |
| 338 | 339 | (declare (doc-string 2)) | |
| 339 | (let* ((global-mode-name (symbol-name global-mode)) | 340 | (let* ((global-mode-name (symbol-name global-mode)) |
| 340 | (pretty-name (easy-mmode-pretty-mode-name mode)) | 341 | (pretty-name (easy-mmode-pretty-mode-name mode)) |
| 341 | (pretty-global-name (easy-mmode-pretty-mode-name global-mode)) | 342 | (pretty-global-name (easy-mmode-pretty-mode-name global-mode)) |
diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el index b9db092fafc..80b6122822e 100644 --- a/lisp/emacs-lisp/generic.el +++ b/lisp/emacs-lisp/generic.el | |||
| @@ -151,7 +151,8 @@ mode hook `MODE-hook'. | |||
| 151 | See the file generic-x.el for some examples of `define-generic-mode'." | 151 | See the file generic-x.el for some examples of `define-generic-mode'." |
| 152 | (declare (debug (sexp def-form def-form def-form form def-form | 152 | (declare (debug (sexp def-form def-form def-form form def-form |
| 153 | [&optional stringp] &rest [keywordp form])) | 153 | [&optional stringp] &rest [keywordp form])) |
| 154 | (indent 1)) | 154 | (indent 1) |
| 155 | (doc-string 7)) | ||
| 155 | 156 | ||
| 156 | ;; Backward compatibility. | 157 | ;; Backward compatibility. |
| 157 | (when (eq (car-safe mode) 'quote) | 158 | (when (eq (car-safe mode) 'quote) |
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 95eb8c963be..dfdac92ae32 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -136,34 +136,14 @@ It has `lisp-mode-abbrev-table' as its parent." | |||
| 136 | ;; This was originally in autoload.el and is still used there. | 136 | ;; This was originally in autoload.el and is still used there. |
| 137 | (put 'autoload 'doc-string-elt 3) | 137 | (put 'autoload 'doc-string-elt 3) |
| 138 | (put 'defun 'doc-string-elt 3) | 138 | (put 'defun 'doc-string-elt 3) |
| 139 | (put 'defun* 'doc-string-elt 3) | ||
| 140 | (put 'defmethod 'doc-string-elt 3) | 139 | (put 'defmethod 'doc-string-elt 3) |
| 141 | (put 'defvar 'doc-string-elt 3) | 140 | (put 'defvar 'doc-string-elt 3) |
| 142 | (put 'defcustom 'doc-string-elt 3) | ||
| 143 | (put 'deftheme 'doc-string-elt 2) | ||
| 144 | (put 'deftype 'doc-string-elt 3) | ||
| 145 | (put 'defconst 'doc-string-elt 3) | 141 | (put 'defconst 'doc-string-elt 3) |
| 146 | (put 'defmacro 'doc-string-elt 3) | 142 | (put 'defmacro 'doc-string-elt 3) |
| 147 | (put 'defmacro* 'doc-string-elt 3) | ||
| 148 | (put 'defsubst 'doc-string-elt 3) | ||
| 149 | (put 'defstruct 'doc-string-elt 2) | ||
| 150 | (put 'define-skeleton 'doc-string-elt 2) | ||
| 151 | (put 'define-derived-mode 'doc-string-elt 4) | ||
| 152 | (put 'define-compilation-mode 'doc-string-elt 3) | ||
| 153 | (put 'easy-mmode-define-minor-mode 'doc-string-elt 2) | ||
| 154 | (put 'define-minor-mode 'doc-string-elt 2) | ||
| 155 | (put 'easy-mmode-define-global-mode 'doc-string-elt 2) | ||
| 156 | (put 'define-global-minor-mode 'doc-string-elt 2) | ||
| 157 | (put 'define-globalized-minor-mode 'doc-string-elt 2) | ||
| 158 | (put 'define-generic-mode 'doc-string-elt 7) | ||
| 159 | (put 'define-ibuffer-filter 'doc-string-elt 2) | ||
| 160 | (put 'define-ibuffer-op 'doc-string-elt 3) | ||
| 161 | (put 'define-ibuffer-sorter 'doc-string-elt 2) | ||
| 162 | (put 'lambda 'doc-string-elt 2) | 143 | (put 'lambda 'doc-string-elt 2) |
| 163 | (put 'defalias 'doc-string-elt 3) | 144 | (put 'defalias 'doc-string-elt 3) |
| 164 | (put 'defvaralias 'doc-string-elt 3) | 145 | (put 'defvaralias 'doc-string-elt 3) |
| 165 | (put 'define-category 'doc-string-elt 2) | 146 | (put 'define-category 'doc-string-elt 2) |
| 166 | (put 'define-overloadable-function 'doc-string-elt 3) | ||
| 167 | 147 | ||
| 168 | (defvar lisp-doc-string-elt-property 'doc-string-elt | 148 | (defvar lisp-doc-string-elt-property 'doc-string-elt |
| 169 | "The symbol property that holds the docstring position info.") | 149 | "The symbol property that holds the docstring position info.") |
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el index f47592e82bb..659b8e7d78c 100644 --- a/lisp/ibuf-macs.el +++ b/lisp/ibuf-macs.el | |||
| @@ -143,7 +143,7 @@ buffer object, and `b' bound to another. BODY should return a non-nil | |||
| 143 | value if and only if `a' is \"less than\" `b'. | 143 | value if and only if `a' is \"less than\" `b'. |
| 144 | 144 | ||
| 145 | \(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" | 145 | \(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" |
| 146 | (declare (indent 1)) | 146 | (declare (indent 1) (doc-string 2)) |
| 147 | `(progn | 147 | `(progn |
| 148 | (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) () | 148 | (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) () |
| 149 | ,(or documentation "No :documentation specified for this sorting method.") | 149 | ,(or documentation "No :documentation specified for this sorting method.") |
| @@ -202,7 +202,7 @@ COMPLEX means this function is special; see the source code of this | |||
| 202 | macro for exactly what it does. | 202 | macro for exactly what it does. |
| 203 | 203 | ||
| 204 | \(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" | 204 | \(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" |
| 205 | (declare (indent 2)) | 205 | (declare (indent 2) (doc-string 3)) |
| 206 | `(progn | 206 | `(progn |
| 207 | (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op)) | 207 | (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op)) |
| 208 | "" "ibuffer-do-") (symbol-name op))) | 208 | "" "ibuffer-do-") (symbol-name op))) |
| @@ -280,7 +280,7 @@ will be evaluated with BUF bound to the buffer object, and QUALIFIER | |||
| 280 | bound to the current value of the filter. | 280 | bound to the current value of the filter. |
| 281 | 281 | ||
| 282 | \(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" | 282 | \(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" |
| 283 | (declare (indent 2)) | 283 | (declare (indent 2) (doc-string 2)) |
| 284 | (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name))))) | 284 | (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name))))) |
| 285 | `(progn | 285 | `(progn |
| 286 | (defun ,fn-name (qualifier) | 286 | (defun ,fn-name (qualifier) |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 7ffaddb2c49..fe1b63f3048 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -1884,6 +1884,9 @@ Runs `compilation-mode-hook' with `run-mode-hooks' (which see). | |||
| 1884 | (setq buffer-read-only t) | 1884 | (setq buffer-read-only t) |
| 1885 | (run-mode-hooks 'compilation-mode-hook)) | 1885 | (run-mode-hooks 'compilation-mode-hook)) |
| 1886 | 1886 | ||
| 1887 | ;;;###autoload | ||
| 1888 | (put 'define-compilation-mode 'doc-string-elt 3) | ||
| 1889 | |||
| 1887 | (defmacro define-compilation-mode (mode name doc &rest body) | 1890 | (defmacro define-compilation-mode (mode name doc &rest body) |
| 1888 | "This is like `define-derived-mode' without the PARENT argument. | 1891 | "This is like `define-derived-mode' without the PARENT argument. |
| 1889 | The parent is always `compilation-mode' and the customizable `compilation-...' | 1892 | The parent is always `compilation-mode' and the customizable `compilation-...' |
diff --git a/lisp/skeleton.el b/lisp/skeleton.el index 328f795ecd2..34d69a74369 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el | |||
| @@ -121,7 +121,7 @@ are integer buffer positions in the reverse order of the insertion order.") | |||
| 121 | "Define a user-configurable COMMAND that enters a statement skeleton. | 121 | "Define a user-configurable COMMAND that enters a statement skeleton. |
| 122 | DOCUMENTATION is that of the command. | 122 | DOCUMENTATION is that of the command. |
| 123 | SKELETON is as defined under `skeleton-insert'." | 123 | SKELETON is as defined under `skeleton-insert'." |
| 124 | (declare (debug (&define name stringp skeleton-edebug-spec))) | 124 | (declare (doc-string 2) (debug (&define name stringp skeleton-edebug-spec))) |
| 125 | (if skeleton-debug | 125 | (if skeleton-debug |
| 126 | (set command skeleton)) | 126 | (set command skeleton)) |
| 127 | `(progn | 127 | `(progn |