summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* scheme: Add a workaround for missing build output•••* scheme/emacs-guix/actions.scm: Set 'guix-warning-port' and 'current-build-output-port' in the top-level. v0.2Alex Kost2016-12-151-0/+8
* elisp: Require 'guix' softly•••This is a followup to commit b1db61ee289de91a70a6912cc7c8d1716b4f06c5. Since 'guix' feature provides custom groups only, it may not be a hard dependency. Alex Kost2016-12-1518-18/+18
* elisp/repl: Fix 'guix-scheme-directory' for MELPA•••Elisp files are placed in a top package directory and Scheme files in a sub-directory, so "./scheme" should be searched instead of "../scheme" (the latter is also left just in case). * elisp/guix-repl.el (guix-scheme-directory): Search for "scheme" directory both in "." and in "..". Alex Kost2016-12-141-2/+9
* Add NEWSAlex Kost2016-12-141-0/+107
* elisp: Add "guix.el" with custom groups•••This is added mainly for MELPA, as it will be used to define package headers (Package-Requires, etc.). * elisp/guix-misc.el (guix, guix-faces): Move custom groups to... * elisp/guix.el: ... here. New file. * elisp/guix-about.el: Require it. * elisp/guix-build-log.el: Require it. * elisp/guix-command.el: Require it. * elisp/guix-devel.el: Require it. * elisp/guix-external.el: Require it. * elisp/guix-hydra.el: Require it. * elisp/guix-misc.el: Require it. * elisp/guix-pcomplete.el: Require it. * elisp/guix-prettify.el: Require it. * elisp/guix-repl.el: Require it. * elisp/guix-ui-generation.el: Require it. * elisp/guix-ui-license.el: Require it. * elisp/guix-ui-location.el: Require it. * elisp/guix-ui-package.el: Require it. * elisp/guix-ui-profile.el: Require it. * elisp/guix-ui-system-generation.el: Require it. * elisp/guix-ui.el: Require it. * elisp/guix-utils.el: Require it. * elisp/local.mk (ELFILES): Add it. Alex Kost2016-12-1420-10/+74
* elisp/system-generation: Add "Pretty print" button•••* elisp/guix-utils.el (guix-show-pretty-print): New procedure. * elisp/guix-ui-system-generation.el (guix-system-generation-info-insert-shepherd): New procedure to show "Pretty print" button for the Shepherd config file. (guix-system-generation-info-format): Use it. Alex Kost2016-12-142-1/+23
* elisp/repl: Reintroduce 'guix-load-path'•••It was renamed to 'guix-scheme-directory' by commit 467fadbd5f37fa4bf973d57fea93b268eb9af0dd. However it's a good idea to provide a way to augment Guile load-path, so add it again. * elisp/guix-repl.el (guix-load-path, guix-load-compiled-path): New variables. (guix-repl-guile-args): Add them if needed. Alex Kost2016-12-131-1/+30
* elisp/utils: Add and use 'guix-list-maybe'•••* elisp/guix-utils.el (guix-list-maybe): New function. * elisp/guix-repl.el (guix-repl-guile-args): Use it. Alex Kost2016-12-132-3/+8
* elisp: Add 'guix-profiles' command•••* elisp/guix-profiles.el (guix-profile-number-of-generations): New function. * elisp/guix-ui-profile.el: New file. * elisp/local.mk (ELFILES): Add it. * elisp/guix-about.el (guix-help-specifications): Mention 'guix-profiles' command. * README: Likewise. * doc/emacs-guix.texi (Profiles): New node. * elisp/guix-repl.el (guix-operation-buffer?): Add 'guix-profile-list-mode'. Alex Kost2016-12-137-6/+198
* elisp: (Re)bind "RET" and "P" keys in List buffers•••Set "P" key to display packages, "RET" to display Info buffer where appropriate. * elisp/guix-ui-generation.el (guix-generation-list-mode-map): Remove "RET", bind "P". * elisp/guix-ui-license.el (guix-license-list-mode-map): Likewise. * elisp/guix-ui-location.el (guix-location-list-mode-map): Bind "P". * doc/emacs-guix.texi: Adjust accordingly. Alex Kost2016-12-134-9/+10
* elisp/generation: Show "Compare" button in Info buffer•••* elisp/guix-ui-generation.el (guix-generation-info-insert-previous): New procedure. (guix-generation-info-format): Use it. * elisp/guix-ui-system-generation.el (guix-generation-info-format): Likewise. Alex Kost2016-12-132-2/+21
* elisp/system-generation: Display shepherd config button•••* elisp/guix-ui-system-generation.el (guix-system-generation-add-shepherd-config): New function. (guix-system-generation-get-entries): Add it. (guix-system-generation-info-format): Add 'shepherd-config' parameter. Alex Kost2016-12-131-3/+28
* elisp/system-generation: Display kernel config button instead of image•••* elisp/guix-ui-system-generation.el (guix-system-generation-add-kernel-config): New function. (guix-system-generation-get-entries): New function. (guix-system-generation-info-get-entries) (guix-system-generation-list-get-entries): Use it. (guix-system-generation-info-format): Display 'kernel-config' parameter instead of 'kernel'. Alex Kost2016-12-131-5/+32
* elisp/system-generation: Add more parameters to Info buffer•••* scheme/emacs-guix/system-generations.scm (system-generation-param-alist): Add all boot-parameters accessors. * elisp/guix-ui-system-generation.el (guix-system-generation-info-format): Add 'store-device', 'store-mount-point' and 'kernel-arguments' parameters. Alex Kost2016-12-132-13/+16
* elisp/generation: Show number of packages in Info buffer•••* elisp/guix-ui-generation.el (guix-generation-info-number): Remove face. (guix-generation-info-heading): New face. (guix-generation-info-insert-heading): New procedure. (guix-generation-info-insert-number): Remove. Move "Packages" button to... (guix-generation-info-insert-packages): ... here. New procedure. (guix-generation-info-format): Add 'number-of-packages' parameter; display generation number as the header. (guix-generation-info-titles): Change the title of 'prev-number'. * elisp/guix-ui-system-generation.el: Likewise. Alex Kost2016-12-132-19/+34
* elisp/generation: Display "Delete" button only for non-current generations•••* elisp/guix-ui-generation.el (guix-generation-info-insert-number): Move "Delete" button to... (guix-generation-info-insert-current): ...here. Alex Kost2016-12-121-9/+9
* elisp/system-generation: Set marks and sort key according to generation listAlex Kost2016-12-121-2/+2
* elisp: Add "Packages" column to generation lists•••* elisp/guix-profiles.el (guix-profile-number-of-packages): New function. * elisp/guix-ui-generation.el (guix-generation-get-entries): New function. (guix-generation-list-format): Add 'number-of-packages' column. (guix-generation-list-titles): Add "Packages" title. (guix-generation-info-get-entries, guix-generation-list-get-entries): Adjust accordingly. * elisp/guix-ui-system-generation.el (guix-system-generation-info-get-entries) (guix-system-generation-list-get-entries): Likewise. (guix-generation-list-format): Add 'number-of-packages' column, remove 'file-name' column. Alex Kost2016-12-123-29/+73
* elisp/utils: Add and use 'guix-modify-objects'•••* elisp/guix-utils.el (guix-modify-objects): New function. * elisp/guix-hydra.el (guix-hydra-get-entries): Use it. (guix-hydra-filter-names): Remove. Alex Kost2016-12-122-10/+10
* elisp/utils: Use &rest argument for 'guix-modify'•••* elisp/guix-utils.el (guix-modify): Use &rest for 'modifiers' argument. * elisp/guix-hydra.el (guix-hydra-filter-entries): Adjust accordingly. * elisp/guix-command.el (guix-command-post-process-args): Likewise. Alex Kost2016-12-123-7/+9
* elisp: Move "operation buffer" code to 'guix-repl'•••* elisp/guix-ui.el (guix-ui-update-buffer): Remove. (guix-ui-update-after-operation, guix-ui-buffer?, guix-ui-buffers) (guix-ui-update-buffers-after-operation): Move and rename to... * elisp/guix-repl.el (guix-update-buffers-after-operation) (guix-operation-buffer?, guix-operation-buffers) (guix-update-buffers-after-operation): ... this. * elisp/guix-misc.el (guix-update-buffers-maybe-after-pull): Adjust accordingly. Alex Kost2016-12-123-64/+68
* elisp/repl: Fix typo in commentary•••This is a followup to commit 6abb36748db4f72347315c058b303e9a0957c680. * elisp/guix-repl.el: Rename 'guix-use-guile-server'. Alex Kost2016-12-121-1/+1
* doc: Reorganize "Package Management" chapter•••* doc/emacs-guix.texi (Package Management): Make "Packages", "Generations" and "Miscellaneous Commands" sections. Move list/info and configuration explanations to... (List/Info Interface): ... here and... (Configuration): ...here. Improve this chapter. Alex Kost2016-12-121-312/+353
* doc: Tie "M-x" with the command namesAlex Kost2016-12-121-23/+26
* doc: Add more concept indexesAlex Kost2016-12-121-0/+5
* doc: Minor improvements in "Development" chapter•••* doc/emacs-guix.texi (Top): Rephrase description of "Development" chapter. (Development): Add "M-x" before the command. Alex Kost2016-12-121-3/+3
* elisp/devel: Add 'guix-devel-download-package-source'•••* elisp/guix-devel.el (guix-devel-download-package-source): New command. (guix-devel-keys-map): Bind it to "d". * doc/emacs-guix.texi (Development): Document it. Alex Kost2016-12-122-0/+21
* elisp/repl: Remove "REPL started" message•••Since commit 80722bd4d4faa9005d8ebe517c204ba80f9a3b99, the REPL itself is started instantly, the main job is performed later during loading the required modules, finding packages, etc., so it may be confusing when you see "started" message but something is still going on. * elisp/guix-repl.el (guix-start-process-maybe): Call 'guix-start-repl-maybe' without 'end-msg'. Alex Kost2016-12-121-1/+1
* elisp: Fix 'declare-function' calls•••* elisp/guix-ui-license.el: Add 't' argument. * elisp/guix-ui-location.el: Likewise. Alex Kost2016-12-122-2/+2
* elisp: Improve profile readers•••* elisp/guix-profiles.el (guix-profile-prompt): Rename to... (guix-read-profile): ... this. (guix-read-package-profile, guix-read-generation-profile): New procedures. * elisp/guix-ui.el (guix-ui-read-profile): Rename to.. (guix-ui-read-package-profile): ... this. (guix-ui-read-generation-profile): New procedure. * elisp/guix-ui-package.el: Adjust accordingly. * elisp/guix-ui-generation.el: Likewise. * elisp/guix-misc.el (guix-apply-manifest): Likewise. Alex Kost2016-12-125-22/+40
* elisp: Assert non-system profile in 'guix-apply-manifest'•••* elisp/guix-profiles.el (guix-assert-non-system-profile): New procedure. * elisp/guix-ui-package.el (guix-package-assert-non-system-profile): Use it. * elisp/guix-misc.el (guix-apply-manifest): Likewise. Alex Kost2016-12-123-7/+11
* elisp: Add 'guix-generation-profile'•••* elisp/guix-profiles.el (guix-profile, guix-generation-profile): New procedures. (guix-package-profile): Adjust accordingly. Alex Kost2016-12-121-10/+34
* elisp: Check system profile in 'guix-package-profile'•••Instead of passing 'system?' argument to multiple procedures. * elisp/guix-profiles.el (guix-system-profile-regexp): Check "/run" system symlinks. (guix-package-profile, guix-manifest-file): Remove 'system?' argument. * elisp/guix-ui-generation.el (guix-system-generation?): Remove. Adjust the rest code accordingly. * elisp/guix-ui-package.el: Likewise. Alex Kost2016-12-123-25/+19
* elisp: Rename and improve 'guix-packages-profile'•••* elisp/guix-profiles.el (guix-packages-profile): Rename to... (guix-package-profile): ... this. Handle user profile. (guix-profile-prompt): Use it. * elisp/guix-ui-generation.el: Adjust to the rename. * elisp/guix-ui-package.el: Likewise. Alex Kost2016-12-123-23/+27
* elisp: Rename 'guix-base' to 'guix-misc'•••* elisp/guix-base.el: Rename to... * elisp/guix-misc.el: ... this. * elisp/guix-command.el: Adjust accordingly. * elisp/guix-devel.el: Likewise. * elisp/guix-ui-package.el: Likewise. * elisp/guix-ui-generation.el: Likewise. * elisp/local.mk (ELFILES): Likewise. Alex Kost2016-12-126-9/+10
* elisp: Move profile related code to "guix-profiles.el"•••* elisp/guix-base.el (guix-generation-file, guix-packages-profile) (guix-manifest-file): Move to... * elisp/guix-profiles.el: ... here. Alex Kost2016-12-122-27/+29
* elisp/repl: Modify 'guix-repl-startup-time' value•••* elisp/guix-repl.el (guix-repl-startup-time): Set it to 'geiser-repl-startup-time'. Alex Kost2016-12-121-1/+1
* elisp: Improve docstring of 'guix-directory'•••* elisp/guix-repl.el (guix-directory): Make it clear what commands it is used by. Alex Kost2016-12-121-2/+3
* elisp: Add 'guix-help' command•••* elisp/guix-about.el (guix-help-buffer-name, guix-help-doc-column) (guix-help-specifications): New variables. (guix-help-heading): New face. (guix-insert-info-button, guix-insert-doc-button) (guix-insert-command-button, guix-help-insert-specification) (guix-help-revert, guix-help-insert-content): New procedures. (guix-help): New command. * doc/emacs-guix.texi (Introduction): Mention it. * README: Likewise. Alex Kost2016-12-123-1/+177
* doc: Add "Introduction" chapter•••* doc/emacs-guix.texi (Introduction): New node. Alex Kost2016-12-121-3/+47
* elisp/profiles: Improve docstring of 'guix-current-profile'Alex Kost2016-12-121-1/+2
* elisp/prettify: Improve the mode docstring•••* elisp/guix-prettify.el (guix-prettify-mode): Add example of file name. Alex Kost2016-12-121-4/+8
* elisp/prettify: Update 'guix-prettify-special-modes'•••* elisp/guix-prettify.el (guix-prettify-special-modes): Remove 'guix-info-mode' as it doesn't exist anymore (after commit 290776b4ada6f7d5c5158205379d414efc321979). Alex Kost2016-12-121-1/+1
* elisp/utils: Reintroduce 'guix-find-file'•••This partially reverts commit 290776b4ada6f7d5c5158205379d414efc321979. * elisp/guix-utils.el (guix-find-file-function): New variable. It shouldn't be removed as it is documented. (guix-find-file): New procedure. * elisp/guix-ui-package.el (guix-package-info-show-source): Use it. * elisp/guix-command.el (guix-run-view-graph, guix-run-view-size-map): Likewise. Alex Kost2016-12-123-3/+18
* doc: Add indexes•••* doc/emacs-guix.texi (Top): Add concept, command and variable indexes. Alex Kost2016-12-121-5/+90
* doc: Rename 'Licenses' chapter•••* doc/emacs-guix.texi (Licenses): Rename to... (Package Licenses): ... this. Alex Kost2016-12-071-3/+3
* doc: Mention 'guix-apply-manifest' command•••* doc/emacs-guix.texi (Commands): Mention "M-x guix-apply-manifest". Alex Kost2016-12-071-1/+2
* doc: Clarify 'guix-use-substituse' and 'guix-dry-run'•••Trying to make a better wording than <http://git.savannah.gnu.org/cgit/guix.git/commit/?id=6f52b82d42a27228032b0d1e8106370818153072>. * doc/emacs-guix.texi (Guile and Build Options): Describe 'guix-use-substitute' and 'guix-dry-run' more verbosely. Alex Kost2016-12-071-3/+5
* doc: Update 'Configuration' section•••* doc/emacs-guix.texi (Configuration): Mention customization group and 'guix-ENTRY-TYPE-BUFFER-TYPE-format' variables. [Appearance]: Remove node. Alex Kost2016-12-071-31/+12
* elisp/ui-package: Remove 'output-info' interface•••It does not provide anything useful comparing with the 'package-info' interface; and it was added just for "symmetry": since there were both 'package-list' and 'output-list', I thought it would be also good to add 'output-info', but it is really useless. * elisp/guix-ui-package.el: Remove all the 'output-info' stuff. (guix-package-info-type): Remove custom variable. (guix-package-type): Rename to... (guix-package-list-type): ... this. * elisp/guix-base.el (guix-update-buffers-maybe-after-pull): Do not check for 'guix-output-info-mode'. * elisp/guix-ui.el (guix-ui-buffer?): Likewise. * doc/emacs-guix.texi (Configuration): Remove 'output-info' buffer name and keymap. Alex Kost2016-12-074-103/+25