Should ServerCapabilities depend upon ClientCapabilities?
- Dominant language
- Haskell
- Stars
- 423
- Forks
- 105
- PR merge metrics
- No merged PRs in 30d
Description
Currently, inferCapabilities is passed a version of ClientCapabilities, and the passed client capabilities are used twice, once for RenameOptions and once for CodeActionKinds. That's a very small portion of the capabilities that could depend on ClientCapabilities. I'm of the position that ServerCapabilities shouldn't depend at all upon ClientCapabilities, after all, capabilities mean what we can do, not what we will do (which is to comply with the client capabilities in server code).
As long as no one objects I would like to stop passing ClientCapabilitise to inferCapabilities, and remove any code in there that refers to it.
Contributor guide
Research direction
Start by locating the inferCapabilities entry point and read how ClientCapabilities is used for RenameOptions and CodeActionKinds. Remove the dependency and update its callers; done means ServerCapabilities no longer receives ClientCapabilities or refers to it, with the existing test suite passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- api, devtools
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100