emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-25 a4c6f55: Unify the absolutely equal xref-backend-


From: Dmitry Gutov
Subject: [Emacs-diffs] emacs-25 a4c6f55: Unify the absolutely equal xref-backend-references implementations
Date: Sun, 15 Nov 2015 05:00:53 +0000

branch: emacs-25
commit a4c6f55b9a222849a1c5d590589b1f8f0627d6f8
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    Unify the absolutely equal xref-backend-references implementations
    
    * lisp/progmodes/elisp-mode.el (xref-backend-references):
    Remove.
    
    * lisp/progmodes/etags.el (xref-backend-references):
    Remove.
    
    * lisp/progmodes/xref.el (xref-backend-references):
    Define the default implementation.
---
 lisp/progmodes/elisp-mode.el |   12 ------------
 lisp/progmodes/etags.el      |    9 ---------
 lisp/progmodes/xref.el       |   14 ++++++++++++--
 3 files changed, 12 insertions(+), 23 deletions(-)

diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 2c22483..d6e7f83 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -795,18 +795,6 @@ non-nil result supercedes the xrefs produced by
     xrefs))
 
 (declare-function project-library-roots "project")
-(declare-function project-roots "project")
-(declare-function project-current "project")
-
-(cl-defmethod xref-backend-references ((_backend (eql elisp)) symbol)
-  "Find all references to SYMBOL (a string) in the current project."
-  (cl-mapcan
-   (lambda (dir)
-     (xref-collect-references symbol dir))
-   (let ((pr (project-current t)))
-     (append
-      (project-roots pr)
-      (project-library-roots pr)))))
 
 (cl-defmethod xref-backend-apropos ((_backend (eql elisp)) regexp)
   (apply #'nconc
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index ae1aa11..651c824 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -2089,15 +2089,6 @@ for \\[find-tag] (which see)."
 (cl-defmethod xref-backend-identifier-completion-table ((_backend (eql etags)))
   (tags-lazy-completion-table))
 
-(cl-defmethod xref-backend-references ((_backend (eql etags)) symbol)
-  (cl-mapcan
-   (lambda (dir)
-     (xref-collect-references symbol dir))
-   (let ((pr (project-current t)))
-     (append
-      (project-roots pr)
-      (project-library-roots pr)))))
-
 (cl-defmethod xref-backend-definitions ((_backend (eql etags)) symbol)
   (etags--xref-find-definitions symbol))
 
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 40f8d23..69a11bb 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -231,10 +231,20 @@ IDENTIFIER can be any string returned by
 
 To create an xref object, call `xref-make'.")
 
-(cl-defgeneric xref-backend-references (backend identifier)
+(cl-defgeneric xref-backend-references (_backend identifier)
   "Find references of IDENTIFIER.
 The result must be a list of xref objects.  If no references can
-be found, return nil.")
+be found, return nil.
+
+The default implementation performs a Grep symbol-search inside
+the current project."
+  (cl-mapcan
+   (lambda (dir)
+     (xref-collect-references identifier dir))
+   (let ((pr (project-current t)))
+     (append
+      (project-roots pr)
+      (project-library-roots pr)))))
 
 (cl-defgeneric xref-backend-apropos (backend pattern)
   "Find all symbols that match PATTERN.



reply via email to

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