Closed alphapapa closed 5 months ago
;;;###autoload (transient-define-prefix listen-menu () ...
Unfortunately that doesn't just work for arbitrary "defun" macros. Emacs has to be taught about each one individually, and that has to be done by editing Emacs. :frowning_face:
For these macros I did it a month ago in https://github.com/emacsmirror/emacs/commit/167d9b9040333a5bff64325423750243c60edfa1. In other words, until your package stops supporting Emacs versions that are currently released, you have to use this instead:
;;;###autoload (autoload 'listen-menu "listen" nil t) (transient-define-prefix listen-menu () ...
Unfortunately that isn't just more verbose, it also means that the autoload will lack the docstring.
Also see https://lists.gnu.org/archive/html/emacs-devel/2024-03/msg00015.html.
Thanks. I released that fix in v0.9 of Listen.
For my sake, this issue can be closed, but would it be worth mentioning in some "known issues" list?
I'll leave it open until I get around to documenting this.
Hi Jonas,
This seems to be the issue described in https://github.com/magit/transient/issues/254.
Please see this code in my
listen
package:https://github.com/alphapapa/listen.el/blob/5abe25ff1678ffa694f7b062ca748ac143af47a1/listen.el#L331-L344
I explicitly
(require 'transient)
, and I do:But when I start Emacs, I get this error:
Frustratingly, that error doesn't point to the source of the error. But I've narrowed it down to the autoloads for
listen
, as(featurep 'listen-autoloads)
returns nil, and the functions autoloaded inlisten-autoloads.el
after this line are not defined:If I manually
M-x load-library RET listen-autoloads RET
, then the rest of the file gets loaded and the functions are defined.I don't understand how I could be the first (or even second) to encounter this problem, and I don't know how to fix it. By preventing my package's autoloads from loading completely, it's breaking some important functionality in the package.
I'd appreciate any help. Thanks.