microsoft / microsoft/language-server-protocol
Allow for 'incomplete' result in a `workspace/symbol` response
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13k
- Forks
- 1k
- Avg merge
- 6d 1h
- Merged PRs (30d)
- 10
Description
See: https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#workspace_symbol
The response is defined as being a simple SymbolInformation[]. It would be useful to enhance the protocol to allow a server to return only a subset of symbols for very broad queries and somehow indicate to the client that the returned list is incomplete (so, for example, the client should not rely on the list to filter down as a user types more in their search box).
This would be useful in cases where the 'query' is a short string (possibly even the empty string) which would otherwise result in a huge 'complete' list which could be very lengthy to compute and consume a lot of memory and bandwidth to transmit as well.
I.e. I would like something similar as is being done for completion item list (https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#completion-request) which allows for a boolean 'isIncomplete' flag.
Of course, even without this flag, it is always possible for a server to cut short the list of results. But without a way to convey the result's incompleteness to the client, the client has no way to know whether it is safe to use the posibly incomplete list and filter it down further or make a new request when the user types more characters in the search box.
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 protocol.md at the workspace/symbol section and compare its response definition with the completion request section linked in the issue. Done is a documented response contract that lets clients distinguish incomplete symbol results and explains the expected client behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100