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
(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))
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.