emacs: Generalize buffer reverting.
This is a partial revert of commit d2b299a91f
.
* emacs/guix-base.el (guix-revert-buffer): Make it more general by
removing the code specific to a particular search (a search for
packages/outputs by ID). Rename to...
(guix-buffer-revert): ... this.
This commit is contained in:
parent
819518d15a
commit
87fe9ecae5
|
@ -235,7 +235,7 @@ If MODES is nil, return list of all Guix 'list' and 'info' buffers."
|
||||||
(defun guix-update-buffer (buffer)
|
(defun guix-update-buffer (buffer)
|
||||||
"Update information in a 'list' or 'info' BUFFER."
|
"Update information in a 'list' or 'info' BUFFER."
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(guix-revert-buffer nil t)))
|
(guix-buffer-revert nil t)))
|
||||||
|
|
||||||
(defun guix-update-buffers-maybe-after-operation ()
|
(defun guix-update-buffers-maybe-after-operation ()
|
||||||
"Update buffers after Guix operation if needed.
|
"Update buffers after Guix operation if needed.
|
||||||
|
@ -447,7 +447,7 @@ If non-nil, ask to confirm for reverting `%S' buffer."
|
||||||
,(concat "Major mode for displaying information about "
|
,(concat "Major mode for displaying information about "
|
||||||
entry-str ".\n\n"
|
entry-str ".\n\n"
|
||||||
"\\{" mode-map-str "}")
|
"\\{" mode-map-str "}")
|
||||||
(setq-local revert-buffer-function 'guix-revert-buffer)
|
(setq-local revert-buffer-function 'guix-buffer-revert)
|
||||||
(setq-local guix-history-size
|
(setq-local guix-history-size
|
||||||
(guix-buffer-history-size
|
(guix-buffer-history-size
|
||||||
',buffer-type ',entry-type))
|
',buffer-type ',entry-type))
|
||||||
|
@ -582,7 +582,7 @@ If NO-DISPLAY is non-nil, do not switch to the buffer."
|
||||||
buffer-type)
|
buffer-type)
|
||||||
entry-type)))))
|
entry-type)))))
|
||||||
|
|
||||||
(defun guix-revert-buffer (_ignore-auto noconfirm)
|
(defun guix-buffer-revert (_ignore-auto noconfirm)
|
||||||
"Update information in the current buffer.
|
"Update information in the current buffer.
|
||||||
The function is suitable for `revert-buffer-function'.
|
The function is suitable for `revert-buffer-function'.
|
||||||
See `revert-buffer' for the meaning of NOCONFIRM."
|
See `revert-buffer' for the meaning of NOCONFIRM."
|
||||||
|
@ -590,31 +590,13 @@ See `revert-buffer' for the meaning of NOCONFIRM."
|
||||||
(guix-buffer-revert-confirm? guix-buffer-type
|
(guix-buffer-revert-confirm? guix-buffer-type
|
||||||
guix-entry-type)
|
guix-entry-type)
|
||||||
(y-or-n-p "Update current information? "))
|
(y-or-n-p "Update current information? "))
|
||||||
(let* ((search-type guix-search-type)
|
(let* ((params (guix-get-params-for-receiving guix-buffer-type
|
||||||
(search-vals guix-search-vals)
|
|
||||||
(params (guix-get-params-for-receiving guix-buffer-type
|
|
||||||
guix-entry-type))
|
guix-entry-type))
|
||||||
(entries (guix-get-entries
|
(entries (guix-get-entries
|
||||||
guix-profile guix-entry-type
|
guix-profile guix-entry-type
|
||||||
guix-search-type guix-search-vals params))
|
guix-search-type guix-search-vals params)))
|
||||||
;; If a REPL was restarted, package/output IDs are not actual
|
|
||||||
;; anymore, because 'object-address'-es died with the REPL, so if a
|
|
||||||
;; search by ID didn't give results, search again by name.
|
|
||||||
(entries (if (and (null entries)
|
|
||||||
(eq guix-search-type 'id)
|
|
||||||
(or (eq guix-entry-type 'package)
|
|
||||||
(eq guix-entry-type 'output)))
|
|
||||||
(progn
|
|
||||||
(setq search-type 'name
|
|
||||||
search-vals
|
|
||||||
(guix-package-entries->name-specifications
|
|
||||||
guix-entries))
|
|
||||||
(guix-get-entries
|
|
||||||
guix-profile guix-entry-type
|
|
||||||
search-type search-vals params))
|
|
||||||
entries)))
|
|
||||||
(guix-set-buffer guix-profile entries guix-buffer-type guix-entry-type
|
(guix-set-buffer guix-profile entries guix-buffer-type guix-entry-type
|
||||||
search-type search-vals t t))))
|
guix-search-type guix-search-vals t t))))
|
||||||
|
|
||||||
(defvar guix-buffer-after-redisplay-hook nil
|
(defvar guix-buffer-after-redisplay-hook nil
|
||||||
"Hook run by `guix-buffer-redisplay'.
|
"Hook run by `guix-buffer-redisplay'.
|
||||||
|
|
Loading…
Reference in New Issue