2014-09-28 | emacs: Support font-locking....Avoid breaking highlighting after adding new font-lock keywords.
* emacs/guix-base.el (guix-insert-package-strings): Use 'propertize' instead
of 'guix-get-string'.
* emacs/guix-info.el (guix, guix-action, guix-file, guix-url,
guix-package-location, guix-package-name): New button types.
(guix-info-insert-action-button, guix-info-insert-file-path,
guix-info-insert-url, guix-package-info-insert-location,
guix-package-info-insert-full-names,
guix-package-info-insert-non-unique-text): Adjust for 'guix-insert-button'
and button types.
(guix-package-info-name-button): New face.
(guix-package-info-define-insert-inputs): Use it. Add new button types.
(guix-package-info-insert-full-name): Remove.
* emacs/guix-utils.el (guix-get-string): Replace 'face' with 'font-lock-face'.
(guix-insert-button): Adjust for using button types.
| Alex Kost |
2014-09-24 | emacs: Add support for displaying outputs....Suggested by Taylan Ulrich Bayirli/Kammer and Ludovic Courtès.
* emacs/guix-base.el (guix-param-titles): Add output titles.
(guix-messages): Add output messages.
(guix-get-package-id-and-output-by-output-id): New procedure.
(guix-define-buffer-type): Add ':buffer-name' key.
* emacs/guix-info.el: Add "output-info" buffer type.
(guix-info-insert-methods): Add output methods.
(guix-info-displayed-params): Add output params.
(guix-output-info-insert-version, guix-output-info-insert-output): New
procedures.
* emacs/guix-list.el: Add "output-list" buffer type.
(guix-list-column-format): Add output formats.
(guix-list-column-value-methods): Add output methods.
(guix-package-list-type): New variable.
(guix-generation-list-show-packages): Use it.
(guix-package-list-marking-check): Use 'guix-output-list-mode'.
(guix-list-mark-package-upgrades): New procedure.
(guix-package-list-mark-upgrades): Use it.
(guix-list-execute-package-actions): New procedure.
(guix-package-list-execute): Use it.
(guix-list-describe-maybe): New procedure.
(guix-list-describe): Use it.
(guix-output-list-mark-install, guix-output-list-mark-delete,
guix-output-list-mark-upgrade, guix-output-list-mark-upgrades,
guix-output-list-execute, guix-output-list-make-action,
guix-output-list-describe): New procedures.
(guix-output-list-describe-type): New variable.
* emacs/guix.el (guix-get-show-packages): Use 'guix-package-list-type'.
* doc/emacs.texi (emacs Commands): Mention 'guix-package-list-type'.
(emacs List buffer): Adjust accordingly.
(emacs Info buffer): Likewise.
(emacs Buffer Names): New node.
(emacs Keymaps): Add keymaps for output buffers.
| Alex Kost |
2014-09-24 | emacs: Rewrite scheme side in a functional manner....* emacs/guix-main.scm: Rewrite in a functional way. Add support for output
entries.
(%current-manifest, %current-manifest-entries-table,
set-current-manifest-maybe!): Replace with...
(manifest-entries->hash-table, manifest->hash-table): ... this.
(manifest-entries-by-name+version): Replace with...
(manifest-entries-by-name): ... this.
(fold-manifest-entries): Rename to...
(fold-manifest-by-name): ... this.
(package-installed-param-alist): Rename to...
(%manifest-entry-param-alist): ... this.
(package-param-alist): Rename to...
(%package-param-alist): this.
(manifest-entry->installed-entry): Rename to...
(manifest-entry->sexp): ... this.
(manifest-entries->installed-entries): Rename to...
(manifest-entries->sexps): ... this.
(matching-generation-entries): Replace with...
(matching-generations): ... this.
(last-generation-entries): Replace with...
(last-generations): ... this.
(get-entries): Rename to...
(entries): ... this.
(installed-entries-by-name+version, installed-entries-by-package,
matching-package-entries, fold-object, package-entries-by-name+version,
package-entries-by-spec, package-entries-by-regexp, package-entries-by-ids,
newest-available-package-entries, all-available-package-entries,
manifest-package-entries, installed-package-entries,
generation-package-entries, obsolete-package-entries,
all-generation-entries, generation-entries-by-ids, profile-generations,
%package-entries-functions, %generation-entries-functions): Remove.
(manifest=?, manifest-entry->name+version+output, manifest-entry-by-output,
list-maybe, matching-packages, filter-packages-by-output, packages-by-name,
manifest-entry->packages, all-available-packages, newest-available-packages,
specification->package-pattern, specification->output-pattern,
id->package-pattern, id->output-pattern, specifications->package-patterns,
specifications->output-patterns, ids->package-patterns,
ids->output-patterns, manifest-patterns-result, obsolete-package-patterns,
obsolete-output-patterns, manifest-package-patterns,
manifest-output-patterns, obsolete-package-sexp,
package-pattern-transformer, output-pattern-transformer, entry-type-error,
search-type-error, pattern-transformer, patterns-maker,
package/output-sexps, find-generations, generation-sexps): New procedures.
(%pattern-transformers, %patterns-makers): New variables.
* emacs/guix-base.el (guix-continue-package-operation-p): Adjust accordingly.
* emacs/guix-info.el (guix-package-info-insert-action-button): Likewise.
| Alex Kost |