summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
...
* Update NEWSAlex Kost2017-01-091-0/+24
* Add "guix.scm"•••* guix.scm: New file. * doc/emacs-guix.texi (Using from Git): Mention it. Alex Kost2017-01-092-2/+115
* build: Simplify configuring for "guix environment"•••* build-aux/build-env.el: New file. * Makefile.am (EXTRA_DIST): Add it. * .gitignore: Unignore "build-aux". * elisp/local.mk (AM_ELCFLAGS): Add '--no-site-file' if inside "guix environment". ($(ELC_FILES)): Load "build-env.el" during compilation. Alex Kost2017-01-094-3/+21
* build: Replace default Elisp build facility•••The "lisp_LISP" thing described at (info "(automake) Emacs Lisp") is rather limited, particularly: - It compiles all *.el files, so "make" always tries to compile "autoloads.el", but it is never compiled as it has "no-byte-compile" local variable. - It does not honor silent rules, so the build output is very verbose. - It makes "make" fail when there are compilation errors. - The source and build elisp directories are *appended* to 'load-path' because ELCFLAGS are placed before "-L $(builddir)". Obviously, the package elisp directories should be *prepended* to 'load-path' so that it will have a priority over the other directories. So replace this Elisp build facility with the custom build code. * configure.ac: Remove 'AM_PATH_LISPDIR'. Check for "emacs" and add '--with-lispdir' option. * elisp/local.mk (AM_ELCFLAGS): Add "builddir" and "srcdir". (ELFILES): Rename to... (EL_FILES): ... this. (EL_GEN_FILES): New variable with "guix-build-config.el". (ELC_FILES): New variable with needed *.elc files. ($(ELC_FILES), clean-lisp): New targets. Alex Kost2017-01-092-12/+36
* elisp: Do not recreate some buffers if they exist•••When you already have *Guix Help* buffer and you run "M-x guix-help" command, you probably want just to switch to that buffer, not to redisplay the whole its contents. The same applies to some other Guix buffers. * elisp/guix-utils.el (guix-switch-to-buffer-or-funcall): New procedure. * elisp/guix-about.el (guix-help-show, guix-about-show): New procedures. (guix-help, guix-about): Use them accordingly. * elisp/guix-ui-license.el (guix-licenses-show): New procedure. (guix-licenses): Use it. * elisp/guix-ui-location.el (guix-locations-show): New procedure. (guix-locations): Use it. * elisp/guix-ui-profile.el (guix-profiles-show): New procedure. (guix-profiles): Use it. Alex Kost2017-01-095-13/+80
* elisp/ui-generation: Remove "s" key•••* elisp/guix-ui-generation.el (guix-generation-list-mode-map): Remove "s" key and leave only "c" key for consistency with other lists ("s" key is used for sorting everywhere, and "c" key is also for "current" in "M-x guix-profiles"). (guix-generation-list-switch): Rename to... (guix-generation-list-set-current): ... this. * doc/emacs-guix.texi (Generation Keys): Remove "s" key. Alex Kost2017-01-072-6/+4
* elisp/ui-generation: Remove "D" key•••As reported by George Clemmer <myglc2@gmail.com>, "D" key may be confusing since "d" key puts "D" (deletion) mark on a current line. This should not be a downgrade since "=" key is bound to the same command, and there are hints now (i.e. "D" will display a hint). * elisp/guix-ui-generation.el (guix-generation-list-mode-map): Remove "D" key. * doc/emacs-guix.texi (Generation Keys): Likewise. Alex Kost2017-01-062-3/+1
* elisp: Add hints for all interfacesAlex Kost2017-01-069-19/+110
* Update the code to BUI 1.1.0•••* elisp/guix-ui-license.el (guix-license-insert-comment): Use 'bui-current-param-title'. * elisp/guix.el: Update BUI version. * doc/emacs-guix.texi (Requirements): Likewise. Alex Kost2017-01-063-6/+5
* elisp/hydra-jobset: Add missing newline in Info buffer•••This should have been done in commit 2d4b93938a791add2d1bf6aa95a2e748c4ccdf35. * elisp/guix-hydra-jobset.el (guix-hydra-jobset-info-insert-url): Insert newline after the button. Alex Kost2017-01-021-1/+2
* elisp/command: Add support for "guix copy"•••* elisp/guix-command.el (guix-command-improve-action-argument): Use "y" for "copy" action ("c" is for "challenge"). (guix-command-improve-copy-argument): New variable. Use "T" for "--to" option ("t" is for "--timeout"). (guix-command-argument-improvers): Add "copy" improvers. Alex Kost2017-01-011-1/+9
* elisp/ui-profile: Use "RET" key to show packages•••For consistency with a list of locations. * elisp/guix-ui-profile.el (guix-profile-list-mode-map): Bind "RET" to 'guix-profile-list-show-packages'. Alex Kost2016-12-311-3/+3
* elisp/ui-location: Use "e" key to go to the location•••For consistency with the lists of packages and licenses. * elisp/guix-ui-location.el (guix-location-list-edit): New command. (guix-location-list-mode-map): Bind it to "e". Alex Kost2016-12-311-0/+6
* Update NEWSv0.2.1Alex Kost2016-12-261-0/+21
* Update version to 0.2.1Alex Kost2016-12-262-2/+2
* elisp/default-config: Find version in "guix.el"•••* elisp/guix-default-config.el (guix-config-version): Find version in "guix.el". Alex Kost2016-12-261-1/+12
* elisp/command: Open html graph if backend is "d3js"•••* scheme/emacs-guix/commands.scm (guix-output-to-file): New procedure. * scheme/emacs-guix.scm: Autoload it. * elisp/guix-external.el (guix-html-file-name): New function. * elisp/guix-command.el (guix-run-view-graph): Use it for "d3js" backend. Alex Kost2016-12-264-7/+29
* build: Compile "guix-external.el" early•••* elisp/local.mk (ELFILES): Move "guix-external.el" upper as it is required by "guix-repl.el" and "guix-command.el". Alex Kost2016-12-261-1/+1
* elisp: Remove "Guix-" part from mode names•••To make the mode names shorter. * elisp/guix-ui-generation.el: Set mode names. * elisp/guix-ui-license.el: Likewise. * elisp/guix-ui-location.el: Likewise. * elisp/guix-ui-package.el: Likewise. * elisp/guix-ui-profile.el: Likewise. * elisp/guix-ui-system-generation.el: Likewise. Alex Kost2016-12-226-0/+11
* elisp/command: Disambiguate "package" options•••* elisp/guix-command.el (guix-command-improve-package-argument): Do not make "--upgrade" and "--do-not-upgrade" switches; use "n" for the latter ("U" is for "--substitute-urls"); use "h" for "--show" ("w" is for "--with-source"). Alex Kost2016-12-221-2/+5
* elisp/command: Disambiguate "archive" options•••* elisp/guix-command.el (guix-command-improve-archive-argument): Use "g" for "--generate-key" ("k" is for "--keep-going"). Alex Kost2016-12-221-1/+1
* elisp/command: Disambiguate "import" actions•••* elisp/guix-command.el (guix-command-improve-import-argument): Use "G" for "gem" ("g" is for "gnu"); use "C" for "crate" ("c" is for "cpan"). Alex Kost2016-12-221-1/+3
* elisp/command: Move "--no-grafts" to common build options•••* elisp/guix-command.el (guix-command-improve-build-argument): Move "--no-grafts" to... (guix-command-improve-common-build-argument): ... here, as it is a common build option used by the other commands; and use "G" for it, as "g" is used for other options. Alex Kost2016-12-221-2/+2
* elisp/about: Display logo only if image directory is set•••* elisp/guix-about.el (guix-logo-file): Check 'guix-image-directory'. (guix-insert-logo): Adjust accordingly. Alex Kost2016-12-221-6/+9
* elisp/about: Place point below the logo in About buffer•••* elisp/guix-about.el (guix-about-insert-content): Move the point 3 lines below the logo. Alex Kost2016-12-211-1/+3
* elisp/about: Display Help/About buffers in the current window•••Using 'with-output-to-temp-buffer' macro has some downsides. Particularly, by default, it displays a buffer in another window; also it does not allow to move the point position. So add a major mode, and display a buffer in the current window using it. * elisp/guix-about.el (guix-help-mode-map): New variable. (guix-help-mode): New major mode. (guix-help-display-buffer): Use it and switch to the resulting buffer. Alex Kost2016-12-211-3/+15
* elisp/about: Factorize Help/About buffer displaying•••A very similar code is used to insert the content and to display "Help" and "About" buffers. This commit generalize these commonalities. * elisp/guix-about.el (guix-help-revert, guix-about-revert): Remove, replace with... (guix-help-make-revert-function): ... this. New procedure. (guix-help-insert-content, guix-about-insert-content): Do not erase the buffer, as it is done by... (guix-help-reinsert-content): ... this. New procedure. (guix-help, guix-about): Do not set up a target buffer as it is done by... (guix-help-display-buffer): ... this. New procedure. Alex Kost2016-12-211-34/+35
* elisp/about: Display Help buffer title in the header line•••* elisp/guix-about.el (guix-help-insert-content): Adjust accordingly. Alex Kost2016-12-211-2/+6
* elisp/about: Remove the manual links from Help buffer•••As these links are displayed in About buffer now. * elisp/guix-about.el (guix-help-insert-content): Do not insert buttons for the manuals. Alex Kost2016-12-211-4/+0
* elisp: Add 'guix-about' command•••Add logos from guix-artwork repository and use them for "M-x guix-about". * images/guix-logo.svg: New file. * images/guixsd-logo.svg: New file. * images/README: New file. * Makefile.am (dist_image_DATA): Add images. * elisp/guix-build-config.el.in (guix-config-image-directory): New constant. * elisp/guix-default-config.el (guix-config-image-directory): Likewise. * elisp/guix-config.el (guix-image-directory): New variable. * elisp/guix-utils.el (guix-guixsd?): New procedure. * elisp/guix-about.el (guix-about-buffer-name) (guix-about-specifications): New variables. (guix-logo-file, guix-insert-logo, guix-about-revert) (guix-about-insert-content): New procedures. (guix-about): New command. * doc/emacs-guix.texi (Introduction): Mention it. Alex Kost2016-12-2110-3/+2116
* elisp: Simplify 'guix-scheme-directory' definition•••* elisp/guix-config.el (guix-first-existing-file): New function. (guix-elisp-directory): New variable. (guix-scheme-directory): Use them. Alex Kost2016-12-201-9/+16
* elisp: Move 'guix-scheme-directory' to "guix-config.el"•••* elisp/guix-repl.el (guix-scheme-directory): Move to... * elisp/guix-config.el (guix-scheme-directory): ... here. Alex Kost2016-12-202-19/+22
* elisp/ui-profile: Add "Current" column•••* elisp/guix-profiles.el (guix-current-profile?): New procedure. * elisp/guix-ui-profile.el (guix-profile->entry): Add 'current' parameter. (guix-profile-list-get-current): New procedure. (guix-profile-list-format): Use it. (guix-profile-list-set-current): Update "Current" column. Alex Kost2016-12-192-4/+30
* elisp/about: Add "info" buttons to Guix Help buffer•••* elisp/guix-about.el (guix-insert-info-command-button) (guix-goto-index-topic, guix-goto-command-index-topic): New procedures. * elisp/guix-about.el (guix-help-insert-specification): Check 'info-button?' in specification. (guix-help-specifications): Adjust accordingly. Alex Kost2016-12-191-13/+50
* elisp/about: Revert the meaning of command button specification•••* elisp/guix-about.el (guix-help-specifications): Use t instead of nil if command should be buttonized. (guix-goto-index-topic): Adjust accordingly. Alex Kost2016-12-191-11/+11
* elisp/command: Support graph backend options•••To follow the changes introduced by <http://git.savannah.gnu.org/cgit/guix.git/commit/?id=642339dc3fc6df33edd78f3cdc170c20a32a3c7d>. * scheme/emacs-guix/graph.scm (graph-backend-names): New procedure. * scheme/emacs-guix.scm (emacs-guix): Autoload it. * elisp/guix-read.el (guix-graph-backend-names) (guix-read-graph-backend): New procedures. * elisp/guix-command.el (guix-command-improve-graph-argument): Adjust accordingly. Alex Kost2016-12-174-4/+22
* elisp/package: Inherit some faces from bui faces•••* elisp/guix-ui-package.el (guix-package-info-location): Inherit from 'bui-file-name'. (guix-package-info-source): Inherit from 'bui-url'. Alex Kost2016-12-161-2/+2
* 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