diff options
author | Dmitry Gutov <dgutov@yandex.ru> | 2015-11-15 07:00:45 +0200 |
---|---|---|
committer | Dmitry Gutov <dgutov@yandex.ru> | 2015-11-15 07:00:45 +0200 |
commit | a4c6f55b9a222849a1c5d590589b1f8f0627d6f8 (patch) | |
tree | a6066c4b1b629ea09b09532cfa67e734f116cb52 /lisp/progmodes | |
parent | 1a3c4541c3ddf4de0afce339f4ea9bf04c805fa8 (diff) | |
download | emacs-a4c6f55b9a222849a1c5d590589b1f8f0627d6f8.tar.gz |
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.
Diffstat (limited to 'lisp/progmodes')
-rw-r--r-- | lisp/progmodes/elisp-mode.el | 12 | ||||
-rw-r--r-- | lisp/progmodes/etags.el | 9 | ||||
-rw-r--r-- | 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 2c22483e86f..d6e7f837750 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 ae1aa11fbc2..651c824275d 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 40f8d23c64a..69a11bb776b 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. |