rust-lang / rust-lang/rust-analyzer
syntax-editor: Split concept of node identity from SyntaxNode equality
Open
@DropDemBits is already working on this.
Since Nov 28, 2025.
C-cleanup
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
SyntaxEditor relies on the notion of SyntaxNode equality to track a node through the whole SyntaxMapping tree, but identity is unfortunately currently tied to SyntaxNodes being reference counted. We can add a layer of indirection (e.g. SyntaxId) so that we can associate multiple node instances with the same identity and further separate ourselves from the concept of mutable syntax trees.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.