diff options
Diffstat (limited to 'emacs/guix-ui-license.el')
-rw-r--r-- | emacs/guix-ui-license.el | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/emacs/guix-ui-license.el b/emacs/guix-ui-license.el index ab1d25bfd2..cf1b5cd357 100644 --- a/emacs/guix-ui-license.el +++ b/emacs/guix-ui-license.el @@ -29,6 +29,7 @@ (require 'guix-info) (require 'guix-backend) (require 'guix-guile) +(require 'guix-license) (guix-define-entry-type license) @@ -64,7 +65,9 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." ignore guix-license-insert-packages-button (url ignore (simple guix-url)) - guix-license-insert-comment) + guix-license-insert-comment + ignore + guix-license-insert-file) :titles '((url . "URL"))) (declare-function guix-packages-by-license "guix-ui-package") @@ -89,6 +92,16 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (guix-info-param-title 'license 'comment)) (guix-info-insert-value-indent comment)))) +(defun guix-license-insert-file (entry) + "Insert button to open license definition." + (let ((license (guix-entry-value entry 'name))) + (guix-insert-button + (guix-license-file) 'guix-file + 'help-echo (format "Open definition of license '%s'" license) + 'action (lambda (btn) + (guix-find-license-definition (button-get btn 'license))) + 'license license))) + ;;; License 'list' @@ -103,6 +116,7 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." :sort-key '(name)) (let ((map guix-license-list-mode-map)) + (define-key map (kbd "e") 'guix-license-list-edit) (define-key map (kbd "RET") 'guix-license-list-show-packages)) (defun guix-license-list-describe (ids) @@ -116,6 +130,12 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (interactive) (guix-packages-by-license (guix-list-current-id))) +(defun guix-license-list-edit (&optional directory) + "Go to the location of the current license definition. +See `guix-license-file' for the meaning of DIRECTORY." + (interactive (list (guix-read-directory))) + (guix-find-license-definition (guix-list-current-id) directory)) + ;;; Interactive commands |