[ty] Added support for "document highlights" language server feature. by UnboundVariable · Pull Request #19515 · astral-sh/ruff (original) (raw)
UnboundVariable added 3 commits
UnboundVariable pushed a commit to UnboundVariable/ruff that referenced this pull request
- main:
[ty] Added support for "document highlights" language server feature. (astral-sh#19515)
Add support for specifying minimum dots in detected string imports (astral-sh#19538)
[ty] Minor: fix incomplete docstring (astral-sh#19534)
[ty] Move server tests as integration tests (astral-sh#19522)
[
ruff] Offer fixes forRUF039in more cases (astral-sh#19065) [ty] Supportdataclasses.InitVar(astral-sh#19527) [ruff] FixRUF033breaking with named default expressions (astral-sh#19115) Update pre-commit hook name (astral-sh#19530) Bump 0.12.5 (astral-sh#19528) [ty] Rename type_api => ty_extensions (astral-sh#19523) [ty] Added support for "go to references" in ty playground. (astral-sh#19516)
Conflicts:
crates/ty_server/src/server/api/requests.rs
crates/ty_server/tests/e2e/snapshots/e2e__initialize__initialization.snap
crates/ty_server/tests/e2e/snapshots/e2e__initialize__initialization_with_workspace.snap
AlexWaygood pushed a commit that referenced this pull request
This PR adds support for the "document highlights" language server feature.
This feature allows a client to highlight all instances of a selected name within a document. Without this feature, editors perform highlighting based on a simple text match. This adds semantic knowledge.
The implementation of this feature largely overlaps that of the recently-added "references" feature. This PR refactors the existing "references.rs" module, separating out the functionality and tests that are specific to the other language feature into a "goto_references.rs" module. The "references.rs" module now contains the functionality that is common to "goto references", "document highlights" and "rename" (which is not yet implemented).
As part of this PR, I also created a new ReferenceTarget type which is
similar to the existing NavigationTarget type but better suited for
references. This idea was suggested by @MichaReiser in [this code review
feedback](#19475 (comment))
from a previous PR. Notably, this new type contains a field that
specifies the "kind" of the reference (read, write or other). This
"kind" is needed for the document highlights feature.
Before: all textual instances of foo are highlighted
After: only semantic matches are highlighted
Co-authored-by: UnboundVariable unbound@gmail.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})