Use 'revert-function' in *xref* buffer

* lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Cease
binding 'g' to 'xref-revert-buffer'.
(xref--xref-buffer-mode): Set 'revert-buffer-function' to...
(xref--revert-buffer): ...this.  New function, renamed from...
(xref-revert-buffer): ...this.  Make it an alias of
'revert-buffer'.
* etc/NEWS: Announce it.
* doc/emacs/maintaining.texi (Xref Commands): Update docs.
This commit is contained in:
Eshel Yaron 2024-06-26 18:51:32 +02:00
parent 860840621a
commit 82125b1a66
No known key found for this signature in database
GPG key ID: EF3EE9CA35D78618
3 changed files with 17 additions and 13 deletions

View file

@ -2466,10 +2466,10 @@ the match with @var{replacement}. This command can only be used in
@file{*xref*} buffers that show all the matches for an identifier in @file{*xref*} buffers that show all the matches for an identifier in
all the relevant files. @xref{Identifier Search}. all the relevant files. @xref{Identifier Search}.
@cindex revert-buffer, in @file{*xref*} buffers
@item g @item g
@findex xref-revert-buffer Refresh the contents of the @file{*xref*} buffer (@code{revert-buffer}).
Refresh the contents of the @file{*xref*} buffer @xref{Reverting}.
(@code{xref-revert-buffer}).
@item M-, @item M-,
@findex xref-quit-and-pop-marker-stack @findex xref-quit-and-pop-marker-stack

View file

@ -1916,6 +1916,13 @@ the 'widget-inactive' face).
If non-nil, moving point forward or backward between widgets by typing If non-nil, moving point forward or backward between widgets by typing
'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil. 'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil.
** Xref
*** 'xref-revert-buffer' is now an alias of 'revert-buffer'.
The Xref buffer now sets up 'revert-buffer-function' such that
'revert-buffer' behaves like 'xref-revert-buffer' did in previous Emacs
versions, and the latter is now an alias of the former.
** Ruby mode ** Ruby mode
*** New user option 'ruby-rubocop-use-bundler'. *** New user option 'ruby-rubocop-use-bundler'.

View file

@ -993,7 +993,6 @@ point."
;; suggested by Johan Claesson "to further reduce finger movement": ;; suggested by Johan Claesson "to further reduce finger movement":
(define-key map (kbd ".") #'xref-next-line) (define-key map (kbd ".") #'xref-next-line)
(define-key map (kbd ",") #'xref-prev-line) (define-key map (kbd ",") #'xref-prev-line)
(define-key map (kbd "g") #'xref-revert-buffer)
(define-key map (kbd "M-,") #'xref-quit-and-pop-marker-stack) (define-key map (kbd "M-,") #'xref-quit-and-pop-marker-stack)
map)) map))
@ -1011,6 +1010,7 @@ point."
#'xref--imenu-extract-index-name) #'xref--imenu-extract-index-name)
(setq-local add-log-current-defun-function (setq-local add-log-current-defun-function
#'xref--add-log-current-defun) #'xref--add-log-current-defun)
(setq-local revert-buffer-function #'xref--revert-buffer)
(setq-local outline-minor-mode-cycle t) (setq-local outline-minor-mode-cycle t)
(setq-local outline-minor-mode-use-buttons 'insert) (setq-local outline-minor-mode-use-buttons 'insert)
(setq-local outline-search-function (setq-local outline-search-function
@ -1273,22 +1273,16 @@ Return an alist of the form ((GROUP . (XREF ...)) ...)."
xref--original-window-intent (assoc-default 'display-action alist)) xref--original-window-intent (assoc-default 'display-action alist))
(setq xref--fetcher fetcher))) (setq xref--fetcher fetcher)))
(defun xref-revert-buffer () (defun xref--revert-buffer (&rest _) ; Ignore `revert-buffer' args.
"Refresh the search results in the current buffer." "Refresh the search results in the current buffer."
(interactive)
(let ((inhibit-read-only t) (let ((inhibit-read-only t)
(buffer-undo-list t) (buffer-undo-list t))
restore-functions)
(when (boundp 'revert-buffer-restore-functions)
(run-hook-wrapped 'revert-buffer-restore-functions
(lambda (f) (push (funcall f) restore-functions) nil)))
(save-excursion (save-excursion
(condition-case err (condition-case err
(let ((alist (xref--analyze (funcall xref--fetcher))) (let ((alist (xref--analyze (funcall xref--fetcher)))
(inhibit-modification-hooks t)) (inhibit-modification-hooks t))
(erase-buffer) (erase-buffer)
(prog1 (xref--insert-xrefs alist) (xref--insert-xrefs alist))
(mapc #'funcall (delq nil restore-functions))))
(user-error (user-error
(erase-buffer) (erase-buffer)
(insert (insert
@ -1296,6 +1290,9 @@ Return an alist of the form ((GROUP . (XREF ...)) ...)."
(error-message-string err) (error-message-string err)
'face 'error))))))) 'face 'error)))))))
;;; FIXME: Make this alias obsolete in future release.
(defalias 'xref-revert-buffer #'revert-buffer)
(defun xref--auto-jump-first (buf value) (defun xref--auto-jump-first (buf value)
(when value (when value
(select-window (get-buffer-window buf)) (select-window (get-buffer-window buf))