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