diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index bb36688ef8..2d73ab82b8 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -1243,10 +1243,14 @@ xref-show-definitions-buffer-at-bottom (xref-pop-to-location (car xrefs) (assoc-default 'display-action alist))) (t + ;; xref--analyze uses (project-current), so it must be done in + ;; the original buffer. + (setq xrefs (xref--analyze xrefs)) + (with-current-buffer (get-buffer-create xref-buffer-name) (xref--ensure-default-directory dd (current-buffer)) (xref--transient-buffer-mode) - (xref--show-common-initialize (xref--analyze xrefs) fetcher alist) + (xref--show-common-initialize xrefs fetcher alist) (pop-to-buffer (current-buffer) `(display-buffer-in-direction . ((direction . below) (window-height . ,size-fun))))