aboutsummaryrefslogtreecommitdiff
path: root/emacs
Commit message (Collapse)AuthorAge
* emacs: info: Show a message after copying button label.Alex Kost2015-12-06
| | | | | * 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.Alex Kost2015-12-06
| | | | | * 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.Alex Kost2015-12-06
| | | | | | | * 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'.Alex Kost2015-12-06
| | | | | | * 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'.Alex Kost2015-12-06
| | | | | | | * 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: Expand 'guix-load-path'.Alex Kost2015-11-23
| | | | | | | | Reported by Mathieu Lirzin <mthl@gnu.org> at <http://lists.gnu.org/archive/html/guix-devel/2015-11/msg00585.html>. * emacs/guix-backend.el (guix-start-repl): Expand 'guix-load-path' to avoid a potentially relative directory name in Guile %load-path.
* emacs: 'display-search-paths' now takes a list of profiles.Ludovic Courtès2015-11-16
| | | | | | | 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.Alex Kost2015-11-12
| | | | | | | | | | | | | | | | * 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.Alex Kost2015-11-12
| | | | | | * 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.Alex Kost2015-11-12
| | | | | | | | | | | | | | * 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.Alex Kost2015-11-02
| | | | | | | * 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.Alex Kost2015-11-02
| | | | | * 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.Alex Kost2015-11-02
| | | | | | | | | | * 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'.Alex Kost2015-10-31
| | | | | | | | * 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'.Alex Kost2015-10-31
| | | | | | | | * 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.
* emacs: Add shell completions for 'guix refresh --type'.Alex Kost2015-10-31
| | | | | | * emacs/guix-pcomplete.el (guix-pcomplete-refresh-updaters): New function. (guix-pcomplete-complete-option-arg): Complete '-t/--type' option for 'guix refresh' command.
* services: Add 'modify-services'.Ludovic Courtès2015-10-28
| | | | | | | | | | | * gnu/services.scm (%modify-service, modify-services): New macros. * gnu/services/base.scm (mingetty-service-type, guix-service-type): Export. * emacs/guix-devel.el (guix-devel-keywords): Add 'modify-services'. Ditto in 'guix-devel-scheme-indent' call. * doc/guix.texi (Using the Configuration System): Give an example of 'modify-services'. (Service Reference): Document it.
* emacs: Use 'switch-to-generation*'.Alex Kost2015-10-27
| | | | | | | This is a followup to commit 06d45f4566469364b4c1fe6d3c71ecf58f5d4838. * emacs/guix-base.el (guix-switch-to-generation): Replace 'switch-to-generation' with 'switch-to-generation*'.
* emacs: Add "Packages" option for 'guix challenge' popup.Alex Kost2015-10-27
| | | | * emacs/guix-command.el (guix-command-rest-argument): Add "challenge".
* emacs: Add shell completions for 'guix challenge'.Alex Kost2015-10-27
| | | | | * emacs/guix-pcomplete.el (guix-pcomplete-complete-command-arg): Add "challenge" to complete package names for it.
* emacs: devel: Add indentation rules for 'modify-phases' keywords.Alex Kost2015-10-20
| | | | | | | * emacs/guix-devel.el: Add indentation rules for 'modify-phases' keywords. (guix-devel-indent-modify-phases-keyword, guix-devel-indent-modify-phases-keyword-1, guix-devel-indent-modify-phases-keyword-2): New functions.
* emacs: config: Use "emacs-config-" prefix for constants.Alex Kost2015-10-20
| | | | | | | | | | | | | | | * emacs/guix-config.el.in (guix-emacs-interface-directory, guix-state-directory): Rename to ... (guix-config-emacs-interface-directory, guix-config-state-directory): ...this. (guix-config-guile-program): New constant. (guix-guile-program): Move to ... * emacs/guix-external.el (guix-guile-program): ...here. Make it a 'defcustom'. * emacs/guix-profiles.el (guix-default-profile): Use 'guix-config-state-directory'. * emacs/guix-backend.el (guix-load-path): Use 'guix-config-emacs-interface-directory'.
* build: Set DOT_USER_PROGRAM for Emacs interface.Alex Kost2015-10-20
| | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * configure.ac: Set DOT_USER_PROGRAM variable. * emacs/guix-config.el.in (guix-config-dot-program): New constant. * emacs/guix-external.el (guix-dot-program): Use it.
* emacs: devel: Highlight Guix keywords.Alex Kost2015-10-17
| | | | | * emacs/guix-devel.el (guix-devel-keywords): New constant. (guix-devel-font-lock-keywords): Use it.
* emacs: Improve file names of generated graphs.Alex Kost2015-10-17
| | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-external.el (guix-png-file-name): Change prefix of a file name to "guix-emacs-graph-" to avoid possible conflicts.
* emacs: Add "View graph" actions to system graph commands.Alex Kost2015-10-16
| | | | | | * emacs/guix-command.el (guix-command-additional-execute-arguments, guix-command-special-executors): Add "View graph" actions for 'dmd-graph' and 'extension-graph' commands.
* emacs: Disambiguate "d" key in 'system' popup.Alex Kost2015-10-16
| | | | | * emacs/guix-command.el (guix-command-improve-system-argument): Use "D" key for 'disk-image' action (leave "d" for 'dmd-graph').
* emacs: init: Add "share/emacs/site-lisp" to 'load-path'.Alex Kost2015-10-16
| | | | | | | | | | | | | Fixes a regression introduced in 7741139080a6b00aa4f1846fe7668859e91bec58. Reported by Ludovic Courtès <ludo@gnu.org>. Not all emacs packages have "...-autoloads.el" files, so there is a chance that "~/.guix-profile/share/emacs/site-lisp" will not be added to 'load-path', so add it unconditionally. * emacs/guix-init.el: Add guix emacs directory to 'load-path'. Move requiring 'guix-emacs' to the top-level.
* emacs: devel: Add indentation rules.Alex Kost2015-10-14
| | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-devel.el: Add indentation rules for Guix macros/procedures. (guix-devel-scheme-indent): New macro. (guix-devel-indent-package): New function.
* emacs: Add 'guix-devel-build-package-source'.Alex Kost2015-10-12
| | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * guix/scripts.scm (build-package-source): New procedure. * emacs/guix-devel.el (guix-devel-build-package-source): New command. (guix-devel-keys-map): Add key binding for it. * doc/emacs.texi (Emacs Development): Document it.
* emacs: Add 'guix-devel-lint-package'Alex Kost2015-10-09
| | | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-devel.el (guix-devel-setup-repl): Add a workaround for 'guix-warning-port'. (guix-devel-lint-package): New command. (guix-devel-keys-map): Add key binding for it. * doc/emacs.texi (Emacs Development): Document it.
* emacs: Add 'guix-devel-with-definition'.Alex Kost2015-10-09
| | | | | | * emacs/guix-devel.el (guix-devel-with-definition): New macro. (guix-devel-build-package-definition): Use it. (guix-devel-emacs-font-lock-keywords): New variable.
* emacs: Fix 'guix-devel-setup-repl'.Alex Kost2015-10-09
| | | | | | | | | | | Setting up guix ports needs to be done in Geiser REPL synchronously, otherwise this operation may not be finished before the further evaluating of guile code. * emacs/guix-guile.el (guix-guile-prompt?): New function. * emacs/guix-geiser.el (guix-geiser-eval-in-repl-synchronously): New function. * emacs/guix-devel.el (guix-devel-setup-repl): Use it.
* emacs: Fix 'guix-build-log-phase-toggle-all'.Alex Kost2015-10-09
| | | | | | | | * emacs/guix-build-log.el (guix-build-log-phase-toggle-all): Handle the case when there are no characters before the first phase: 'guix-build-log-next-phase' moves to the second phase in such a case, and the toggling is not done properly, so use 're-search-forward' instead.
* emacs: devel: Fix 'modify-phases' highlighting.Alex Kost2015-10-09
| | | | | * emacs/guix-devel.el (guix-devel-modify-phases-font-lock-pre): Handle the case when 'modify-phases' is commented.
* emacs: devel: Highlight gexp symbols.Alex Kost2015-10-09
| | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-devel.el (guix-devel-gexp-symbol): New face. (guix-devel-font-lock-keywords): Adjust to handle gexp symbols.
* emacs: devel: Highlight 'modify-phases' keywords.Alex Kost2015-09-26
| | | | | | | | | | | * emacs/guix-guile.el (guix-guile-keyword-regexp): New function. * emacs/guix-devel.el (guix-devel-faces): New custom group. (guix-devel-modify-phases-keyword): New face. (guix-devel-modify-phases-keyword-regexp, guix-devel-font-lock-keywords): New variables. (guix-devel-modify-phases-font-lock-matcher, guix-devel-modify-phases-font-lock-pre): New functions. (guix-devel-mode): Adjust to add/remove font-lock-keywords.
* emacs: build-log: Improve regexp for the phase end.Alex Kost2015-09-25
| | | | | * emacs/guix-build-log.el (guix-build-log-phase-end-regexp): Handle fractional number of seconds (like "0.8").
* emacs: Add 'guix-devel-build-package-definition'.Alex Kost2015-09-23
| | | | | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-guile.el (guix-guile-definition-regexp): New variable. (guix-guile-current-definition, guix-guile-boolean): New functions. * emacs/guix-devel.el: Require 'guix-base'. (guix-devel-repl-processes): New variable. (guix-devel-setup-repl, guix-devel-setup-repl-maybe): New functions. (guix-devel-build-package-definition): New command. * doc/emacs.texi (Emacs Development): Document it.
* emacs: Add development utils.Alex Kost2015-09-23
| | | | | | | | | | | | * emacs/guix-guile.el (guix-guile-current-module): New function. * emacs/guix-devel.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Development): New node. (Emacs Interface): Add it. * doc/contributing.texi (The Perfect Setup): Mention it. * doc/guix.texi (Top): Add it. * emacs/guix-init.el: Add 'guix-devel-activate-mode-maybe' to 'scheme-mode-hook'.
* emacs: Add "View map" action to 'size' popup.Alex Kost2015-09-23
| | | | | | * emacs/guix-command.el (guix-run-view-size-map): New function. (guix-command-additional-execute-arguments, guix-command-special-executors): Add entries for "View map" action.
* emacs: Add code to call guile procedures.Alex Kost2015-09-22
| | | | | | * emacs/guix-guile.el (guix-guile-make-call-expression): New function. * emacs/guix-geiser.el: Require 'guix-guile'. (guix-geiser-call, guix-geiser-call-in-repl): New functions.
* emacs: Move code for evaluating to "guix-geiser.el".Alex Kost2015-09-22
| | | | | | | | | | * emacs/guix-backend.el: Adjust commentary. Move "eval" code to ... (guix-eval, guix-eval-read, guix-eval-in-repl): Adjust to use new functions. * emacs/guix-geiser.el: ...here. New file. (guix-geiser-eval, guix-geiser-eval-read, guix-geiser-eval-in-repl, guix-repl-send): New functions. * emacs.am (ELFILES): Add "guix-geiser.el".
* emacs: Move guile related code to "guix-guile.el".Alex Kost2015-09-22
| | | | | | | | * emacs/guix-backend.el (guix-make-guile-expression): Move to... * emacs/guix-guile.el: ... here. New file. * emacs/guix-base.el: Use it. * emacs/guix-command.el: Use it. * emacs.am (ELFILES): Add it.
* emacs: Improve 'guix-prettify-regexp'.Alex Kost2015-09-22
| | | | | * emacs/guix-prettify.el (guix-prettify-regexp): Modify to handle "nar" and "log".
* emacs: Replace 'guix-any' with 'cl-some'.Alex Kost2015-09-18
| | | | | | * emacs/guix-utils.el (guix-any): Remove. * emacs/guix-command.el (guix-command-improve-argument): Use 'cl-some' instead of 'guix-any'.
* emacs: Add commands to show/hide build log phases.Alex Kost2015-09-18
| | | | | | | | | | | | | Suggested by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-build-log.el (guix-build-log-phase-end-regexp): New variable. (guix-build-log-phase-start, guix-build-log-phase-end, guix-build-log-phase-hide, guix-build-log-phase-show, guix-build-log-phase-hidden-p, guix-build-log-phase-toggle-function, guix-build-log-phase-toggle, guix-build-log-phase-toggle-all): New functions. (guix-build-log-mode-map): Add 'TAB'/'S-TAB' key bindings. * doc/emacs.texi (Emacs Build Log): Document them.
* emacs: Add "View build log" action to build popup.Alex Kost2015-09-15
| | | | | | | | * emacs/guix-command.el (guix-run-view-build-log): New function. (guix-command-additional-execute-arguments, guix-command-special-executors): Add entries for "View build log" action. * emacs/guix-utils.el (guix-find-file-or-url): New function.
* emacs: Add modes for viewing build logs.Alex Kost2015-09-15
| | | | | | | | * emacs/guix-build-log.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Build Log): Document it. New node. (Emacs Interface): Add it. * doc/guix.texi (Top): Likewise.
* emacs: Display guix command errors in the minibuffer.Alex Kost2015-09-15
| | | | | | | * emacs/guix-main.scm (output+error): New procedure. (guix-command-output): Use it. * emacs/guix-base.el (guix-command-output): Display error output in the minibuffer.