[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65575: [PATCH 3/3] gnu: emacs: Reload subdirs.el files in 'guix-emac
From: |
Liliana Marie Prikler |
Subject: |
bug#65575: [PATCH 3/3] gnu: emacs: Reload subdirs.el files in 'guix-emacs-autoload-packages'. |
Date: |
Tue, 29 Aug 2023 22:07:46 +0200 |
User-agent: |
Evolution 3.46.4 |
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
bug#65575: [PATCH v2 1/4] gnu: emacs: Use lexical binding for guix-emacs.el startup library., Maxim Cournoyer, 2023/08/28