microsoft / microsoft/language-server-protocol
Clarify requirements for PartialResults
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13k
- Forks
- 1k
- Avg merge
- 6d 1h
- Merged PRs (30d)
- 10
Description
It is unclear to me what the requirements are for the data coming in from PartialResults, particularly in SemanticTokens requests.
For example, imagine that we call textDocument/semanticTokens/full against Roslyn on a very large file/project right after startup. Would it be "legal" for Roslyn to reply with a "first-pass" attempt at Tokens which provides them from the start to the end of the file, but provides a partialResultToken which could be checked for a second-pass with more accurate results, covering the same area? If yes that implies that the array of semanticToken int's would be relative to the start of the document for each time the partialResult is queried, and that partialResults may invalidate results from previous partials. If that is NOT allowed would workspace/semanticTokens/refresh be the only way to get this "second-pass"? If it is that has significant implications for imbedded scenarios such as Razor and what they can and cannot cache.
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
Start with the PartialResults requirements and the SemanticTokens request examples described here, then compare them with workspace/semanticTokens/refresh. Done means the specification explicitly states whether later partial results may overlap or invalidate earlier results, and how clients should handle the proposed second pass.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100