Am Montag, dem 28.08.2023 um 11:20 -0400 schrieb Maxim Cournoyer: > > e.g. > > (defun guix-emacs-autoload-packages (&optional reload) > > "..." > > (interactive "P") > > (when reload (mapc #'load-file (guix-emacs--subdirs-files))) > > ...) > > > > WDYT? > > The reason for avoiding loading the subdirs.el files on the first > call is just an optimization, since it would at this time duplicate > work already done by Emacs itself when it first executes. This > shouldn't fail; I've now employed the same 'noerror strategy as used > for autoloads to ensure that. > > There's one edge case I've just thought though, which is if a user > invoked emacs with the documented '--no-site-file' option disabling > loading autoloads; this would cause guix-emacs-autoload-packages- > called to be nil. > > To balance between making things both convenient and flexible, I've > preserved the tracking but also added the reload override you > suggested. Let me know what you think. Assuming convenience equates to not needing to type C-u, we can also achieve that without tracking:
(defun guix-emacs-autoload-packages (&optional noexpand) "Autoload Emacs packages found in EMACSLOADPATH. 'Autoload' means to load the 'autoloads' files matching `guix-emacs-autoloads-regexp'. Before doing so, expand load-path by loading subdirs.el files found in it, unless NOEXPAND is given." (interactive "P") (unless noexpand (mapc #'load-file (guix-emacs--subdirs-files))) ...) In our own init code, we should simply call it as (guix-emacs-autoload-packages 'noexpand) then, since this expansion is already done earlier by Emacs. Cheers