Age | Commit message (Expand) | Author |
2016-01-02 | emacs: Generalize buffer naming....* emacs/guix-base.el (guix-buffer-name): New procedure.
(guix-buffer-define-interface): Make ':buffer-name' a required keyword.
(guix-update-after-operation, guix-buffer-name-function)
(guix-buffer-name-simple, guix-buffer-name-default, guix-buffer-name)
(guix-buffer-p, guix-buffers, guix-update-buffer)
(guix-update-buffers-maybe-after-operation): Adjust, move and rename to...
* emacs/guix-ui.el (guix-ui-update-after-operation)
(guix-ui-buffer-name-function, guix-ui-buffer-name-simple)
(guix-ui-buffer-name-default, guix-ui-buffer-name)
(guix-ui-buffer?, guix-ui-buffers, guix-ui-update-buffer)
(guix-ui-update-buffers-after-operation): ... this.
(guix-ui-define-interface): Generate
'guix-ENTRY-TYPE-BUFFER-TYPE-buffer-name' procedure and pass it as
':buffer-name' argument.
(guix-ui): New custom group.
* emacs/guix-info.el: Specify ':buffer-name' for the defined interfaces.
* emacs/guix-list.el: Likewise.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
| Alex Kost |
2016-01-02 | emacs: info: Buttonize package name heading....* emacs/guix-info.el (guix-package-info-insert-heading): Insert
buttonized name specification.
| Alex Kost |
2016-01-02 | emacs: Improve messages for packages found by ID....* emacs/guix-messages.el (guix-message-packages-by-id): New procedure.
(guix-messages): Use it.
| Alex Kost |
2016-01-02 | emacs: Generalize buffer reverting....This is a partial revert of commit d2b299a91f3be283df1264afe62770ab2783ace9.
* emacs/guix-base.el (guix-revert-buffer): Make it more general by
removing the code specific to a particular search (a search for
packages/outputs by ID). Rename to...
(guix-buffer-revert): ... this.
| Alex Kost |
2016-01-02 | emacs: Generalize buffer redisplaying....* emacs/guix-base.el (guix-buffer-after-redisplay-hook): New variable.
(guix-redisplay-buffer): Use it. Remove all arguments and the code
for moving point to the next button. Rename to...
(guix-buffer-redisplay): ... this.
(guix-buffer-redisplay-goto-button): New procedure.
* emacs/guix-info.el (guix-package-info-show-source): Use it. Adjust
accordingly.
(guix-package-info-redisplay-after-download): Likewise.
| Alex Kost |
2016-01-02 | emacs: Split 'guix-root-map' keymap....* emacs/guix-base.el: (guix-root-map): Split into...
(guix-buffer-map): ... this and...
* emacs/guix-ui.el (guix-ui-map): ... this.
(guix-ui-define-interface): Generate
'guix-ENTRY-TYPE-BUFFER-TYPE-mode-map' keymaps inheriting them from
'guix-ui-map' and 'guix-BUFFER-TYPE-mode-map'.
* emacs/guix-info.el (guix-info-mode-map): Use 'guix-buffer-map'.
* emacs/guix-list.el (guix-list-mode-map): Likewise.
* doc/emacs.texi (Emacs Keymaps): Document new keymaps.
| Alex Kost |
2016-01-02 | emacs: Add wrappers for 'history-size' and 'revert-confirm'....* emacs/guix-base.el (guix-buffer-history-size): New procedure.
(guix-buffer-define-interface): Use it in the mode definition.
(guix-buffer-revert-confirm?): New procedure.
(guix-revert-buffer): Use it.
| Alex Kost |
2016-01-02 | emacs: Split 'guix-param-titles' variable....Generate 'guix-ENTRY-TYPE-BUFFER-TYPE-titles' variables for each
ENTRY-TYPE and BUFFER-TYPE instead.
* emacs/guix-base.el (guix-param-titles): Remove.
(guix-buffer-data): New variable.
(guix-buffer-value, guix-buffer-param-title): New procedures.
(guix-buffer-define-interface): Add ':titles' keyword.
* emacs/guix-info.el (guix-info-param-title): Adjust accordingly.
* emacs/guix-list.el (guix-list-param-title): Likewise.
(guix-list-column-titles): Remove.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
| Alex Kost |
2016-01-02 | emacs: info: Split 'guix-info-format' variable....* emacs/guix-info.el: Generate 'guix-ENTRY-TYPE-info-format' variables
for 'package', 'installed-output', 'output' and 'generation' entry
types.
(guix-info-format): Remove.
(guix-info-data): New variable.
(guix-info-value): New procedure.
(guix-info-define-interface): Add ':format' keyword.
* emacs/guix-base.el (guix-buffer-define-interface): Add ':reduced?'
keyword.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
| Alex Kost |
2016-01-02 | emacs: Factorize macros for defining interfaces....Make a root 'guix-buffer-define-interface' macro. It should generate a
common code for any type of interface. Inherit 'guix-info-define-interface'
and 'guix-list-define-interface' from it. They should provide a general
'info'/'list' interface for any data. Finally, make
'guix-ui-define-interface' for the common code for interfaces to Guix
packages and generations, and inherit 'guix-ui-info-define-interface' and
'guix-ui-list-define-interface' from it.
* emacs/guix-base.el (guix-define-buffer-type): Rename to...
(guix-buffer-define-interface): ... this. Rename internal
variables ('buf-' -> 'buffer-'). Move ':required' keyword to
'guix-ui-define-interface'.
* emacs/guix-info.el (guix-info-define-interface): New macro.
(guix-info-font-lock-keywords): New variable.
* emacs/guix-list.el (guix-list-define-entry-type): Rename to...
(guix-list-define-interface): ... this.
(guix-list-font-lock-keywords): New variable.
(guix-list-describe-ids): Move and rename to...
* emacs/guix-ui.el: New file.
(guix-ui-list-describe): ... this.
(guix-ui-define-interface, guix-ui-info-define-interface)
(guix-ui-list-define-interface): New macros.
(guix-ui-font-lock-keywords): New variable.
* emacs.am (ELFILES): Add "emacs/guix-ui.el"
| Alex Kost |
2016-01-02 | emacs: info: Generalize inserting and formatting....* emacs/guix-info.el: Use a more flexible format for inserting any data.
(guix-info-ignore-empty-vals): Rename to...
(guix-info-ignore-empty-values): ... this.
(guix-info-insert-methods): Merge this and...
(guix-info-displayed-params): ... this into...
(guix-info-format): ... this. Change format specifications.
(guix-info-title-aliases, guix-info-value-aliases): New variables.
(guix-info-displayed-params): Adjust for the new format.
(guix-info-insert-entry): Likewise.
(guix-package-info-fill-heading): Replace with...
(guix-info-fill): ... this.
(guix-info-insert-param): Replace with...
(guix-info-insert-entry-unit): ... this.
(guix-info-insert-title-default): Replace with...
(guix-info-insert-title-format): ... this.
(guix-info-insert-val-default): Replace with...
(guix-info-insert-value-format): ... this.
(guix-info-insert-val-simple): Replace with...
(guix-info-insert-value-indent): ... this.
(guix-package-info-insert-source): Adjust accordingly.
(guix-package-info-insert-heading): Insert only name and version.
(guix-package-info-define-insert-inputs): Do not generate
'guix-package-info-insert-ENTRY-TYPE-inputs' procedures.
(guix-info-fill-column, guix-info-insert-entry-default)
(guix-info-method-funcall, guix-info-insert-file-path)
(guix-info-insert-url, guix-info-insert-package-function)
(guix-info-insert-installed-function)
(guix-info-insert-output-function)
(guix-info-insert-generation-function)
(guix-package-info-heading-params)
(guix-package-info-insert-with-heading)
(guix-package-info-insert-description)
(guix-package-info-insert-location)
(guix-package-info-insert-full-names)
(guix-package-info-insert-source-url): Remove.
(guix-info-fill-column, guix-info-param-title)
(guix-info-title-function, guix-info-value-function)
(guix-info-title-method->function)
(guix-info-value-method->function)
(guix-info-insert-value-simple): New procedures.
* emacs/guix-utils.el (guix-buttonize, guix-button-type?): New
procedures.
(guix-split-string): Split multi-line strings and ignore empty lines.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
| Alex Kost |
2016-01-02 | emacs: list: Factorize "edit package" commands....* emacs/guix-list.el: Use separate edit commands instead of a single one.
(guix-list-for-each-line, guix-list-edit-package): Remove.
(guix-package-list-edit, guix-output-list-edit): New procedures.
(guix-package-list-mode-map, guix-output-list-mode-map): Use them.
| Alex Kost |
2016-01-02 | emacs: list: Split 'guix-list-format' variable....* emacs/guix-list.el: Generate 'guix-ENTRY-TYPE-list-format' variables
for 'package', 'output' and 'generation' entry types.
(guix-list-format): Remove.
(guix-list-define-entry-type): Add ':format' keyword.
* doc/emacs.texi (Emacs Appearance): Adjust accordingly.
| Alex Kost |
2016-01-02 | emacs: list: Add 'guix-list-mode-initialize'....* emacs/guix-list.el (guix-list-mode-initialize): New procedure.
(guix-list-define-entry-type): Use it.
| Alex Kost |
2016-01-02 | emacs: list: Generalize 'sort-key' code....* emacs/guix-list.el (guix-list-sort-key): New procedure.
(guix-list-tabulated-sort-key): Use it.
(guix-list-define-entry-type): Generate
'guix-ENTRY-TYPE-list-sort-key' variables.
| Alex Kost |
2016-01-02 | emacs: list: Generalize 'describe' code....* emacs/guix-list.el (guix-list-describe-warning-count): Remove variable.
(guix-list-define-entry-type): Generate
'guix-ENTRY-TYPE-list-describe-warning-count' and
'guix-ENTRY-TYPE-list-describe-function' variables.
(guix-list-describe-maybe): Remove. Move the code...
(guix-list-describe): ... here.
(guix-list-describe-warning-count, guix-list-describe-entries)
(guix-list-describe-ids): New procedures.
(guix-output-list-describe): Adjust accordingly.
(guix-list-mode-map): Bind "i" key to 'guix-list-describe'.
(guix-generation-list-mode-map): Remove "i" key.
| Alex Kost |
2016-01-02 | emacs: list: Generalize 'marks' code....* emacs/guix-list.el (guix-list-mark-alist): Rename to...
(guix-list-marks): ... this
(guix-list-data, guix-list-default-marks): New variables.
(guix-list-value, guix-list-additional-marks, guix-list-marks): New
procedures.
(guix-list-define-entry-type): Adjust accordingly.
| Alex Kost |
2016-01-02 | emacs: Add 'guix-alist-put'....* emacs/guix-utils.el (guix-alist-put, guix-alist-put-1)
(guix-alist-put!): New procedures.
| Alex Kost |
2016-01-02 | emacs: Add 'guix-keyword-args-let'....* emacs/guix-utils.el (guix-keyword-args-let): New macro.
(guix-utils-font-lock-keywords): Add it.
* emacs/guix-base.el (guix-define-buffer-type): Use it.
* emacs/guix-list.el (guix-list-define-entry-type): Use it.
* emacs/guix-read.el (guix-define-readers): Use it.
| Alex Kost |
2016-01-02 | emacs: list: Configure format in one place....* emacs/guix-list.el: (guix-list-column-format): Merge this and...
(guix-list-column-value-methods): ... this into...
(guix-list-format): ... this. New variable.
(guix-list-tabulated-vector): Adjust accordingly.
(guix-list-tabulated-format): Likewise.
(guix-list-tabulated-entry): Likewise.
* doc/emacs.texi (Emacs Appearance): Likewise.
| Alex Kost |
2016-01-02 | emacs: Rename internal procedures....* emacs/guix-list.el (guix-list-get-param-title): Rename to...
(guix-list-param-title): ... this.
(guix-list-get-column-format): Rename to...
(guix-list-format): ... this.
(guix-list-get-displayed-params): Rename to...
(guix-list-displayed-params): ... this.
(guix-list-get-sort-key): Rename to...
(guix-list-tabulated-sort-key): ... this.
(guix-list-make-tabulated-vector): Rename to...
(guix-list-tabulated-vector): ... this.
(guix-list-get-list-format): Rename to...
(guix-list-tabulated-format): ... this.
(guix-list-get-tabulated-entries): Rename to...
(guix-list-tabulated-entries): ... this.
(guix-list-get-tabulated-entry): Rename to...
(guix-list-tabulated-entry): ... this.
* emacs/guix-info.el (guix-info-get-displayed-params): Rename to...
(guix-info-displayed-params): ... this.
* emacs/guix-base.el (guix-get-params-for-receiving): Adjust
accordingly.
(guix-get-name-spec): Rename to...
(guix-package-name-specification): ... this.
(guix-get-full-name): Merge this and...
(guix-entry-to-specification): ... this into...
(guix-package-entry->name-specification): ... this.
(guix-get-installed-outputs): Rename to...
(guix-package-installed-outputs): ... this.
(guix-get-package-id-and-output-by-output-id): Rename to...
(guix-package-id-and-output-by-output-id): ... this.
| Alex Kost |
2016-01-02 | emacs: list: Generate numerical sort predicates....* emacs/guix-list.el: Generate predicates to sort tabulated list
columns numerically.
(guix-list-define-numerical-sorter)
(guix-list-define-numerical-sorters): New macros
(guix-list-column-format): Use 'guix-list-sort-numerically-0' for
generation "Number" column.
| Alex Kost |
2016-01-02 | emacs: Simplify defining parameter titles....* emacs/guix-utils.el (guix-symbol-title): New procedure.
* emacs/guix-base.el (guix-get-param-title): Use it.
(guix-param-titles): Remove most titles as they are automatically
defined by 'guix-symbol-title'.
| Alex Kost |
2016-01-02 | emacs: Add API for 'guix-entry'....* emacs/guix-info.el: Use new entry procedures.
* emacs/guix-list.el: Likewise.
* emacs/guix-base.el: Likewise.
(guix-get-entry-by-id): Move and rename to ...
* emacs/guix-entry.el (guix-entry-by-id): ...this. New file.
(guix-entry-value, guix-entry-id, guix-entries-by-ids)
(guix-replace-entry): New procedures.
* emacs.am (ELFILES): Add new file.
| Alex Kost |
2016-01-02 | emacs: Add 'guix-with-indent'....* emacs/guix-utils.el (guix-with-indent): New macro.
(guix-memoized-font-lock-keywords): Rename to...
(guix-utils-font-lock-keywords): ... this. Add it.
* emacs/guix-info.el (guix-info-insert-entry-default): Use it.
| Alex Kost |
2016-01-02 | emacs: Use "cl-list*" instead of "apply #'list"....* emacs/guix-command.el (guix-run-view-build-log): Use cl-list*.
(guix-run-view-size-map): Likewise.
* emacs/guix-external.el (guix-dot-arguments): Likewise.
| Alex Kost |
2015-12-15 | emacs: Use socket instead of port....Suggested by Florian Paul Schmidt.
* emacs/guix-backend.el (guix-default-port): Remove.
(guix-repl-socket-file-name-function, guix-repl-current-socket): New
variables.
(guix-repl-socket-file-name, guix-repl-delete-socket-maybe): New
procedures.
(guix-get-guile-program): Take socket as an optional argument.
(guix-start-repl-maybe): Adjust accordingly.
| Alex Kost |
2015-12-15 | emacs: 'node-type' is in (guix graph) now....This is a followup to commit 8fb583714f78d1b283523ef7edbb6e098946182f.
* emacs/guix-main.scm (graph-type-names): Use 'node-type-name'
from (guix graph) module.
| Alex Kost |
2015-12-11 | emacs: Handle compiled autoloads....* emacs/guix-emacs.el (guix-emacs-autoloads-regexp): New variable.
(guix-emacs-find-autoloads-in-directory): Return a list of autoloads
without extensions.
| Alex Kost |
2015-12-09 | emacs: Fix '--rounds' option in command popups....* emacs/guix-command.el (guix-command-improve-common-build-argument):
Use "R" key for '--rounds' option to avoid conflicts with "r" key in
'build' popup (--root) and 'package' popup (--remove).
| Alex Kost |
2015-12-09 | emacs: Add 'guix-build-log-find-file'....* emacs/guix-build-log.el (guix-build-log-find-file): New procedure.
* emacs/guix-command.el (guix-run-view-build-log): Use it.
| Alex Kost |
2015-12-09 | emacs: list: Fontify time stamps....* emacs/guix-list.el (guix-list-time): New face.
(guix-list-get-time): Use it.
| Alex Kost |
2015-12-09 | emacs: info: Add 'guix-info-heading' face....* emacs/guix-info.el (guix-info-heading): New face.
(guix-package-info-heading): Inherit it.
| Alex Kost |
2015-12-06 | emacs: info: Show a message after copying button label....* emacs/guix-info.el (guix-info-button-copy-label): Use
'guix-copy-as-kill' to display a message with what was killed.
| Alex Kost |
2015-12-06 | emacs: Complete --profile in 'guix package' popup....* emacs/guix-command.el (guix-command-improve-package-argument): Use
'guix-read-file-name' to complete --profile option.
| Alex Kost |
2015-12-06 | emacs: 'guix-emacs-load-autoloads' takes a profile....* emacs/guix-emacs.el (guix-emacs-load-autoloads): Use 'profile'
as an optional argument.
(guix-emacs-load-autoloads-maybe): Adjust accordingly.
* emacs/guix-init.el: Likewise.
| Alex Kost |
2015-12-06 | emacs: Fix 'guix-pull'....* emacs/guix-base.el (guix-pull): Handle prefix argument when it is run
interactively. Use 'guix-command' instead of 'guix-pull' to prevent
REPL exit if 'leave' happens.
| Alex Kost |
2015-12-06 | emacs: Fix 'guix-apply-manifest'....* emacs/guix-base.el (guix-apply-manifest): Use 'guix-command' instead
of 'guix-package' to prevent REPL exit if 'leave' happens. Expand
profile and manifest file names, as relative file names lead to an
error.
| Alex Kost |
2015-11-23 | emacs: Expand 'guix-load-path'....Reported by Mathieu Lirzin <mthl@gnu.org> at
<http://lists.gnu.org/archive/html/guix-devel/2015-11/msg00585.html>.
* emacs/guix-backend.el (guix-start-repl): Expand 'guix-load-path' to
avoid a potentially relative directory name in Guile %load-path.
| Alex Kost |
2015-11-16 | emacs: 'display-search-paths' now takes a list of profiles....Fixes a regression introduced in fc2d233.
* emacs/guix-main.scm (process-package-actions): Make second argument to
'display-search-paths' a list.
| Ludovic Courtès |
2015-11-12 | emacs: Adjust 'guix environment' popup....* emacs/guix-command.el (guix-command-improve-environment-argument): Use
"E" for '--expose' and "S" for '--share' to distinguish them from
'--expression' and '--system' accordingly. Make '--ad-hoc' an option
taking packages instead of a simple switch.
(guix-command-rest-argument): Complete shell command instead of
packages for '--' argument.
(guix-command-additional-arguments): Add fake 'packages' argument.
New variable.
(guix-command-additional-arguments): Use it.
(guix-command-post-process-environment-packages,
guix-command-post-process-environment-ad-hoc): New functions.
(guix-command-post-processors): Add "environment" command with the new
argument processors.
| Alex Kost |
2015-11-12 | emacs: Adjust 'guix container' popup....* emacs/guix-command.el (guix-command-improve-action-argument): Use "C"
key for 'container' action to distinguish it from 'challenge'.
(guix-command-rest-argument): Add positional arguments.
| Alex Kost |
2015-11-12 | emacs: Improve post processing of popup arguments....* emacs/guix-command.el (guix-command-switches,
guix-command-rest-arg-regexp): New variables.
(guix-command-post-processors,
guix-command-post-process-matching-args,
guix-command-post-process-rest-single,
guix-command-post-process-rest-multiple,
guix-command-post-process-rest-multiple-leave,
guix-command-post-process-package-args): New functions.
(guix-command-post-process-rest-multiple): Take 2 arguments.
(guix-command-define-popup-action): Adjust accordingly.
* emacs/guix-utils.el (guix-modify): New function.
| Alex Kost |
2015-11-02 | emacs: Enable 'guix-build-log-minor-mode' in shell buffers....* emacs/guix-build-log.el (guix-build-log-minor-mode-activate): New variable.
(guix-build-log-minor-mode-activate-maybe): New function.
* emacs/guix-init.el: Add it to 'shell-mode-hook'.
* doc/emacs.texi (Emacs Build Log): Mention it.
| Alex Kost |
2015-11-02 | emacs: Enable 'guix-build-log-mode' for build log files....* emacs/guix-build-log.el (auto-mode-alist): Add 'guix-build-log-mode'
to 'auto-mode-alist'.
| Alex Kost |
2015-11-02 | emacs: Add completions for '--type' option of 'refresh' popup....* guix/scripts/refresh.scm: Export '%updaters'.
* emacs/guix-main.scm (refresh-updater-names): New procedure.
* emacs/guix-base.el (guix-refresh-updater-names): New function.
* emacs/guix-read.el (guix-read-refresh-updater-names,
guix-read-refresh-updater-names-string): New functions.
* emacs/guix-command.el (guix-command-improve-refresh-argument): Use
'guix-read-refresh-updater-names-string'.
| Alex Kost |
2015-10-31 | emacs: Disable minor modes in 'guix-build-log-mode'....* emacs/guix-build-log.el (guix-build-log-mode-hook): Remove
'compilation-shell-minor-mode' as it is slow on big buffers, and
'view-mode' as it rebinds too many keys.
(guix-build-log-mode-map): Add "c" and "v" key bindings for the
removed minor modes.
| Alex Kost |
2015-10-31 | emacs: Add key bindings for 'guix-build-log-minor-mode'....* emacs/guix-build-log.el (guix-build-log-mode-map): Move keys to ...
(guix-build-log-common-map): ...here. New variable.
(guix-build-log-minor-mode-map): New variable.
(guix-build-log-minor-mode): Use it.
* doc/emacs.texi (Emacs Build Log): Document it.
| Alex Kost |
2015-10-31 | emacs: Add shell completions for 'guix refresh --type'....* emacs/guix-pcomplete.el (guix-pcomplete-refresh-updaters): New function.
(guix-pcomplete-complete-option-arg): Complete '-t/--type' option for
'guix refresh' command.
| Alex Kost |
2015-10-28 | services: Add 'modify-services'....* gnu/services.scm (%modify-service, modify-services): New macros.
* gnu/services/base.scm (mingetty-service-type, guix-service-type):
Export.
* emacs/guix-devel.el (guix-devel-keywords): Add 'modify-services'.
Ditto in 'guix-devel-scheme-indent' call.
* doc/guix.texi (Using the Configuration System): Give an example of
'modify-services'.
(Service Reference): Document it.
| Ludovic Courtès |