microsoft / microsoft/language-server-protocol

`workspace/configuration` is impossible to implement on the client side

Open
#972 8 comments 14 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

configuration discussion
Dominant language
TypeScript
Stars
13k
Forks
1k
Avg merge
6d 1h
Merged PRs (30d)
10

Description

For reference: https://microsoft.github.io/language-server-protocol/specifications/specification-3-15/#workspace_configuration

The configuration section ask for is defined by the server and doesn’t necessarily need to correspond to the configuration store used be the client.

This makes it impossible for the client to implement workspace/configuration in a generic way. It absolutely requires server-specific knowledge, which turns the "LSP is the solution to the matrix problem" mantra on its head. More specifically:

Rust-analyzer
  • section is rust-analyzer
  • Client is supposed to return server_settings[ 'rust-analyzer' ]
Gopls
  • section is gopls
  • Client is supposed to return server_settings
Lua-language-server
  • sections are Lua, files.associations and files.exclude
  • Client is supposed to return server_settings, and no clue what for the other two

 

Since a generic implementation is impossible, can we define what section actually means?

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

Start with the linked LSP 3.15 workspace/configuration specification and compare the Rust-analyzer, Gopls, and Lua-language-server examples in the issue. Determine a protocol-wide meaning for section that allows clients to handle these cases consistently; done means the specification is clarified or revised accordingly.

Written by the indexing model from the issue text.

Assessment

Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.