aboutsummaryrefslogtreecommitdiff
path: root/emacs
AgeCommit message (Collapse)Author
2015-10-20emacs: devel: Add indentation rules for 'modify-phases' keywords.Alex Kost
* 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.
2015-10-20emacs: config: Use "emacs-config-" prefix for constants.Alex Kost
* 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'.
2015-10-20build: Set DOT_USER_PROGRAM for Emacs interface.Alex Kost
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.
2015-10-17emacs: devel: Highlight Guix keywords.Alex Kost
* emacs/guix-devel.el (guix-devel-keywords): New constant. (guix-devel-font-lock-keywords): Use it.
2015-10-17emacs: Improve file names of generated graphs.Alex Kost
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.
2015-10-16emacs: Add "View graph" actions to system graph commands.Alex Kost
* emacs/guix-command.el (guix-command-additional-execute-arguments, guix-command-special-executors): Add "View graph" actions for 'dmd-graph' and 'extension-graph' commands.
2015-10-16emacs: Disambiguate "d" key in 'system' popup.Alex Kost
* emacs/guix-command.el (guix-command-improve-system-argument): Use "D" key for 'disk-image' action (leave "d" for 'dmd-graph').
2015-10-16emacs: init: Add "share/emacs/site-lisp" to 'load-path'.Alex Kost
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.
2015-10-14emacs: devel: Add indentation rules.Alex Kost
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.
2015-10-12emacs: Add 'guix-devel-build-package-source'.Alex Kost
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.
2015-10-09emacs: Add 'guix-devel-lint-package'Alex Kost
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.
2015-10-09emacs: Add 'guix-devel-with-definition'.Alex Kost
* 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.
2015-10-09emacs: Fix 'guix-devel-setup-repl'.Alex Kost
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.
2015-10-09emacs: Fix 'guix-build-log-phase-toggle-all'.Alex Kost
* 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.
2015-10-09emacs: devel: Fix 'modify-phases' highlighting.Alex Kost
* emacs/guix-devel.el (guix-devel-modify-phases-font-lock-pre): Handle the case when 'modify-phases' is commented.
2015-10-09emacs: devel: Highlight gexp symbols.Alex Kost
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.
2015-09-26emacs: devel: Highlight 'modify-phases' keywords.Alex Kost
* 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.
2015-09-25emacs: build-log: Improve regexp for the phase end.Alex Kost
* emacs/guix-build-log.el (guix-build-log-phase-end-regexp): Handle fractional number of seconds (like "0.8").
2015-09-23emacs: Add 'guix-devel-build-package-definition'.Alex Kost
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.
2015-09-23emacs: Add development utils.Alex Kost
* 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'.
2015-09-23emacs: Add "View map" action to 'size' popup.Alex Kost
* 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.
2015-09-22emacs: Add code to call guile procedures.Alex Kost
* 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.
2015-09-22emacs: Move code for evaluating to "guix-geiser.el".Alex Kost
* 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".
2015-09-22emacs: Move guile related code to "guix-guile.el".Alex Kost
* 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.
2015-09-22emacs: Improve 'guix-prettify-regexp'.Alex Kost
* emacs/guix-prettify.el (guix-prettify-regexp): Modify to handle "nar" and "log".
2015-09-18emacs: Replace 'guix-any' with 'cl-some'.Alex Kost
* emacs/guix-utils.el (guix-any): Remove. * emacs/guix-command.el (guix-command-improve-argument): Use 'cl-some' instead of 'guix-any'.
2015-09-18emacs: Add commands to show/hide build log phases.Alex Kost
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.
2015-09-15emacs: Add "View build log" action to build popup.Alex Kost
* 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.
2015-09-15emacs: Add modes for viewing build logs.Alex Kost
* 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.
2015-09-15emacs: Display guix command errors in the minibuffer.Alex Kost
* 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.
2015-09-15emacs: Add customization groups for faces.Alex Kost
* emacs/guix.el (guix-faces): New custom group. * emacs/guix-base.el (guix-operation-option-key): Use it. (guix-define-buffer-type): Generate faces group. * emacs/guix-info.el: Adjust faces to use new groups. (guix-info-faces): New custom group. * emacs/guix-list.el: Likewise (guix-list-faces): New custom group.
2015-09-08ui: Add package-description-string.Mathieu Lirzin
Provide support for Texinfo's markup in package description. * guix/ui.scm (%text-width): New parameter. (texi->plain-text): New variable. (package->recutils): Use them. (package-description-string): New variable. * emacs/guix-main.scm (%package-param-alist): Use it. * gnu/packages/perl.scm (perl-devel-globaldestruction) (perl-devel-lexalias, perl-exporter-lite): Adapt to Texinfo's markup. * gnu/packages/python.scm (python2-empy): Likewise.
2015-09-04emacs: Add support for "triplet" package inputs.Alex Kost
Fixes <http://bugs.gnu.org/21399>. * emacs/guix-main.scm (full-name->name+version): Adjust to handle "name-version:output" string. (package-inputs-names): Support ("name" package "output") inputs.
2015-09-02emacs: Use "r" key for 'cran' action in 'import' popup.Alex Kost
* emacs/guix-command.el (guix-command-improve-import-argument): New variable and function. (guix-command-argument-improvers): Add it.
2015-09-01emacs: Add "View graph" action to graph popup.Alex Kost
* emacs/guix-command.el: Require 'guix-external'. (guix-run-view-graph): New function. (guix-command-additional-execute-arguments, guix-command-special-executors): Add entries for "View graph" action.
2015-09-01emacs: Allow users to choose a 'find-file' function.Alex Kost
* emacs/guix-utils.el (guix-find-file-function): New variable. (guix-find-file): Use it.
2015-09-01emacs: Add code to run 'dot' program.Alex Kost
* emacs/guix-external.el: New file. * emacs.am (ELFILES): Add it.
2015-09-01emacs: Add code to pipe guix output to external program.Alex Kost
* emacs/guix-main.scm: Use (ice-9 popen) module. (pipe-guix-output): New procedure.
2015-08-30emacs: Use only one guix-load-path variable.Mathieu Lirzin
emacs/guix-init.el (guix-load-path): Move to ... emacs/guix-backend.el (guix-load-path): ... Here. Redefine it.
2015-08-30emacs: Fix guix-guile-program default value.Mathieu Lirzin
Fixes <http://bugs.gnu.org/21127>. * emacs/guix-backend.el: Use guix-config. (guix-guile-program): Move to ... * emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile program file name from compile-time instead of depending on PATH.
2015-08-30build: Produce 'guix-config' instead of using compile-time tricks.Mathieu Lirzin
* emacs/guix-{init,profiles}.el.in: Rename to ... * emacs/guix-{init,profiles}.el: ... these. New files. Use 'guix-config'. * emacs/guix-config.el.in: New file. * emacs.am (nodist_lisp_DATA): Add it. Move them to ... (ELFILES): ... here. * .gitignore, configure.ac: Adjust accordingly.
2015-08-30emacs: Use prompt for packages instead popup for edit action.Alex Kost
* emacs/guix-base.el (guix-package-location): New function. (guix-edit-package): Rename and move to ... * emacs/guix.el (guix-edit): ...here. Make it interactive. * emacs/guix-command.el (guix-edit-action): New function (alias to 'guix-edit') to override the popup for edit command in "M-x guix". * emacs/guix-list.el (guix-list-edit-package): Adjust for 'guix-edit' renaming. * emacs/guix-main.scm (package-location-string): Allow to accept package id or package name as argument.
2015-08-30emacs: Add popup interface for guix commands.Alex Kost
* emacs/guix-command.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Initial Setup): Mention 'magit-popup' library. (Emacs Popup Interface): New node. (Emacs Interface): Add it. * doc/guix.texi (Top): Likewise.
2015-08-30emacs: Add "guix-popup.el".Alex Kost
* emacs/guix-popup.el: New file. * emacs.am (ELFILES): Add it.
2015-08-30emacs: Add code to run guix command in shell.Alex Kost
* emacs/guix-base.el (guix-run-in-shell, guix-run-in-eshell, guix-run-command-in-shell): New functions. (guix-run-in-shell-function, guix-shell-buffer-name): New variables.
2015-08-30emacs: Add code to run guix command in REPL.Alex Kost
* emacs/guix-base.el (guix-run-command-in-repl, guix-command-output, guix-help-string): New functions. * emacs/guix-main.scm (guix-command, guix-command-output, help-string): New procedures.
2015-08-30emacs: Add and use alist accessors.Alex Kost
* emacs/guix-utils.el (guix-define-alist-accessor): New macro. (guix-assq-value, guix-assoc-value): New functions. (guix-get-key-val): Remove. * emacs/guix-base.el: Replace 'guix-get-key-val' with 'guix-assq-value' everywhere. * emacs/guix-info.el: Likewise. * emacs/guix-list.el: Likewise. * emacs/guix-messages.el: Likewise.
2015-08-30emacs: Add minibuffer readers.Alex Kost
* emacs/guix-read.el: New file. * emacs.am (ELFILES): Add it.
2015-08-30emacs: Add help variables.Alex Kost
* emacs/guix-pcomplete.el (guix-pcomplete-parse-package-regexp, guix-pcomplete-parse-command-regexp, guix-pcomplete-parse-long-option-regexp, guix-pcomplete-parse-short-option-regexp, guix-pcomplete-parse-list-regexp, guix-pcomplete-parse-regexp-group, guix-pcomplete-systems, guix-pcomplete-hash-formats, guix-pcomplete-refresh-subsets, guix-pcomplete-key-policies): Move and rename to ... * emacs/guix-help-vars.el (guix-help-parse-package-regexp, guix-help-parse-command-regexp, guix-help-parse-long-option-regexp, guix-help-parse-short-option-regexp, guix-help-parse-list-regexp, guix-help-parse-regexp-group, guix-help-system-types, guix-help-hash-formats, guix-help-refresh-subsets, guix-help-key-policies): ...here. New file. (guix-help-parse-option-regexp, guix-help-source-types, guix-help-verify-options, guix-help-elpa-archives): New variables. * emacs.am (ELFILES): Add "guix-help-vars.el".
2015-08-30emacs: Add 'guix-package-names'.Alex Kost
* emacs/guix-main.scm (package-names, package-names-lists): New procedures. * emacs/guix-base.el (guix-package-names): New function.