~ruther/guix-local

5c8994d9d91e79e900083328b565f85e2171e077 — Alex Kost 10 years ago 32950fc
emacs: Use "B" key in "Package List" to display latest builds.

* emacs/guix-ui-package.el (guix-package-list-latest-builds): New
  procedure.
  (guix-package-list-mode-map): Bind "B" key to it.
  (guix-output-list-mode-map): Likewise.
* doc/emacs.texi (Emacs List buffer): Document it.
2 files changed, 17 insertions(+), 0 deletions(-)

M doc/emacs.texi
M emacs/guix-ui-package.el
M doc/emacs.texi => doc/emacs.texi +2 -0
@@ 288,6 288,8 @@ similar to @command{guix edit} command (@pxref{Invoking guix edit}), but
for opening a package recipe in the current Emacs instance.
@item x
Execute actions on the marked packages.
@item B
Display latest builds of the current package (@pxref{Emacs Hydra}).
@end table

A ``generation-list'' buffer additionally provides the following

M emacs/guix-ui-package.el => emacs/guix-ui-package.el +15 -0
@@ 34,6 34,7 @@
(require 'guix-guile)
(require 'guix-entry)
(require 'guix-utils)
(require 'guix-hydra-build)

(guix-ui-define-entry-type package)
(guix-ui-define-entry-type output)


@@ 546,6 547,7 @@ This function is used to hide a \"Download\" button if needed."
           (delete  . ?D)))

(let ((map guix-package-list-mode-map))
  (define-key map (kbd "B")   'guix-package-list-latest-builds)
  (define-key map (kbd "e")   'guix-package-list-edit)
  (define-key map (kbd "x")   'guix-package-list-execute)
  (define-key map (kbd "i")   'guix-package-list-mark-install)


@@ 720,6 722,18 @@ The specification is suitable for `guix-process-package-actions'."
  (interactive)
  (guix-edit (guix-list-current-id)))

(defun guix-package-list-latest-builds (number &rest args)
  "Display latest NUMBER of Hydra builds of the current package.
Interactively, prompt for NUMBER.  With prefix argument, prompt
for all ARGS."
  (interactive
   (let ((entry (guix-list-current-entry)))
     (guix-hydra-build-latest-prompt-args
      :job (guix-package-name-specification
            (guix-entry-value entry 'name)
            (guix-entry-value entry 'version)))))
  (apply #'guix-hydra-latest-builds number args))


;;; Output 'info'



@@ 784,6 798,7 @@ The specification is suitable for `guix-process-package-actions'."
           (delete  . ?D)))

(let ((map guix-output-list-mode-map))
  (define-key map (kbd "B")   'guix-package-list-latest-builds)
  (define-key map (kbd "e")   'guix-output-list-edit)
  (define-key map (kbd "x")   'guix-output-list-execute)
  (define-key map (kbd "i")   'guix-output-list-mark-install)