summaryrefslogtreecommitdiff
path: root/emacs
Commit message (Collapse)AuthorAgeFilesLines
* gexp: Add 'with-imported-modules' macro.Ludovic Courtès2016-07-121-0/+2
| | | | | | | | | | | | | | | | | | | | | * guix/gexp.scm (<gexp>)[modules]: New field. (gexp-modules): New procedure. (gexp->derivation): Use it and append the result to %MODULES. Update docstring to mark #:modules as deprecated. (current-imported-modules, with-imported-modules): New macros. (gexp): Pass CURRENT-IMPORTED-MODULES as second argument to 'gexp'. (gexp->script): Use and honor 'gexp-modules'; define '%modules'. * tests/gexp.scm ("gexp->derivation & with-imported-modules") ("gexp->derivation & nested with-imported-modules") ("gexp-modules & ungexp", "gexp-modules & ungexp-splicing"): New tests. ("program-file"): Use 'with-imported-modules'. Remove #:modules argument to 'program-file'. * doc/guix.texi (G-Expressions): Document 'with-imported-modules'. Mark #:modules of 'gexp->derivation' as deprecated. * emacs/guix-devel.el: Add syntax for 'with-imported-modules'. (guix-devel-keywords): Add it. * .dir-locals.el: Likewise.
* emacs: Add "Build Log" button to Package Info.Alex Kost2016-05-312-1/+34
| | | | | | | | | * emacs/guix-main.scm (package-build-log-file): New procedure. * emacs/guix-ui-package.el (guix-package-build-log-file) (guix-package-find-build-log) (guix-package-info-insert-build-log-button): New procedures. (guix-package-info-button-functions): Add 'guix-package-info-insert-build-log-button'.
* emacs: Add "Build" button to Package Info.Alex Kost2016-05-313-1/+42
| | | | | | | | | | * emacs/guix-main.scm: Use (guix scripts) module for 'build-package' procedure. * emacs/guix-base.el (guix-build-package): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-build-button): New procedure. (guix-package-info-button-functions): New variable. (guix-package-info-insert-misc): Insert buttons using it.
* emacs: Extend 'guix-mapinsert'.Alex Kost2016-05-311-8/+25
| | | | | * emacs/guix-utils.el (guix-mapinsert): Add 'indent' and 'column' keyword arguments.
* emacs: Show built output directories in Package Info.Alex Kost2016-05-313-2/+72
| | | | | | | | | | | * emacs/guix-main.scm (package-store-path): New procedure. * emacs/guix-base.el (guix-package-store-path): New procedure. * emacs/guix-ui-package.el (guix-package-info-auto-find-package): New variable. (guix-package-info-show-store-path, guix-package-info-insert-misc): New procedures. (guix-package-info-format, guix-output-info-format): Add 'guix-package-info-insert-misc'.
* build: Use "%D%" in Makefile fragments.Mathieu Lirzin2016-05-241-37/+37
| | | | | | | | * doc/local.mk: Use "%D%" for the directory of the fragment relative to the base 'Makefile.am'. * emacs/local.mk: Likewise. * gnu/local.mk: Likewise. * nix/local.mk: Likewise.
* emacs: Add 'guix-package-from-file' command.Alex Kost2016-05-103-15/+59
| | | | | | | | | * emacs/guix-main.scm (register-package, packages-from-file): New procedures. (%patterns-makers): Add 'from-file' search type. * emacs/guix-messages.el (guix-messages): Add messages for it. * emacs/guix-ui-package.el (guix-package-from-file): New command. (guix-package-info-insert-location): Adjust for 'from-file' type. * doc/emacs.texi (Emacs Commands): Document it.
* emacs: main: Remove top-level package tables.Alex Kost2016-05-101-49/+24
| | | | | | | * emacs/guix-main.scm (%package-vhash, package-vhash, %package-table) (package-table, name+version->key, key->name+version): Remove. (package-by-address, packages-by-name+version): Adjust by using delayed local package tables.
* emacs: Simplify 'guix-guile-boolean'.Alex Kost2016-05-101-1/+1
| | | | | * emacs/guix-guile.el (guix-guile-boolean): Use straightforward way to define true/false value.
* emacs: Add 'guix-version' command.Alex Kost2016-05-093-1/+45
| | | | | | | * emacs/guix-config.el.in (guix-config-name, guix-config-version): New constants. * emacs/guix-about.el (guix-version): New command. New file. * emacs/local.mk (ELFILES): Add it.
* emacs: main: Use (guix combinators).Alex Kost2016-05-051-0/+1
| | | | | | | Reported by rsiddharth on #guix. This is a followup to commit 958dd3ce68733bcd5c1231424c7e4ad39e67594a. * emacs/guix-main.scm: Use (guix combinators) module as 'memoize' moved there.
* emacs: Add "edit" command to a list of licenses.Alex Kost2016-04-261-0/+7
| | | | | * emacs/guix-ui-license.el (guix-license-list-edit): New command. (guix-license-list-mode-map): Bind it to "e" key.
* emacs: Add license definition button to License Info buffer.Alex Kost2016-04-261-1/+14
| | | | | * emacs/guix-ui-license.el (guix-license-insert-file): New procedure. (guix-license-info-format): Use it.
* emacs: Add 'guix-find-license-definition' command.Alex Kost2016-04-261-0/+21
| | | | | | * emacs/guix-license.el (guix-license-file): New procedure. (guix-find-license-definition): New command. * doc/emacs.texi (Emacs Licenses): Document it.
* build: Move 'Makefile' fragments to subdirectories.Mathieu Lirzin2016-04-212-1/+77
| | | | | | | | | | | | | | | | | | This follows a convention used by some other GNU packages like Autoconf, Bison, Coreutils, and Gnulib. * doc.am: Rename to ... * doc/local.mk: ... this. * emacs.am: Rename to ... * emacs/local.mk: ... this. * gnu-system.am: Rename to ... * gnu/local.mk: ... this. * daemon.am: Rename to ... * nix/local.mk: ... this. * Makefile.am: Adapt to them. * doc/guix.texi (Porting to a New Platform): Adapt documentation. * guix/config.scm.in (%state-directory, %config-directory): Adapt comments. * emacs/guix-config.el.in (guix-config-state-directory): Likewise.
* emacs: Display license info on button press in Package Info buffer.Alex Kost2016-04-181-2/+6
| | | | | * emacs/guix-ui-package.el (guix-package-license): Adjust button action to display license info instead of browsing license URL.
* emacs: Add location "Packages" button to Package Info buffer.Alex Kost2016-04-181-2/+18
| | | | | | | * emacs/guix-ui-package.el (guix-package-info-insert-location): New procedure. (guix-package-info-format): Use it. (guix-output-info-format): Likewise.
* emacs: Add interface for package locations.Alex Kost2016-04-182-0/+95
| | | | | | | | | * emacs/guix-main.scm (%package-location-param-alist): New variable. (package-location->sexp, package-location-entries): New procedures. * emacs/guix-ui-location.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Package Locations): Document 'guix-locations'. * NEWS: Mention it.
* emacs: Make 'guix-find-location' interactive.Alex Kost2016-04-181-12/+19
| | | | | * emacs/guix-location.el (guix-find-location): Make interactive. Adjust to handle "reduced" locations (without line and column numbers).
* emacs: Display message if license not found.Alex Kost2016-04-181-0/+11
| | | | | | * emacs/guix-ui-license.el (guix-license-message): New procedure. (guix-license-info-message-function): Use it. (guix-license-list-message-function): Likewise.
* emacs: Separate package license code.Alex Kost2016-04-182-86/+119
| | | | | | | | | | | Move list/info interface code from "guix-license.el" to "guix-ui-license.el". * emacs/guix-license.el (guix-license-get-entries, guix-license-get-display) (guix-license-insert-packages-button, guix-license-insert-comment) (guix-licenses): Move to... * emacs/guix-ui-license.el: ... here. New file. * emacs.am (ELFILES): Add it.
* emacs: Separate package location code.Alex Kost2016-04-184-62/+97
| | | | | | | | | * emacs/guix-base.el (guix-directory, guix-read-directory) (guix-set-directory): Move to "guix-backend.el". (guix-find-location, guix-package-location, guix-edit): Move to... * emacs/guix-location.el: ... here. New file. * emacs/guix-ui-package.el: Use it. * emacs.am (ELFILES): Add it.
* emacs: Add 'guix-packages-by-location' command.Alex Kost2016-04-184-1/+67
| | | | | | | | | | | | | | * emacs/guix-main.scm (packages-by-location-file, package-location-files): New procedures. (%patterns-makers): Add 'location' search type. * emacs/guix-messages.el (guix-message-packages-by-location): New procedure. (guix-messages): Use it. * emacs/guix-read.el (guix-package-locations) (guix-read-package-location): New procedures. * emacs/guix-ui-package.el (guix-packages-by-location): New command. * doc/emacs.texi (Emacs Commands): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* emacs: Use full profile name in Guix buffer names.Alex Kost2016-04-151-3/+8
| | | | | | | * emacs/guix-ui.el (guix-ui-buffer-name-default): Rename to... (guix-ui-buffer-name-short): ... this. (guix-ui-buffer-name-full): New procedure. (guix-ui-buffer-name-function): Set it as default.
* emacs: Factorize code for buffer names.Alex Kost2016-04-152-20/+30
| | | | | | * emacs/guix-ui.el (guix-ui-buffer-name-default): Extract the code to compose buffer name and move to... * emacs/guix-utils.el (guix-compose-buffer-name): ... here. New procedure.
* emacs: Speed up starting the REPL.Alex Kost2016-04-041-18/+28
| | | | | | | | | | | Delay initializing variables. * emacs/guix-main.scm: (%packages): Rename to... (%package-vhash): ... this. Delay setting the value. (package-vhash): New procedure (wrapper for '%package-vhash'). (%package-table): Delay setting the value. (package-table): New procedure (wrapper for '%package-table'). (package-by-address, packages-by-name+version): Use wrappers.
* emacs: Use (guix scripts lint) only when needed.Alex Kost2016-04-041-3/+3
| | | | | * emacs/guix-main.scm: Do not use (guix scripts pull) module. (lint-checker-names): Adjust to use it.
* emacs: Remove unused module.Alex Kost2016-04-041-1/+0
| | | | | | This is a followup to commit c67e344f21fda2bf5a2a377a34d4749a1c7e7c9c. * emacs/guix-main.scm: Do not use (guix scripts pull).
* emacs: Stylistic improvements in guile code.Alex Kost2016-04-041-4/+7
| | | | | * emacs/guix-main.scm (package-unique?): Use 'match' instead of 'cdr'. (package-by-address): Likewise.
* emacs: Use 'build-and-use-profile' from (guix scripts package).Alex Kost2016-04-041-28/+8
| | | | | * guix/scripts/package.scm: Export 'build-and-use-profile'. * emacs/guix-main.scm (process-package-actions): Use it.
* emacs: Deprecate "guix-init.el".Alex Kost2016-03-241-2/+1
| | | | | | | | | | | | | | | | 'guix-init' served 2 purposes: - to autoload guix commands (by requiring 'guix-autoloads'); - and to autoload Emacs packages installed with Guix (by requiring 'guix-emacs'). The second purpose is not actual anymore, as Emacs package handles this task now, so there is no need in 'guix-init' anymore. * emacs/guix-init.el: Do not require 'guix-emacs'. Add a deprecation message. * doc/emacs.texi (Emacs Initial Setup): Recommend to use 'guix-autoloads' instead of 'guix-init'.
* emacs: Use space to separate package name and version in heading.Alex Kost2016-03-231-4/+7
| | | | | | | | Reported by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-ui-package.el (guix-package-name): Check 'spec' property. (guix-package-info-insert-heading): Use "name version" for button label, write name specification to 'spec' property.
* emacs: Fix converting scheme into elisp expression.Alex Kost2016-03-231-5/+17
| | | | | * emacs/guix-geiser.el (guix-geiser-eval-read): Replace #f/#t with nil/t only when they follow "(" or " ".
* emacs: Gracefully handle wrong package names passed to 'guix-edit'.Ludovic Courtès2016-03-081-4/+5
| | | | | | | | | Fixes <http://bugs.gnu.org/22933>. * emacs/guix-main.scm (package-location-string): Rewrite to handle the case where 'packages-by-name' returns the empty list. Co-authored-by: Mathieu Lirzin <mthl@gnu.org>
* emacs: Use '@' to separate package names and version numbers.Alex Kost2016-03-043-5/+6
| | | | | | | | | | | | This is a followup to commit 1b846da8c372bee78851439fd9e72b2499115e5a. * emacs/guix-base.el (guix-package-name-specification): Use "@" instead of "-". * emacs/guix-main.scm (name+version->full-name): Likewise. (package-inputs-names): Use 'make-package-specification' instead of 'package-full-name'. (full-name->name+version): Update the docstring. * emacs/guix-ui-package.el (guix-packages-by-name): Likewise.
* emacs: hydra: Use '-' to separate job names and version numbers.Alex Kost2016-03-042-2/+7
| | | | | | * emacs/guix-hydra.el (guix-hydra-job-name-specification): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-systems) (guix-package-list-latest-builds): Use it.
* Do not check package freshness during upgrade.Alex Kost2016-02-241-3/+1
| | | | | | | | | Fixes <http://bugs.gnu.org/22740>. Reported by Andreas Enge <andreas@enge.fr>. * gnu/packages.scm (waiting, ftp-open*, check-package-freshness): Remove. * guix/scripts/package.scm (options->installable): Adjust accordingly. * emacs/guix-main.scm (package->manifest-entry*): Likewise.
* emacs: Do not allow a user to modify system profiles.Alex Kost2016-02-222-5/+30
| | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/22607>. Reported by myglc2 <myglc2@gmail.com>. Remove possibilities to install/delete packages to/from a system profile both for "Package List" and "Package Info" buffers. * emacs/guix-profiles.el (guix-system-profile-regexp): New variable. (guix-system-profile?): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-output): Do not display "Install"/"Delete" button for a system profile. (guix-package-assert-non-system-profile): New procedure. (guix-package-execute-actions): Use it.
* emacs: Set 'guix-buffer-item' before displaying entries.Alex Kost2016-02-221-1/+3
| | | | | | | * emacs/guix-buffer.el (guix-buffer-set): Set 'guix-buffer-item' early, so that it can be used during displaying entries. For example, this allows us to use a value of the current guix profile when package entries are inserted in a "List" or "Info" buffer.
* emacs: Add 'M-x guix-installed-{user/system}-packages'.Alex Kost2016-02-221-0/+13
| | | | | | * emacs/guix-ui-package.el (guix-installed-user-packages) (guix-installed-system-packages): New commands. * doc/emacs.texi (Emacs Commands): Document them.
* emacs: Autoload hooks instead of putting them in 'guix-init'.Alex Kost2016-02-183-3/+6
| | | | | | * emacs/guix-init.el: Move adding hooks to... * emacs/guix-build-log.el: ... here. * emacs/guix-devel.el: ... and here.
* emacs: 'C-u M-x guix-edit' prompts for directory.Alex Kost2016-02-102-15/+31
| | | | | | | | * emacs/guix-base.el (guix-read-directory): New procedure. (guix-find-location, guix-edit): Add optional 'directory' argument. * emacs/guix-ui-package.el (guix-package-list-edit) (guix-output-list-edit): Likewise. * doc/emacs.texi (Emacs Commands): Mention "C-u".
* emacs: Find Emacs packages in a system profile.Alex Kost2016-02-071-2/+4
| | | | | | | | Fixes <http://bugs.gnu.org/22550>. Reported by myglc2 <myglc2@gmail.com>. * emacs/guix-emacs.el (guix-emacs-autoload-packages): Autoload Emacs packages installed in a system profile.
* emacs: Move the code to load Emacs packages after installing.Alex Kost2016-02-072-20/+21
| | | | | | | | | | | | This code should belong to "guix-backend" as it is run after a REPL operation to check if new Emacs packages have been installed and to autoload them if needed. * emacs/guix-emacs.el (guix-emacs-activate-after-operation) (guix-emacs-load-autoloads-maybe): Move and rename to... * emacs/guix-backend.el (guix-emacs-activate-after-operation) (guix-repl-autoload-emacs-packages-maybe): ... this. (guix-after-repl-operation-hook): Adjust for the renaming.
* emacs: Factorize searching for Emacs packages.Alex Kost2016-02-071-35/+40
| | | | | | | | | | | * emacs/guix-emacs.el: (guix-emacs-directories): New procedure. (guix-emacs-find-autoloads-in-directory): Rename to... (guix-emacs-find-autoloads): ... this. (guix-emacs-load-autoloads): Remove. Replace with... (guix-emacs-autoload-packages): ... this. New procedure. At first, find a list of directories with Emacs packages, then add them to 'load-path' and finally, load autoloads. * doc/emacs.texi (Emacs Initial Setup): Adjust accordingly.
* emacs: Add missing (require 'guix-profiles).Alex Kost2016-02-044-0/+4
| | | | | | | | | | | | | | | | | Reported by Christopher Allan Webber <cwebber@dustycloud.org> on #guix. Several modules use the code from 'guix-profiles' without requiring it. It was never noticed before commits e4e2154644ecf76ea02a50304c1405c00c9ffdd1 and 13fe4891fa247d306e203ee14c6886513bd86b52, because 'guix-emacs' required this module. But now, when 'site-start.el' loads 'guix-emacs', 'guix-profiles' may not exist yet, so it may not be required. This will lead to an error when some of "M-x guix-..." commands will be used. See <https://gnunet.org/bot/log/guix/2016-02-03#T898859>. * emacs/guix-base.el: Require 'guix-profiles'. * emacs/guix-ui.el: Likewise. * emacs/guix-ui-generation.el: Likewise. * emacs/guix-ui-package.el: Likewise.
* emacs: command: Disambiguate "w" key in build options.Alex Kost2016-02-011-2/+3
| | | | | | | This is a followup to commit 47c0f92c37dc7d50d9d4598ce5b91c4cdfec6ed1. * emacs/guix-command.el (guix-command-improve-common-build-argument): Use "W" key for '--with-input' option (leave "w" for '--with-source').
* guix system: Rename 'dmd-graph' to 'shepherd-graph'.Alex Kost2016-01-291-2/+2
| | | | | | | | | | | | | | | | * doc/images/dmd-graph.dot: Rename to... * doc/images/shepherd-graph.dot: ... this. * doc.am (DOT_FILES): Adjust accordingly. * guix/scripts/system.scm (dmd-service-node-label) (dmd-service-node-type, export-dmd-graph): Rename to... (shepherd-service-node-label, shepherd-service-node-type) (export-shepherd-graph): ... this. (show-help, process-action, process-command): Rename 'dmd-graph' to 'shepherd-graph'. * emacs/guix-command.el (guix-command-additional-execute-arguments) (guix-command-special-executors): Likewise. * doc/guix.texi: Likewise. * doc/emacs.texi (Emacs Popup Interface): Likewise.
* emacs: Add interface for licenses.Alex Kost2016-01-252-0/+108
| | | | | | | | | | | | | | * emacs/guix-main.scm (%license-param-alist): New variable. (license->sexp, find-licenses, license-entries): New procedures. * emacs/guix-license.el (guix-license-get-entries) (guix-license-get-display, guix-license-insert-packages-button) (guix-license-insert-comment, guix-license-list-describe) (guix-license-list-show-packages): New procedures. (guix-licenses): New command. * doc/emacs.texi (Emacs Licenses): New node. (Emacs Interface): Add it. * doc/guix.texi (Top): Add it. * NEWS: Mention new interface.
* emacs: list: Support displaying URL links.Alex Kost2016-01-251-0/+13
| | | | | * emacs/guix-list.el (guix-list-url): New face. (guix-list-get-url): New procedure.