~ruther/guix-local

690c055b0816608e4bf740d4e931f3810e6ed120 — Alex Kost 10 years ago b4b9975
emacs: Add location "Packages" button to Package Info buffer.

* emacs/guix-ui-package.el (guix-package-info-insert-location): New
procedure.
(guix-package-info-format): Use it.
(guix-output-info-format): Likewise.
1 files changed, 18 insertions(+), 2 deletions(-)

M emacs/guix-ui-package.el
M emacs/guix-ui-package.el => emacs/guix-ui-package.el +18 -2
@@ 223,7 223,7 @@ ENTRIES is a list of package entries to get info about packages."
            ignore
            (outputs simple guix-package-info-insert-outputs)
            (source simple guix-package-info-insert-source)
            (location format (format guix-package-location))
            (location simple guix-package-info-insert-location)
            (home-url format (format guix-url))
            (license format (format guix-package-license))
            (systems format guix-package-info-insert-systems)


@@ 383,6 383,22 @@ formatted with this string, an action button is inserted.")
   'guix-package-heading
   'spec (guix-package-entry->name-specification entry)))

(defun guix-package-info-insert-location (location &optional _)
  "Insert package LOCATION at point."
  (if (null location)
      (guix-format-insert nil)
    (let ((location-file (car (split-string location ":"))))
      (guix-info-insert-value-indent location 'guix-package-location)
      (guix-info-insert-indent)
      (guix-info-insert-action-button
       "Packages"
       (lambda (btn)
         (guix-package-get-display (guix-ui-current-profile)
                                   'location
                                   (button-get btn 'location)))
       (format "Display packages from location '%s'" location-file)
       'location location-file))))

(defun guix-package-info-insert-systems (systems entry)
  "Insert supported package SYSTEMS at point."
  (guix-info-insert-value-format


@@ 798,7 814,7 @@ for all ARGS."
            (source simple guix-package-info-insert-source)
            (path simple (indent guix-file))
            (dependencies simple (indent guix-file))
            (location format (format guix-package-location))
            (location simple guix-package-info-insert-location)
            (home-url format (format guix-url))
            (license format (format guix-package-license))
            (systems format guix-package-info-insert-systems)