[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65578: Eglot with mouse
From: |
Juri Linkov |
Subject: |
bug#65578: Eglot with mouse |
Date: |
Mon, 28 Aug 2023 10:13:58 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
X-Debbugs-CC: João Távora <joaotavora@gmail.com>
0. emacs -Q
1. enable context-menu-mode
2. enable eglot in a suitable buffer
3. move point to one identifier
4. click the right mouse button on another identifier
5. in the context menu click "Find Definition"
The problem is that a wrong identifier is visited.
Whereas 'xref-find-definitions-at-mouse' takes care
about getting the right identifier at the clicked position,
Eglot returns a fictitious identifier "LSP identifier at point"
that can't be used to find the identifier at the mouse click.
xref-find-definitions-at-mouse uses save-excursion with
mouse-set-point before calling xref-backend-identifier-at-point.
But the same save-excursion with mouse-set-point can't be added
around xref-find-definitions because save-excursion will restore
the original position after visiting the found identifier.
Also tried to add xref-find-definitions-at-mouse to the list
xref-prompt-for-identifier, no effect.
Then tried to remove '(xref--prompt-p this-command)'
from 'xref-backend-identifier-at-point ((_backend (eql eglot)))'.
This fixed xref-find-definitions-at-mouse, but still
doesn't work for xref-find-references-at-mouse.
Also removing '(xref--prompt-p this-command)' has such a strange effect
that it started to find approximate fuzzy matches that sound like
the original identifier.
- bug#65578: Eglot with mouse,
Juri Linkov <=