ruff
4bc34b82 - [ty] Added support for "document highlights" language server feature. (#19515)

Commit
72 days ago
[ty] Added support for "document highlights" language server feature. (#19515) 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](https://github.com/astral-sh/ruff/pull/19475#discussion_r2224061006) 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 <img width="156" height="126" alt="Screenshot 2025-07-23 at 12 51 09 PM" src="https://github.com/user-attachments/assets/37ccdb2f-d48a-473d-89d5-8e89cb6c394e" /> After: only semantic matches are highlighted <img width="164" height="157" alt="Screenshot 2025-07-23 at 12 52 05 PM" src="https://github.com/user-attachments/assets/2efadadd-4691-4815-af04-b031e74c81b7" /> --------- Co-authored-by: UnboundVariable <unbound@gmail.com>
Parents
Loading