-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new capabilities #3
Comments
I tried to add missing fields myself, but it seems like a huge change will be required to support 3.17 protocol version (just grep for At the same time, it seems like everything needed is already implemented and well-supported in So there are two paths we can take here:
Ideally will be nice if the author of the package shows up and provides some guidance or support on the first solution. Otherwise, I believe the new package way will be much easier to implement. |
Hi @fspv, thanks for your interest in this package. I've made this package for the Arduino LS, and yes, keeping up with the upstream LSP specification is a work on his own. Said that, IMHO the best way forward is to implement the minimum subset of LSP 3.17 to support neovim in this library. WDYT? Another thing that puzzles me is that the LSP protocol is designed in a way that the client and the server can negotiate the capabilities https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocumentClientCapabilities for example if the optional |
Hi @cmaglie! Sorry, took quite a while to respond, because I lost context on this and it took some time to figure it out again. This is the neovim code that constructs the default capabilities to be sent to the server: https://github.com/neovim/neovim/blob/v0.10.0/runtime/lua/vim/lsp/protocol.lua#L635-L656 There is no way to make I think your point is valid, that the client must negotiate the supported features with the server, however, I'm not sure if it includes the client not sending its capabilities in the first place. If this is the case, then it seems like a bug on the neovim side. However, I'm leaning towards thinking that the server must accept whatever it's been provided by the client and then try to match the client's capabilities with what it supports. So extra capabilities on the client shouldn't be a problem. So maybe a solution here will be to relax the JSON parsing constraints and just ignore the unknown keys. I'm not sure if the library used here supports it though. Or if we are sure this is a neovim bug, then we can report it its repo, I think we have a solid case here for adding an option to stop sending the |
@leoverde2 in this thread says they fixed the problem with a small change |
I opened a PR to implement the change recommended in the arduino-language-server issue. I tested it locally and the LSP appears to work as expected under nvim 10.0. |
Hi! This library seems to be not supporting the new capabilities, such as
inlayHint
. As a result arduino LSP (which depends on it) doesn't work with the newer IDE versions. See description of the problem here arduino/arduino-language-server#187Is it possible to update the capabilities definition with all the new available capabilities?
The text was updated successfully, but these errors were encountered: