Skip to content

Supported Client Features #170

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

Closed
ezolotko opened this issue Sep 19, 2019 · 8 comments
Closed

Supported Client Features #170

ezolotko opened this issue Sep 19, 2019 · 8 comments

Comments

@ezolotko
Copy link
Contributor

Hello, and thank you for working on this project.

Which features of LSP are currently supported for client-side use?

From looking at ClientCapabilities, I can see only Synchronization, Hover, and Completion capabilities are supported at the moment. TextDocumentClient class also has methods for these three features only. On the other hand, in the Protocol project, I see a lot of classes (auto-generated?) seemingly covering all of the protocol.

How could I use some of the features which are not present in the ClientCapabilities and TextDocumentClient at the moment? For example, if I wanted to use SignatureHelp on the client, what would be required to add to the Client library?

@tintoy
Copy link
Collaborator

tintoy commented Sep 19, 2019

Yes, definitely - I just hadn’t got around to implementing the other features since it wasn’t being used. I kinda wish I’d done them as extension methods to make them easier to add but that would be a breaking change.

Adding a new client is still not much work (see the “Clients” folder under “Client” for examples). Feel free to open a PR or if you’re not sure how to proceed I can have a go at adding it this afternoon if you can post a link to the model classes for the messages you want to handle :)

@ezolotko
Copy link
Contributor Author

Hi, thank you for the quick reply. I am aiming to connect a .NET client to clangd server. Clangd has the following list of server capabilities (I sorted them by (a subjective) importance):

  • Completion
  • Signature Help
  • Source hover
  • Diagnostics
  • Go to Definition
  • Document Highlights
  • Find References
  • Formatting
  • Fix-its
  • Rename
  • Document Symbols
  • Workspace Symbols

For sure I will not be up to speed to produce a PR as fast as "this afternoon" :), so if you could add some of these features I will greatly appreciate this. Otherwise I will try to see if I can do them by myself.

@tintoy
Copy link
Collaborator

tintoy commented Sep 20, 2019

No problem I’ll get started tomorrow and see what I can come up with :)

tintoy added a commit to tintoy/csharp-language-server-protocol that referenced this issue Sep 24, 2019
…erties on LanguageClient

This moves us towards being able to implement OmniSharp#170.
@tintoy
Copy link
Collaborator

tintoy commented Sep 24, 2019

CC: @david-driscoll @TylerLeonhardt - does tintoy@2e2cae3 look reasonable to you? If so, I'll open a PR sometime tomorrow :)

@TylerLeonhardt
Copy link
Collaborator

The API looks solid. I'll let @david-driscoll be the judge of the underlying implementation.

@ezolotko
Copy link
Contributor Author

ezolotko commented Oct 8, 2019

I submitted #184 for Signature help support. If this turns out OK I could try to add all the remaining features from the list above and submit a PR.

@david-driscoll
Copy link
Member

@ezolotko There is a new language client that should have full support for all the features now, there are some breaking changes along the way but things now integrate nice and cleanly togetrher.

@ezolotko
Copy link
Contributor Author

ezolotko commented Jun 2, 2020

@david-driscoll cool, thank you! I am closing this issue then.

@ezolotko ezolotko closed this as completed Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants