emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master ad529831018: Make xref-find-references work in Help buffers outsi


From: Dmitry Gutov
Subject: master ad529831018: Make xref-find-references work in Help buffers outside of projects
Date: Wed, 2 Oct 2024 21:24:38 -0400 (EDT)

branch: master
commit ad529831018555b4c693844bc3b18766eb78465a
Author: Dmitry Gutov <dmitry@gutov.dev>
Commit: Dmitry Gutov <dmitry@gutov.dev>

    Make xref-find-references work in Help buffers outside of projects
    
    * lisp/help-fns.el (xref-backend-references):
    New context-dependent override.  Don't call project-current and
    use elisp-load-path-roots directly (bug#69462).
    (help-fns--setup-xref-backend): No need to set
    project-vc-external-roots-function then.
---
 lisp/help-fns.el | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index c7667cb2dd7..40e589b3e0a 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -262,9 +262,21 @@ interactive command."
                   fn))
     (list fn)))
 
+(declare-function project-combine-directories "project" (&rest lists))
+
+(cl-defmethod xref-backend-references ((_backend (eql 'elisp)) identifier
+                                       &context (major-mode help-mode))
+  (mapcan
+   (lambda (dir)
+     (message "Searching %s..." dir)
+     (redisplay)
+     (prog1
+         (xref-references-in-directory identifier dir)
+       (message "Searching %s... done" dir)))
+   (project-combine-directories (elisp-load-path-roots))))
+
 (defun help-fns--setup-xref-backend ()
   (add-hook 'xref-backend-functions #'elisp--xref-backend nil t)
-  (setq-local project-vc-external-roots-function #'elisp-load-path-roots)
   (setq-local semantic-symref-filepattern-alist '((help-mode "*.el"))))
 
 ;;;###autoload



reply via email to

[Prev in Thread] Current Thread [Next in Thread]