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.
This commit is contained in:
parent
cf910ceffc
commit
25d2fe8bef
|
@ -234,14 +234,6 @@ VAL may be nil."
|
||||||
"Return alist of the current entry info."
|
"Return alist of the current entry info."
|
||||||
(guix-entry-by-id (guix-list-current-id) guix-entries))
|
(guix-entry-by-id (guix-list-current-id) guix-entries))
|
||||||
|
|
||||||
(defun guix-list-current-package-id ()
|
|
||||||
"Return ID of the current package."
|
|
||||||
(cl-ecase major-mode
|
|
||||||
(guix-package-list-mode
|
|
||||||
(guix-list-current-id))
|
|
||||||
(guix-output-list-mode
|
|
||||||
(guix-entry-value (guix-list-current-entry) 'package-id))))
|
|
||||||
|
|
||||||
(defun guix-list-for-each-line (fun &rest args)
|
(defun guix-list-for-each-line (fun &rest args)
|
||||||
"Call FUN with ARGS for each entry line."
|
"Call FUN with ARGS for each entry line."
|
||||||
(or (derived-mode-p 'guix-list-mode)
|
(or (derived-mode-p 'guix-list-mode)
|
||||||
|
@ -530,11 +522,6 @@ See also `guix-list-describe'."
|
||||||
|
|
||||||
(put 'guix-list-define-entry-type 'lisp-indent-function 'defun)
|
(put 'guix-list-define-entry-type 'lisp-indent-function 'defun)
|
||||||
|
|
||||||
(defun guix-list-edit-package ()
|
|
||||||
"Go to the location of the current package."
|
|
||||||
(interactive)
|
|
||||||
(guix-edit (guix-list-current-package-id)))
|
|
||||||
|
|
||||||
|
|
||||||
;;; Displaying packages
|
;;; Displaying packages
|
||||||
|
|
||||||
|
@ -579,7 +566,7 @@ likely)."
|
||||||
:group 'guix-package-list)
|
:group 'guix-package-list)
|
||||||
|
|
||||||
(let ((map guix-package-list-mode-map))
|
(let ((map guix-package-list-mode-map))
|
||||||
(define-key map (kbd "e") 'guix-list-edit-package)
|
(define-key map (kbd "e") 'guix-package-list-edit)
|
||||||
(define-key map (kbd "x") 'guix-package-list-execute)
|
(define-key map (kbd "x") 'guix-package-list-execute)
|
||||||
(define-key map (kbd "i") 'guix-package-list-mark-install)
|
(define-key map (kbd "i") 'guix-package-list-mark-install)
|
||||||
(define-key map (kbd "d") 'guix-package-list-mark-delete)
|
(define-key map (kbd "d") 'guix-package-list-mark-delete)
|
||||||
|
@ -722,6 +709,11 @@ The specification is suitable for `guix-process-package-actions'."
|
||||||
(let ((specs (guix-list-get-marked-args action-type)))
|
(let ((specs (guix-list-get-marked-args action-type)))
|
||||||
(and specs (cons action-type specs))))
|
(and specs (cons action-type specs))))
|
||||||
|
|
||||||
|
(defun guix-package-list-edit ()
|
||||||
|
"Go to the location of the current package."
|
||||||
|
(interactive)
|
||||||
|
(guix-edit (guix-list-current-id)))
|
||||||
|
|
||||||
|
|
||||||
;;; Displaying outputs
|
;;; Displaying outputs
|
||||||
|
|
||||||
|
@ -742,7 +734,7 @@ The specification is suitable for `guix-process-package-actions'."
|
||||||
(delete . ?D)))
|
(delete . ?D)))
|
||||||
|
|
||||||
(let ((map guix-output-list-mode-map))
|
(let ((map guix-output-list-mode-map))
|
||||||
(define-key map (kbd "e") 'guix-list-edit-package)
|
(define-key map (kbd "e") 'guix-output-list-edit)
|
||||||
(define-key map (kbd "x") 'guix-output-list-execute)
|
(define-key map (kbd "x") 'guix-output-list-execute)
|
||||||
(define-key map (kbd "i") 'guix-output-list-mark-install)
|
(define-key map (kbd "i") 'guix-output-list-mark-install)
|
||||||
(define-key map (kbd "d") 'guix-output-list-mark-delete)
|
(define-key map (kbd "d") 'guix-output-list-mark-delete)
|
||||||
|
@ -815,6 +807,12 @@ See `guix-package-info-type'."
|
||||||
guix-profile 'info 'package 'id
|
guix-profile 'info 'package 'id
|
||||||
(cl-remove-duplicates pids)))))
|
(cl-remove-duplicates pids)))))
|
||||||
|
|
||||||
|
(defun guix-output-list-edit ()
|
||||||
|
"Go to the location of the current package."
|
||||||
|
(interactive)
|
||||||
|
(guix-edit (guix-entry-value (guix-list-current-entry)
|
||||||
|
'package-id)))
|
||||||
|
|
||||||
|
|
||||||
;;; Displaying generations
|
;;; Displaying generations
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue