[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/javaimp b2331ee38b: Implement xref-backend-apropos
From: |
Filipp Gunbin |
Subject: |
[elpa] externals/javaimp b2331ee38b: Implement xref-backend-apropos |
Date: |
Tue, 10 May 2022 13:46:00 -0400 (EDT) |
branch: externals/javaimp
commit b2331ee38b2d9bc4c7f26a09745d0147dcac0eb0
Author: Filipp Gunbin <fgunbin@fastmail.fm>
Commit: Filipp Gunbin <fgunbin@fastmail.fm>
Implement xref-backend-apropos
---
javaimp.el | 40 +++++++++++++++++++++++++---------------
1 file changed, 25 insertions(+), 15 deletions(-)
diff --git a/javaimp.el b/javaimp.el
index 46ab4228f8..03cc31e24c 100644
--- a/javaimp.el
+++ b/javaimp.el
@@ -862,7 +862,7 @@ in a major mode hook."
(defun javaimp-xref--backend () 'javaimp)
-(defun javaimp-xref--module-completion-table ()
+(defun javaimp-xref--ident-completion-table ()
(if-let ((module (javaimp--detect-module)))
(nconc
(javaimp--collect-module-dep-jars-with-source-idents module)
@@ -871,23 +871,33 @@ in a major mode hook."
(javaimp--get-current-source-dir) "current source")))
(cl-defmethod xref-backend-identifier-completion-table ((_backend (eql
'javaimp)))
- (javaimp-xref--module-completion-table))
+ (javaimp-xref--ident-completion-table))
+
+(defun javaimp-xref--ident-definition (ident)
+ (let* ((file (get-text-property 0 'file ident))
+ (buf (get-file-buffer file))
+ (loc (if buf
+ (xref-make-buffer-location
+ buf (get-text-property 0 'pos ident))
+ (xref-make-file-location
+ file
+ (get-text-property 0 'line ident)
+ (get-text-property 0 'column ident)))))
+ (xref-make ident loc)))
(cl-defmethod xref-backend-definitions ((_backend (eql 'javaimp)) identifier)
- (let* ((comp-table (javaimp-xref--module-completion-table))
+ (let* ((comp-table (javaimp-xref--ident-completion-table))
(identifiers (all-completions identifier comp-table)))
- (mapcar (lambda (ident)
- (let* ((file (get-text-property 0 'file ident))
- (buf (get-file-buffer file))
- (loc (if buf
- (xref-make-buffer-location
- buf (get-text-property 0 'pos ident))
- (xref-make-file-location
- file
- (get-text-property 0 'line ident)
- (get-text-property 0 'column ident)))))
- (xref-make ident loc)))
- identifiers)))
+ (mapcar #'javaimp-xref--ident-definition identifiers)))
+
+(cl-defmethod xref-backend-apropos ((_backend (eql 'javaimp)) pattern)
+ (let* ((comp-table (javaimp-xref--ident-completion-table))
+ (identifiers (seq-filter
+ (apply-partially #'string-match
+ (xref-apropos-regexp pattern))
+ comp-table)))
+ (mapcar #'javaimp-xref--ident-definition
+ (sort identifiers #'string-lessp))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/javaimp b2331ee38b: Implement xref-backend-apropos,
Filipp Gunbin <=