microsoft / microsoft/language-server-protocol
Plans for supporting multiple clients from a single LSP server?
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13k
- Forks
- 1k
- Avg merge
- 6d 1h
- Merged PRs (30d)
- 10
Description
In the spec it says:
The protocol currently assumes that one server serves one tool. There is currently no support in the protocol to share one server between different tools. Such a sharing would require additional protocol e.g. to lock a document to support concurrent editing.
The word "currently" suggests this might not be forever the case, so I wondered whether there were more thoughts about this than what's written there (I couldn't find any issues discussing this) - for example whether it's actually an eventual goal?
The scenario I've been thinking about is where the editor launches an external tool (for example in Dart, we may launch DevTools) that may benefit from being able to send some LSP requests but does not want to run its own LSP server (which would duplicate a lot of processing/state that already exists in the one the editor is controlling). I'm mostly thing about things like semantic highlighting or hovers for a read-only code view - although I'm sure for some scenarios full editing would be useful (for ex. maybe LiveShare would be simpler if the servers natively handled multiple clients and it could just proxy requests?).
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 protocol specification section quoted in the issue and review the existing discussion about one server serving one tool. Compare the needs of read-only requests with concurrent editing and determine whether the protocol has an agreed direction; done would require a settled design or explicitly documented decision, not a localized code change.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100