From 2acedfe05412fe15f20229508b9b64df45e69cbd Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Sun, 2 Jun 2024 13:15:13 +0200 Subject: [PATCH] Separate creation and display of Xref results buffer --- lisp/progmodes/xref.el | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 174986e0c58..bab5384574e 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -1085,7 +1085,7 @@ Xref buffers." (xref-make-fetcher backend identifier kind identifier (current-buffer) (point)))) (xref-auto-jump-to-first-xref nil)) - (set-buffer (xref--show-xref-buffer fetcher nil)) + (set-buffer (xref--xref-buffer fetcher nil)) (let ((forward-str (bookmark-get-front-context-string bookmark)) (behind-str (bookmark-get-rear-context-string bookmark))) (when (and forward-str (search-forward forward-str (point-max) t)) @@ -1350,24 +1350,26 @@ this variable to an alist with the following key-value pairs: - (original-point . POS) where POS is the buffer position in which the Xref command that created the fetcher was invoked.") -(defun xref--show-xref-buffer (fetcher alist) - (cl-assert (functionp fetcher)) +(defun xref--xref-buffer (fetcher alist) (let* ((xrefs (or (assoc-default 'fetched-xrefs alist) (setq xref-fetcher-alist nil) (funcall fetcher))) (xref-alist (xref--analyze xrefs)) - (dd default-directory) - buf) + (dd default-directory)) (with-current-buffer (get-buffer-create xref-buffer-name) (xref--ensure-default-directory dd (current-buffer)) (xref--xref-buffer-mode) (xref--show-common-initialize xref-alist fetcher (append xref-fetcher-alist alist)) (setq xref-num-matches-found (length xrefs)) (setq mode-line-process (list xref-mode-line-matches)) - (pop-to-buffer (current-buffer)) - (setq buf (current-buffer))) + (current-buffer)))) + +(defun xref--show-xref-buffer (fetcher alist) + (cl-assert (functionp fetcher)) + (let ((buf (xref--xref-buffer fetcher alist))) + (pop-to-buffer buf) (xref--auto-jump-first buf (assoc-default 'auto-jump alist)) buf)) -- 2.39.2