aboutsummaryrefslogtreecommitdiffstats
path: root/admin/notes/java
diff options
context:
space:
mode:
authorJD Smith2025-07-24 15:42:10 -0400
committerJD Smith2025-08-10 18:14:23 -0400
commit7486e5c3680b41cb58cb6eb1fa5aa3620d4a50bd (patch)
tree0114e34867c550d9a0f17fceb7f45734d943ad96 /admin/notes/java
parent3d7f51d872194ebf17fe4eb5cd0bb9411e196726 (diff)
downloademacs-7486e5c3680b41cb58cb6eb1fa5aa3620d4a50bd.tar.gz
emacs-7486e5c3680b41cb58cb6eb1fa5aa3620d4a50bd.zip
Implement new autoload macro expansion declare form
Currently, a hard-coded set of macros is automatically expanded during generation of autoloads. To allow user macros to request such expansion, this implements a new declare form `autoload-macro' (Bug#78995), with supported value `expand'. For example, macros which wrap `define-minor-mode', can declare `(autoload-macro expand)' to request that ;;;###autoload-adorned calls to the macro are expanded during generation, such that an autoload for the resulting function is created. * lisp/emacs-lisp/byte-run.el (byte-run--set-autoload-macro): Handle autoload-macro declare forms. (macro-declarations-alist) Add handler for 'autoload-macro declare forms. (defmacro, defun): * lisp/emacs-lisp/cl-generic.el (cl-defgeneric, cl-defun) (cl-iter-defun, cl-defmacro, cl-defstruct): * lisp/emacs-lisp/easy-mmode.el (define-minor-mode, define-globalized-minor-mode, iter-defun): * lisp/emacs-lisp/inline.el (define-inline): * lisp/emacs-lisp/pcase.el (pcase-defmacro): Declare (autoload-macro expand) to request expansion of the macro during autoload generation. * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): Handle the `autoload-macro=expand' property for macros. Load the ;;;###autoload-containing file if an unknown symbol is encountered in the car of the following form, to give packages a chance to define their macros and request expansion. Factor list of special function-defining macros out as a constant variable: `loaddefs--defining-macros'. * doc/lispref/functions.texi (Declare Form): * doc/lispref/loading.texi (Autoload): Document `autoload-macro'.
Diffstat (limited to 'admin/notes/java')
0 files changed, 0 insertions, 0 deletions