microsoft / microsoft/language-server-protocol
Make diagnostics a first class citizen in LSIF
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13k
- Forks
- 1k
- Avg merge
- 6d 1h
- Merged PRs (30d)
- 10
Description
I am very interested in the potential for LSIF to track code smells in a code base. However, right now diagnostics feel like a second-class citizen, because their ranges are in a big array instead of using Range vertexes. It would be great if eventually we could include precomputed fixes for the diagnostics in LSIF too (through code actions), which would then want to share Ranges with diagnostics.
Is there any benefit to have the diagnostic ranges isolated in the array?
The only difficulty I can think of is that diagnostic ranges might overlap with symbol ranges in ways that the spec currently does not allow.
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
No files, tests, or entry points are named. Start by reviewing LSIF's diagnostic range array and Range vertices, then determine whether diagnostics and future code actions can share ranges without violating the specification; done requires an agreed design.
Written by the indexing model from the issue text.
Assessment
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100