mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
emacs: Use package/output type variables where needed.
* emacs/guix-list.el (guix-package-list-type, guix-output-list-describe-type): Move to... * emacs/guix-base.el: ... here. Rename 'guix-output-list-describe-type' to 'guix-package-info-type'. * emacs/guix-info.el (guix-generation-info-insert-number): Use 'guix-package-list-type'. * emacs/guix.el (guix-get-show-packages): Use 'guix-package-info-type'.
This commit is contained in:
parent
2e269860c4
commit
3472bb20c5
4 changed files with 31 additions and 37 deletions
|
@ -342,7 +342,25 @@ following keywords are available:
|
||||||
(put 'guix-define-buffer-type 'lisp-indent-function 'defun)
|
(put 'guix-define-buffer-type 'lisp-indent-function 'defun)
|
||||||
|
|
||||||
|
|
||||||
;;; Getting info about packages and generations
|
;;; Getting and displaying info about packages and generations
|
||||||
|
|
||||||
|
(defcustom guix-package-list-type 'output
|
||||||
|
"Define how to display packages in a list buffer.
|
||||||
|
May be a symbol `package' or `output' (if `output', display each
|
||||||
|
output on a separate line; if `package', display each package on
|
||||||
|
a separate line)."
|
||||||
|
:type '(choice (const :tag "List of packages" package)
|
||||||
|
(const :tag "List of outputs" output))
|
||||||
|
:group 'guix)
|
||||||
|
|
||||||
|
(defcustom guix-package-info-type 'package
|
||||||
|
"Define how to display packages in an info buffer.
|
||||||
|
May be a symbol `package' or `output' (if `output', display each
|
||||||
|
output separately; if `package', display outputs inside a package
|
||||||
|
information)."
|
||||||
|
:type '(choice (const :tag "Display packages" package)
|
||||||
|
(const :tag "Display outputs" output))
|
||||||
|
:group 'guix)
|
||||||
|
|
||||||
(defun guix-get-entries (entry-type search-type search-vals
|
(defun guix-get-entries (entry-type search-type search-vals
|
||||||
&optional params)
|
&optional params)
|
||||||
|
|
|
@ -620,7 +620,7 @@ ENTRY is an alist with package info."
|
||||||
(guix-info-insert-action-button
|
(guix-info-insert-action-button
|
||||||
"Packages"
|
"Packages"
|
||||||
(lambda (btn)
|
(lambda (btn)
|
||||||
(guix-get-show-entries 'list 'package 'generation
|
(guix-get-show-entries 'list guix-package-list-type 'generation
|
||||||
(button-get btn 'number)))
|
(button-get btn 'number)))
|
||||||
"Show installed packages for this generation"
|
"Show installed packages for this generation"
|
||||||
'number number)
|
'number number)
|
||||||
|
|
|
@ -469,15 +469,6 @@ With prefix (if ARG is non-nil), describe entries marked with any mark."
|
||||||
"Face used if a package is obsolete."
|
"Face used if a package is obsolete."
|
||||||
:group 'guix-package-list)
|
:group 'guix-package-list)
|
||||||
|
|
||||||
(defcustom guix-package-list-type 'output
|
|
||||||
"Define how to display packages in a list buffer.
|
|
||||||
May be a symbol `package' or `output' (if `output', display each
|
|
||||||
output on a separate line; if `package', display each package on
|
|
||||||
a separate line)."
|
|
||||||
:type '(choice (const :tag "List of packages" package)
|
|
||||||
(const :tag "List of outputs" output))
|
|
||||||
:group 'guix-package-list)
|
|
||||||
|
|
||||||
(defcustom guix-package-list-generation-marking-enabled nil
|
(defcustom guix-package-list-generation-marking-enabled nil
|
||||||
"If non-nil, allow putting marks in a list with 'generation packages'.
|
"If non-nil, allow putting marks in a list with 'generation packages'.
|
||||||
|
|
||||||
|
@ -648,15 +639,6 @@ The specification is suitable for `guix-process-package-actions'."
|
||||||
(upgrade . ?U)
|
(upgrade . ?U)
|
||||||
(delete . ?D)))
|
(delete . ?D)))
|
||||||
|
|
||||||
(defcustom guix-output-list-describe-type 'package
|
|
||||||
"Define how to describe outputs in a list buffer.
|
|
||||||
May be a symbol `package' or `output' (if `output', describe only
|
|
||||||
marked outputs; if `package', describe all outputs of the marked
|
|
||||||
packages)."
|
|
||||||
:type '(choice (const :tag "Describe packages" package)
|
|
||||||
(const :tag "Describe outputs" output))
|
|
||||||
:group 'guix-output-list)
|
|
||||||
|
|
||||||
(let ((map guix-output-list-mode-map))
|
(let ((map guix-output-list-mode-map))
|
||||||
(define-key map (kbd "RET") 'guix-output-list-describe)
|
(define-key map (kbd "RET") 'guix-output-list-describe)
|
||||||
(define-key map (kbd "x") 'guix-output-list-execute)
|
(define-key map (kbd "x") 'guix-output-list-execute)
|
||||||
|
@ -721,9 +703,9 @@ The specification is suitable for `guix-process-output-actions'."
|
||||||
"Describe outputs or packages marked with a general mark.
|
"Describe outputs or packages marked with a general mark.
|
||||||
If no entries are marked, describe the current output or package.
|
If no entries are marked, describe the current output or package.
|
||||||
With prefix (if ARG is non-nil), describe entries marked with any mark.
|
With prefix (if ARG is non-nil), describe entries marked with any mark.
|
||||||
Also see `guix-output-list-describe-type'."
|
Also see `guix-package-info-type'."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(if (eq guix-output-list-describe-type 'output)
|
(if (eq guix-package-info-type 'output)
|
||||||
(guix-list-describe arg)
|
(guix-list-describe arg)
|
||||||
(let* ((oids (or (apply #'guix-list-get-marked-id-list
|
(let* ((oids (or (apply #'guix-list-get-marked-id-list
|
||||||
(unless arg '(general)))
|
(unless arg '(general)))
|
||||||
|
|
|
@ -57,25 +57,19 @@ SEARCH-VALS.
|
||||||
|
|
||||||
Results are displayed in the list buffer, unless a single package
|
Results are displayed in the list buffer, unless a single package
|
||||||
is found and `guix-list-single-package' is nil."
|
is found and `guix-list-single-package' is nil."
|
||||||
(let* ((list-params (guix-get-params-for-receiving
|
(let ((packages (guix-get-entries guix-package-list-type
|
||||||
'list guix-package-list-type))
|
search-type search-vals
|
||||||
(packages (guix-get-entries guix-package-list-type
|
(guix-get-params-for-receiving
|
||||||
search-type search-vals
|
'list guix-package-list-type))))
|
||||||
list-params)))
|
|
||||||
(if (or guix-list-single-package
|
(if (or guix-list-single-package
|
||||||
(cdr packages))
|
(cdr packages))
|
||||||
(guix-set-buffer packages 'list guix-package-list-type
|
(guix-set-buffer packages 'list guix-package-list-type
|
||||||
search-type search-vals)
|
search-type search-vals)
|
||||||
(let* ((info-params (guix-get-params-for-receiving
|
(let ((packages (guix-get-entries guix-package-info-type
|
||||||
'info guix-package-list-type))
|
search-type search-vals
|
||||||
(packages (if (equal list-params info-params)
|
(guix-get-params-for-receiving
|
||||||
packages
|
'info guix-package-info-type))))
|
||||||
;; If we don't have required info, we should
|
(guix-set-buffer packages 'info guix-package-info-type
|
||||||
;; receive it again
|
|
||||||
(guix-get-entries guix-package-list-type
|
|
||||||
search-type search-vals
|
|
||||||
info-params))))
|
|
||||||
(guix-set-buffer packages 'info guix-package-list-type
|
|
||||||
search-type search-vals)))))
|
search-type search-vals)))))
|
||||||
|
|
||||||
(defun guix-get-show-generations (search-type &rest search-vals)
|
(defun guix-get-show-generations (search-type &rest search-vals)
|
||||||
|
|
Loading…
Reference in a new issue