summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* Update version to 0.3v0.3Alex Kost2017-02-272-2/+2
* Update NEWSAlex Kost2017-02-271-0/+40
* build: Rename default silent rules•••* elisp/local.mk: Use "ELC" name to compile .el files. * scheme/Makefile.am: Use "GUILEC" name to compile .scm files. Alex Kost2017-02-272-3/+12
* elisp/utils: Do not truncate lines during pretty-printing•••* elisp/guix-utils.el (guix-pretty-print-buffer): Do not call 'toggle-truncate-lines' as truncated lines may be really distracting. Alex Kost2017-02-271-2/+1
* elisp/utils: Indent all sexps during pretty-printing•••* elisp/guix-utils.el (guix-show-pretty-print-buffer): Use 'indent-pp-sexp' on each top-level sexp as 'pp-buffer' prettifies only a single sexp! Alex Kost2017-02-271-1/+8
* elisp/ui-system-generation: Improve pretty printing•••Put service names and file names on the new lines. * elisp/guix-utils.el (guix-show-pretty-print): Split into... (guix-show-pretty-print-buffer, guix-show-pretty-print-file): ... these. * elisp/guix-ui-system-generation.el (guix-system-generation-pretty-print): New procedure. (guix-system-generation-info-insert-shepherd): Use it. Alex Kost2017-02-272-7/+36
* doc: Adjust shell completions documentation•••* doc/emacs-guix.texi (Requirements): Remove a mention that Geiser is not needed for shell completions as it is needed since commit c128a5b8ded9608bba92b5f9f33f07e60ae44a17. (Completions): Add 'shell' concept index. Add an example of completing 'guix graph --backend='. Alex Kost2017-02-151-2/+3
* doc: Fix typo•••This fixes a regression introduced by commit 2048f5c8a4c876dfb8a10b49d8c819d627349247. * doc/emacs-guix.texi (Miscellaneous Commands): Add table item for 'guix-lint'. Alex Kost2017-02-151-0/+1
* elisp: Add 'guix-packages-from-system-config-file' command•••* scheme/emacs-guix/packages.scm (packages-from-system-config-file): New procedure. (%patterns-makers): Use it for the new 'from-os-file' search type. (package/output-sexps): Adjust the docstring. * elisp/guix-ui-package.el (guix-packages-from-system-config-file): New command. * elisp/guix-ui.el (guix-ui-get-entries): Adjust the docstring. * elisp/guix-ui-messages.el (guix-messages): Add messages for 'from-os-file' search type. (guix-message-packages-by-id): Mention that canonical packages can't be displayed. * elisp/guix-help.el (guix-help-specifications): Add the new command. * doc/emacs-guix.texi (Package Commands): Document it. Alex Kost2017-02-156-5/+66
* elisp: Expand file names after 'read-file-name'•••* elisp/guix-misc.el (guix-apply-manifest): Use 'guix-read-file-name' instead of 'read-file-name'. * elisp/guix-profiles.el (guix-read-profile): Likewise. * elisp/guix-ui-package.el (guix-package-from-file): Likewise. * elisp/guix-ui-profile.el (guix-profile-list-apply-manifest): Likewise. Alex Kost2017-02-144-8/+10
* README: Add "Installation" sectionAlex Kost2017-02-041-0/+32
* elisp/pcomplete: Update some completions•••* elisp/guix-pcomplete.el (guix-pcomplete-complete-option-arg): Add proper completions for "environment --system=", "archive --extract=" and "graph --backend=". Alex Kost2017-01-311-4/+16
* elisp/command: Disambiguate "archive" options•••* elisp/guix-command.el (guix-command-improve-common-build-argument): Use "X" for "--max-silent-time" ("x" is for "--extract" archive option). (guix-command-improve-archive-argument): Remove "--generate-key" as "g" will be used for it by default anyway. Use 'read-directory-name' to complete "--extract". Alex Kost2017-01-311-2/+2
* elisp/pcomplete: Use Guix REPL to find completions•••As it is much faster than calling "guix" shell commands all the time. Suggested-by Ludovic Courtès <ludo@gnu.org>: <http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00088.html>. * elisp/guix-pcomplete.el (guix-pcomplete-guix-program) (guix-pcomplete-run-guix): Remove. (guix-pcomplete-run-guix-and-search): Rename to... (guix-pcomplete-search-in-help): Adjust to use Guix REPL instead of the shell command. (guix-pcomplete-define-options-finder): Adjust accordingly. (guix-pcomplete-all-packages, guix-pcomplete-lint-checkers) (guix-pcomplete-graph-node-types, guix-pcomplete-refresh-updaters): Remove. (guix-pcomplete-complete-option-arg): Use 'guix-package-names', 'guix-lint-checker-names', 'guix-graph-node-type-names' and 'guix-refresh-updater-names' instead. Alex Kost2017-01-311-67/+26
* elisp/guile: Strip string from properties in guile expression•••* elisp/guix-guile.el (guix-make-guile-expression): If expression is a string, make sure it is taken without properties, otherwise the properties will be printed as is into a resulting guile expression, thus will break it. Alex Kost2017-01-301-1/+3
* elisp/devel: Add highlighting/indentation for 'call-with-gzip-...'•••Follow the changes introduced by <http://git.savannah.gnu.org/cgit/guix.git/commit/?id=721539026dda02e58addbb618f2102b31a2927f8>. * elisp/guix-devel.el: Add highlighting and indentation rules for 'call-with-gzip-{input/output}-port'. Alex Kost2017-01-301-0/+4
* scheme: Use 'mlambda' instead of 'memoize'•••* scheme/emacs-guix/licenses.scm (lookup-license): Use (mlambda ...) instead of (memoize (lambda ...) ...). * scheme/emacs-guix/system-generations.scm (system-generation-boot-parameters): Likewise. Alex Kost2017-01-292-12/+10
* Updates for adding (guix memoization) module•••This is to follow the changes introduced by <http://git.savannah.gnu.org/cgit/guix.git/commit/?id=f9704f179a5160013c4a401dce3761714bba8e72>. * elisp/guix-devel.el: Add highlighting and indentation rules for 'mlambda' and 'mlambdaq'. * scheme/emacs-guix/licenses.scm: Use (guix memoization) instead of (guix combinators). * scheme/emacs-guix/system-generations.scm: Likewise. Alex Kost2017-01-293-5/+9
* elisp/pcomplete: Simplify completing "--remove" option•••Since profile may be changed, memoizing its packages is not correct, but re-fetching profile's packages all the time is not efficient, so just complete all package names as it is done for "--install" option. * elisp/guix-pcomplete.el (guix-pcomplete-installed-packages): Remove function. (guix-pcomplete-complete-option-arg): Adjust to complete all package names. Alex Kost2017-01-281-20/+2
* scheme/lint: Fix missing guix-warning-port•••This is a workaround for the same old problem: <https://github.com/jaor/geiser/issues/83>. * scheme/emacs-guix/lint.scm: Set 'guix-warning-port' to 'current-warning-port' in the top-level. Alex Kost2017-01-281-0/+5
* elisp/ui-package: Add "L" (lint) key to Package List•••* elisp/guix-ui-package.el (guix-package-list-lint): New command. (guix-package-list-mode-map): Bind "L" to it. (guix-package-list-default-hint): Add it. (guix-output-list-lint): New command. (guix-output-list-mode-map): Bind "L" to it. (guix-output-list-default-hint): Add it. * doc/emacs-guix.texi (Package Keys): Mention "L" key. Alex Kost2017-01-262-2/+30
* elisp/ui-package: Add "Lint" button to Package Info•••* elisp/guix-ui-package.el (guix-package-info-insert-lint-button): New procedure. (guix-package-info-button-functions): Add it. Alex Kost2017-01-261-1/+13
* elisp/package: Add 'guix-lint' command•••* scheme/emacs-guix/lint.scm (checkers-by-names, lint-package): New procedures. * scheme/emacs-guix.scm: Autoload 'lint-package'. * elisp/guix-package.el (guix-lint): New command. * elisp/guix-help.el (guix-help-specifications): Add it. * doc/emacs-guix.texi (Miscellaneous Commands): Document it. Alex Kost2017-01-255-3/+56
* scheme/packages: Remove nonexistent exported symbol•••This is a followup to commit d26b92dad0bb3af7e8d945791a977aec3169c8b4. * scheme/emacs-guix/packages.scm: Do not export 'matching-generations' as it is not defined in this module. Alex Kost2017-01-251-1/+0
* elisp/ui-package: Add "z" (size) key to Package List•••* elisp/guix-ui-package.el (guix-package-list-size): New command. (guix-package-list-mode-map, guix-output-list-mode-map): Bind "z" to it. (guix-package-list-default-hint, guix-output-list-default-hint): Add it. * doc/emacs-guix.texi (Package Keys): Mention "z" key. Alex Kost2017-01-252-2/+17
* elisp/ui-package: Add "Size" buttons for installed outputs•••* elisp/guix-ui-package.el (guix-installed-output-info-insert-file-name): New procedure. (guix-installed-output-info-format): Use it. Alex Kost2017-01-251-1/+14
* elisp/ui-package: Add "Size" button to Package Info•••* elisp/guix-ui-package.el (guix-package-info-insert-size-button): New procedure. (guix-package-info-button-functions): Add it. Alex Kost2017-01-251-1/+12
* elisp/ui-package: Rename 'guix-package-installed-outputs'•••* elisp/guix-ui-package.el (guix-package-installed-outputs): Rename to... (guix-package-entry-installed-outputs): ... this. Adjust the rest file accordingly. Alex Kost2017-01-241-5/+5
* elisp/package: Add 'guix-package-size' command•••* elisp/guix-package.el (guix-read-package-size-type): New function. (guix-package-size): New command. * elisp/guix-help.el (guix-help-specifications): Add it. * doc/emacs-guix.texi (Miscellaneous Commands): Document it. Alex Kost2017-01-243-0/+38
* elisp: Move package related code to "guix-package.el"•••* elisp/guix-ui-package.el (guix-package-id-and-output-by-output-id) (guix-package-build-log-file, guix-package-find-build-log): Move to... * elisp/guix-misc.el (guix-package-name-specification) (guix-package-source-file-name, guix-package-store-path) (guix-package-source-build-derivation, guix-build-package): Move to... * elisp/guix-package.el: ... here. New file. * elisp/local.mk (EL_FILES): Add it. Alex Kost2017-01-234-72/+106
* Add THANKS•••* THANKS: New file. Alex Kost2017-01-231-0/+10
* elisp: Add default value for some minibuffer readers•••* elisp/guix-utils.el (guix-define-reader): Add 'default' argument. (guix-define-readers): Add ':default' keyword. Adjust accordingly. * elisp/guix-hydra.el (guix-hydra-read-jobset, guix-hydra-read-job): Do not require match. * elisp/guix-read.el (guix-read-hash-format, guix-read-key-policy) (guix-read-elpa-archive, guix-read-graph-backend) (guix-read-graph-node-type): Add default values. Alex Kost2017-01-232-4/+12
* elisp: Minibuffer readers require match by default•••* elisp/guix-utils.el (guix-define-reader): Add 'require-match' argument. (guix-define-readers): Add ':require-match' keyword. Adjust accordingly. * elisp/guix-hydra.el (guix-hydra-read-jobset, guix-hydra-read-job): Do not require match. * elisp/guix-read.el (guix-read-package-name): Likewise. Alex Kost2017-01-233-10/+20
* elisp/ui-package: Add "G" (graph) key to Package List•••* elisp/guix-ui-package.el (guix-package-list-graph): New command. (guix-package-list-mode-map): Bind "G" to it. (guix-package-list-default-hint): Add it. (guix-output-list-graph): New command. (guix-output-list-mode-map): Bind "G" to it. (guix-output-list-default-hint): Add it. * doc/emacs-guix.texi (Package Keys): Mention "G" key. Alex Kost2017-01-232-2/+31
* elisp/ui-package: Add "Graph" button to Package Info•••* elisp/guix-ui-package.el (guix-package-info-insert-graph-button): New procedure. (guix-package-info-button-functions): Add it. Alex Kost2017-01-221-1/+15
* doc: Add "Graph Configuration" section•••* doc/emacs-guix.texi (Popup Interface): Move graph configuration text to... (Graph Configuration): ... here. New node. Alex Kost2017-01-221-45/+60
* elisp/graph: Add 'guix-package-graph' command•••* scheme/emacs-guix/graph.scm (lookup-node-type, lookup-backend) (package-graph, make-package-graph): New procedures. * scheme/emacs-guix.scm: Autoload 'make-package-graph'. * elisp/guix-graph.el (guix-package-graph): New command. * elisp/guix-help.el (guix-help-specifications): Add it. * doc/emacs-guix.texi (Miscellaneous Commands): Document it. Alex Kost2017-01-215-2/+105
* Rename 'graph-type' to 'graph-node-type' in symbol names•••* elisp/guix-pcomplete.el (guix-pcomplete-graph-types): Rename to... (guix-pcomplete-graph-node-types): ... this. * elisp/guix-read.el (guix-graph-type-names): Rename to... (guix-graph-node-type-names): ... this. (guix-read-graph-type): Rename to... (guix-read-graph-node-type): ... this. * elisp/guix-command.el: Adjust accordingly. * scheme/emacs-guix/graph.scm (graph-type-names): Rename to... (graph-node-type-names): ... this. * scheme/emacs-guix.scm: Adjust accordingly. Alex Kost2017-01-215-14/+14
* elisp: Factorize graph code•••* elisp/guix-graph.el (guix-graph-backend->graph-type) (guix-view-graph, guix-make-view-graph): New procedures. New file. * elisp/local.mk: Add it. * elisp/guix-command.el (guix-run-view-graph): Use it. Alex Kost2017-01-213-13/+79
* elisp/read: Simplify getters of auxiliary lists•••* elisp/guix-read.el: Do not call 'guix-make-guile-expression' as it's just too much for simple procedure calls. Alex Kost2017-01-211-10/+8
* scheme: Add 'package-by-id-or-name'•••* scheme/emacs-guix/locations.scm: Extract the code to find a package by ID or name and move to... * scheme/emacs-guix/packages.scm (package-by-id-or-name): ... here. New procedure. Alex Kost2017-01-212-8/+14
* elisp/repl: Introduce 'guix-repl-default-directory'•••Fixes <https://notabug.org/alezost/emacs-guix/issues/1>. * elisp/guix-repl.el (guix-repl-default-directory): New variable. (guix-start-repl-maybe): Use it as 'default-directory'. Alex Kost2017-01-191-1/+11
* elisp: Put temporary files in a sub-directory•••Instead of using 'temporary-file-directory' ("/tmp" by default), make "emacs-guix-..." sub-directory for temporary files. * elisp/guix-utils.el (guix-temporary-directory): New variable. (guix-temporary-directory, guix-temporary-file-name) (guix-delete-temporary-directory): New procedures. * elisp/guix-repl.el (guix-repl-socket-file-name): Use 'guix-temporary-file-name'. * elisp/guix-external.el (guix-png-file-name, guix-html-file-name): Likewise. Alex Kost2017-01-193-19/+49
* elisp/repl: Expand 'temporary-file-directory'•••Reported by mekeor on #guix. This variable may be set by a user, i.e. it may contain "~", so it should be expanded. * elisp/guix-repl.el (guix-repl-socket-file-name): Expand 'temporary-file-directory'. Alex Kost2017-01-191-2/+3
* elisp/help: Add 'guix-extended-command' command•••* elisp/guix-help.el (guix-extended-command-prompt) (guix-extended-commands): New procedures. (guix-extended-command): New command. (guix-help-specifications): Add it. * doc/emacs-guix.texi (Help): Document it. Alex Kost2017-01-142-0/+54
* elisp/geiser: Increase 'gc-cons-threshold' temporarily during eval•••* elisp/guix-geiser.el (guix-geiser-eval): Set 'gc-cons-threshold' to a big value since evaluating may receive huge amount of data. Alex Kost2017-01-141-6/+7
* elisp/prettify: Handle "gzip" in prettified names•••Reported-by: Ludovic Courtès <ludo@gnu.org> * elisp/guix-prettify.el (guix-prettify-regexp): Adjust to handle "gzip" after "nar". Also use real hash parts in the comment examples to make it visible what is prettified. Alex Kost2017-01-141-7/+8
* elisp/help: Allow to display keys before doc button•••* elisp/guix-help.el (guix-help-insert-specification): Handle both cases: when doc column is less then key column and vice versa. Move the code to display doc/info buttons and keys to... (guix-help-insert-doc-buttons, guix-help-insert-keys): ... here. New procedures. Alex Kost2017-01-141-12/+25
* elisp/help: Display key bindings in *Guix Help* buffer•••* elisp/guix-help.el (guix-help-key-column): New custom variable. (guix-help-key): New face. (guix-help-insert-specification): Insert keys when they are bound to guix commands. Alex Kost2017-01-141-1/+18
* elisp/help: Add 'guix-switch-to-buffer' command•••* elisp/guix-help.el (guix-define-buffer-function): New custom variable. (guix-define-buffer-by-name, guix-define-buffer-by-mode) (guix-buffer?, guix-buffers): New procedures. (guix-switch-to-buffer): New command. (guix-help-specifications): Add it. * doc/emacs-guix.texi (Help): Document it. Alex Kost2017-01-142-0/+57