branch: elpa/racket-mode
commit 9e8e60531ca90c5fd0f42c0e931f0c7f12103567
Author: Greg Hendershott <g...@greghendershott.com>
Commit: Greg Hendershott <g...@greghendershott.com>

    racket-xp-mode: Improve xref-backend-identifier-at-point method
    
    Use (thing-at-point 'symbol) only as a fallback; prefer the same
    properties that our xref-backend-definitions method uses.
    
    Closes #699, even though not exactly the issue originally reported.
---
 racket-xp.el | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/racket-xp.el b/racket-xp.el
index a2b01a4a3c..caeb2d25e5 100644
--- a/racket-xp.el
+++ b/racket-xp.el
@@ -1030,7 +1030,18 @@ around at the first and last errors."
   'racket-xp-xref)
 
 (cl-defmethod xref-backend-identifier-at-point ((_backend (eql 
racket-xp-xref)))
-  (thing-at-point 'symbol))
+  (or (seq-some (lambda (prop)
+                  (when (get-text-property (point) prop)
+                    (let* ((end (next-single-property-change (point) prop))
+                           (beg (previous-single-property-change end prop)))
+                      (buffer-substring beg end))))
+                ;; Consider same props our xref-backend-definitions
+                ;; method looks for.
+                '(racket-xp-require
+                  racket-xp-visit
+                  racket-xp-use
+                  racket-xp-def))
+      (thing-at-point 'symbol)))
 
 (cl-defmethod xref-backend-identifier-completion-table ((_backend (eql 
racket-xp-xref)))
   (completion-table-dynamic

Reply via email to