fix(language-server): support LSP clients that only support workspace/configuration
#58
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To compensate for OmniSharp/csharp-language-server-protocol#1101, switch to using scoped configuration method which doesn't (incorrectly) rely on the
didChangeConfiguration
capability from the client.Added a test to simulate the scenario we see with
neovim
where it offers theworkspace.configuration
capability but not theworkspace.didChangeConfiguration
capability. (This test failed before the change, and went green after the change).Refactored the test helper
ConfigurationSection
to simplify that scenario, and to more generally rely less ondidChangeConfiguration
capability for tests that only use static setting values.Due to the aforementioned OmniSharp bug, Contextive was not able to obtain configuration settings from
neovim
client. A workaround was explored by @erikjuhani on #55, but now that we know the root cause is a library bug, this is the minimally disruptive solution.By using the
GetScopedConfiguration
, we bypass thedidChangeConfiguration
capability check. See OmniSharp/csharp-language-server-protocol#1101 for details. We should revert this change (but not the tests) after that issue is resolved.Also, now that this works, the neovim README.md section has been updated to illustrate how to nominate a custom definitions file location.
No.
See also #54 for other in-filght considerations around the configuration story.