]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow trivially autoloading uses of transient's define macros
authorJonas Bernoulli <jonas@bernoul.li>
Tue, 20 Feb 2024 17:49:20 +0000 (18:49 +0100)
committerEshel Yaron <me@eshelyaron.com>
Wed, 28 Feb 2024 17:37:16 +0000 (18:37 +0100)
Since 49e41991b2f transient-define-prefix itself was autoloaded, but
that meant that when ever an autoload file was loaded, which contained
an autoload for a command defined using that macro, transient itself
had to be loaded.

That shouldn't be necessary.  For commands using these macros, an
autoload that is identical to what would have been generated if it
had been defined using defun, works just fine.

* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--make-autoload): Allow uses of
transient-define-prefix, transient-define-suffix,
transient-define-infix and transient-define-argument
to be autoloaded using just ";;;autoload".

* lisp/transient.el (transient-define-prefix): No longer autoload.

(cherry picked from commit 167d9b9040333a5bff64325423750243c60edfa1)

lisp/emacs-lisp/loaddefs-gen.el
lisp/transient.el

index 238ec9d179bc654c4b8fe762f7b88f0bc230cb4e..581053f6304f7db9d54fef6052fe58655febd656 100644 (file)
@@ -201,8 +201,7 @@ expression, in which case we want to handle forms differently."
                        define-globalized-minor-mode defun defmacro
                       easy-mmode-define-minor-mode define-minor-mode
                        define-inline cl-defun cl-defmacro cl-defgeneric
-                       cl-defstruct pcase-defmacro iter-defun cl-iter-defun
-                       transient-define-prefix))
+                       cl-defstruct pcase-defmacro iter-defun cl-iter-defun))
            (macrop car)
           (setq expand (let ((load-true-file-name file)
                               (load-file-name file))
@@ -218,13 +217,17 @@ expression, in which case we want to handle forms differently."
                   define-globalized-minor-mode
                   easy-mmode-define-minor-mode define-minor-mode
                   cl-defun defun* cl-defmacro defmacro*
-                   define-overloadable-function))
+                   define-overloadable-function
+                   transient-define-prefix transient-define-suffix
+                   transient-define-infix transient-define-argument))
       (let* ((macrop (memq car '(defmacro cl-defmacro defmacro*)))
             (name (nth 1 form))
             (args (pcase car
                      ((or 'defun 'defmacro
                           'defun* 'defmacro* 'cl-defun 'cl-defmacro
-                          'define-overloadable-function)
+                          'define-overloadable-function
+                          'transient-define-prefix 'transient-define-suffix
+                          'transient-define-infix 'transient-define-argument)
                       (nth 2 form))
                      ('define-skeleton '(&optional str arg))
                      ((or 'define-generic-mode 'define-derived-mode
@@ -246,7 +249,11 @@ expression, in which case we want to handle forms differently."
                                    define-global-minor-mode
                                    define-globalized-minor-mode
                                    easy-mmode-define-minor-mode
-                                   define-minor-mode))
+                                   define-minor-mode
+                                   transient-define-prefix
+                                   transient-define-suffix
+                                   transient-define-infix
+                                   transient-define-argument))
                       t)
                  (and (eq (car-safe (car body)) 'interactive)
                       ;; List of modes or just t.
index f9060f5ba855933a5ce3d899999f734ff702e0a2..bb35746e186b3b01d5e17f872da8bb5e378e2bf4 100644 (file)
@@ -855,7 +855,6 @@ elements themselves.")
 
 ;;; Define
 
-;;;###autoload
 (defmacro transient-define-prefix (name arglist &rest args)
   "Define NAME as a transient prefix command.