Commit graph

9 commits

Author SHA1 Message Date
Liliana Marie Prikler
15404ff19b
gnu: emacs: Load package descriptors from packages referenced by subdirs.el
* gnu/packages/aux-files/emacs/guix-emacs.el
(guix-emacs--non-core-load-path): New procedure.
(guix-emacs-autoload-packages): Use it here.
(guix-emacs-load-package-descriptors): New procedure.
* gnu/packages/emacs.scm (emacs)[install-site-start]: Install advice to run
‘guix-emacs-load-package-descriptors’.
2021-12-03 21:39:50 +01:00
Maxim Cournoyer
155f9afde5
gnu: emacs: Remove obsolete FIXME comment.
* gnu/packages/aux-files/emacs/guix-emacs.el: Remove comment.
2020-03-22 21:17:38 -04:00
Maxim Cournoyer
9659459f06
emacs-build-system: Byte compile the autoload files.
* guix/build/emacs-build-system.scm (enable-autoloads-compilation)
(validate-compiled-autoloads): Add procedures.
(%standard-phases): Register the new procedures.
* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-find-autoloads):
Remove duplicates in the list of autoload files found.
* guix/build/emacs-utils.scm (expr->string): Add procedure.
(emacs-batch-eval, emacs-batch-edit-file): Use it.
2020-02-27 16:59:07 -05:00
Maxim Cournoyer
903765f0d9
gnu: emacs: Use load-path instead of EMACSLOADPATH.
This enables the use of the subdirs.el feature of Emacs, where specifying a
directory in EMACSLOADPATH translates into a `load-path' variable containing
the directory and all its sub-directories.

* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-autoload-packages):
Use `load-path' directly instead of parsing EMACSLOADPATH.

Reported-by: Leo Prikler <leo.prikler@student.tugraz.at>
Signed-off-by: Clément Lassieur <clement@lassieur.org>
2019-12-04 11:06:49 +01:00
Maxim Cournoyer
c320acd633
gnu: emacs: Fix guix-emacs.el indentation.
* gnu/packages/aux-files/emacs/guix-emacs.el: Fix indentation.

Signed-off-by: Clément Lassieur <clement@lassieur.org>
2019-12-04 11:06:49 +01:00
Maxim Cournoyer
47b3b4c2aa
gnu: emacs: Adapt the autoloads auxiliary code to use EMACSLOADPATH.
The Elisp directories to scan for autoloads are now taken from EMACSLOADPATH
instead of from the user profile, environment profile or system profile.
Manually adding the Elisp directories to the `load-path' is no longer
necessary, as this is covered by Emacs when they are in EMACSLOADPATH.  The
caching logic is also removed, as this code is not typically run often and the
gain is marginal (loading autoloads files is cheap).

* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-directory)
(guix-emacs-subdirs, guix-emacs-directories): Remove procedures.
(guix-emacs-find-autoloads): Filter the directory entries by passing the
regexp to `directory-files' directly, which is ten times faster.  Remove
deduplication.
(guix-emacs-autoloads-regexp): Remove the group, which used to filter out the
file extension; it no longer works this way due to passing the regexp to the
`directory-files' procedure directly, which doesn't care about groups.
(guix-emacs-autoload-packages): Update doc.  Search package directories from
EMACSLOADPATH.  Do not populate the load-path.  Remove cache.
2019-11-18 14:34:41 +09:00
Kyle Meyer
24b115dff5
gnu: emacs: Check GUIX_ENVIRONMENT when autoloading packages.
Check the environment profile so that we autoload packages that are given as
arguments to "guix environment" but are not in the system or user profile.
Note that the union of Emacs packages in the system, user, and environment
profiles will be autoloaded even when --pure was passed to "guix environment",
because it's not clear how to detect that --pure was given.

* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-autoload-packages):
Add Emacs packages from GUIX_ENVIRONMENT profile.

Signed-off-by: Alex Kost <alezost@gmail.com>
2017-07-29 23:19:17 +03:00
Alex Kost
9bd94544be
gnu: emacs: Simplify "guix-emacs.el".
* gnu/packages/aux-files/emacs/guix-emacs.el: Do not try to require
'guix-profiles'.  Do not call 'guix-emacs-autoload-packages' in the top
level.
(guix-package-enable-at-startup): Remove.  This variable can't be set by
a user since this file is loaded before user config.
(guix-emacs-autoload-packages): Use 'guix-read-package-profile' instead
of 'guix-profile-prompt' in interactive clause (it was renamed in
Emacs-Guix).
* gnu/packages/emacs.scm (emacs)[arguments]: Call
'guix-emacs-autoload-packages' in "site-start.el" after requiring
'guix-emacs'.
2017-02-27 16:44:58 +03:00
Alex Kost
59d04f63df
gnu: emacs: Move "guix-emacs.el" to "aux-files".
* emacs/guix-emacs.el: Rename to...
* gnu/packages/aux-files/emacs/guix-emacs.el: ... this.
* Makefile.am (AUX_FILES): Add it.
* gnu/packages/emacs.scm (emacs)[inputs]: Remove 'guix' source.
[native-inputs]: Add "guix-emacs.el" auxiliary file.
[arguments]: Adjust 'install-site-start' phase accordingly.
2017-02-27 16:44:58 +03:00