microsoft / microsoft/language-server-protocol

Make diagnostics a first class citizen in LSIF

Open
#825 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request lsif
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.