emacs: Handle compiled autoloads.
* emacs/guix-emacs.el (guix-emacs-autoloads-regexp): New variable.
(guix-emacs-find-autoloads-in-directory): Return a list of autoloads
without extensions.
emacs: Fix '--rounds' option in command popups.
* emacs/guix-command.el (guix-command-improve-common-build-argument):
Use "R" key for '--rounds' option to avoid conflicts with "r" key in
'build' popup (--root) and 'package' popup (--remove).
emacs: Add 'guix-build-log-find-file'.
* emacs/guix-build-log.el (guix-build-log-find-file): New procedure.
* emacs/guix-command.el (guix-run-view-build-log): Use it.
emacs: list: Fontify time stamps.
* emacs/guix-list.el (guix-list-time): New face.
(guix-list-get-time): Use it.
emacs: info: Add 'guix-info-heading' face.
* emacs/guix-info.el (guix-info-heading): New face.
(guix-package-info-heading): Inherit it.
emacs: info: Show a message after copying button label.
* emacs/guix-info.el (guix-info-button-copy-label): Use
'guix-copy-as-kill' to display a message with what was killed.
emacs: Complete --profile in 'guix package' popup.
* emacs/guix-command.el (guix-command-improve-package-argument): Use
'guix-read-file-name' to complete --profile option.
emacs: 'guix-emacs-load-autoloads' takes a profile.
* emacs/guix-emacs.el (guix-emacs-load-autoloads): Use 'profile'
as an optional argument.
(guix-emacs-load-autoloads-maybe): Adjust accordingly.
* emacs/guix-init.el: Likewise.
emacs: Fix 'guix-pull'.
* emacs/guix-base.el (guix-pull): Handle prefix argument when it is run
interactively. Use 'guix-command' instead of 'guix-pull' to prevent
REPL exit if 'leave' happens.
emacs: Fix 'guix-apply-manifest'.
* emacs/guix-base.el (guix-apply-manifest): Use 'guix-command' instead
of 'guix-package' to prevent REPL exit if 'leave' happens. Expand
profile and manifest file names, as relative file names lead to an
error.
emacs: 'display-search-paths' now takes a list of profiles.
Fixes a regression introduced in fc2d233.
* emacs/guix-main.scm (process-package-actions): Make second argument to
'display-search-paths' a list.
emacs: Adjust 'guix environment' popup.
* emacs/guix-command.el (guix-command-improve-environment-argument): Use
"E" for '--expose' and "S" for '--share' to distinguish them from
'--expression' and '--system' accordingly. Make '--ad-hoc' an option
taking packages instead of a simple switch.
(guix-command-rest-argument): Complete shell command instead of
packages for '--' argument.
(guix-command-additional-arguments): Add fake 'packages' argument.
New variable.
(guix-command-additional-arguments): Use it.
(guix-command-post-process-environment-packages,
guix-command-post-process-environment-ad-hoc): New functions.
(guix-command-post-processors): Add "environment" command with the new
argument processors.
emacs: Adjust 'guix container' popup.
* emacs/guix-command.el (guix-command-improve-action-argument): Use "C"
key for 'container' action to distinguish it from 'challenge'.
(guix-command-rest-argument): Add positional arguments.
emacs: Improve post processing of popup arguments.
* emacs/guix-command.el (guix-command-switches,
guix-command-rest-arg-regexp): New variables.
(guix-command-post-processors,
guix-command-post-process-matching-args,
guix-command-post-process-rest-single,
guix-command-post-process-rest-multiple,
guix-command-post-process-rest-multiple-leave,
guix-command-post-process-package-args): New functions.
(guix-command-post-process-rest-multiple): Take 2 arguments.
(guix-command-define-popup-action): Adjust accordingly.
* emacs/guix-utils.el (guix-modify): New function.
emacs: Enable 'guix-build-log-minor-mode' in shell buffers.
* emacs/guix-build-log.el (guix-build-log-minor-mode-activate): New variable.
(guix-build-log-minor-mode-activate-maybe): New function.
* emacs/guix-init.el: Add it to 'shell-mode-hook'.
* doc/emacs.texi (Emacs Build Log): Mention it.
emacs: Enable 'guix-build-log-mode' for build log files.
* emacs/guix-build-log.el (auto-mode-alist): Add 'guix-build-log-mode'
to 'auto-mode-alist'.
emacs: Add completions for '--type' option of 'refresh' popup.
* guix/scripts/refresh.scm: Export '%updaters'.
* emacs/guix-main.scm (refresh-updater-names): New procedure.
* emacs/guix-base.el (guix-refresh-updater-names): New function.
* emacs/guix-read.el (guix-read-refresh-updater-names,
guix-read-refresh-updater-names-string): New functions.
* emacs/guix-command.el (guix-command-improve-refresh-argument): Use
'guix-read-refresh-updater-names-string'.
emacs: Disable minor modes in 'guix-build-log-mode'.
* emacs/guix-build-log.el (guix-build-log-mode-hook): Remove
'compilation-shell-minor-mode' as it is slow on big buffers, and
'view-mode' as it rebinds too many keys.
(guix-build-log-mode-map): Add "c" and "v" key bindings for the
removed minor modes.
emacs: Add key bindings for 'guix-build-log-minor-mode'.
* emacs/guix-build-log.el (guix-build-log-mode-map): Move keys to ...
(guix-build-log-common-map): ...here. New variable.
(guix-build-log-minor-mode-map): New variable.
(guix-build-log-minor-mode): Use it.
* doc/emacs.texi (Emacs Build Log): Document it.