Skip to content
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

Investigate to extract a base protocol definition out of the LS protocol #1707

Closed
dbaeumer opened this issue Apr 2, 2023 · 5 comments
Closed

Comments

@dbaeumer
Copy link
Member

dbaeumer commented Apr 2, 2023

Extracting a base protocol specification (without implementation) out of the Language Server protocol would allow defining protocols aside of LSP that adhere to the same rules than LSP like:

  • message format
  • lifecycle messages
  • capability model
  • base types,
  • ....
@jdneo
Copy link
Member

jdneo commented Apr 17, 2023

protocols aside of LSP that adhere to the same rules than LSP.

Is BSP an example for this purpose?

@dbaeumer
Copy link
Member Author

BSP could make use of it but it not the main target right now.

@agluszak
Copy link

Hi @dbaeumer, @jdneo, @MariaSolOs! I randomly stumbled upon the Base Protocol definition. As a maintainer of BSP I'm very happy to see that you started working on it! We (JetBrains/Scala Center & friends) have been dreaming about it for quite a long time ;) We'd love to help you with the design, and I think it would be a great idea in general to keep in touch! You're invited to join our BSP discord.

In the not-so-far future we'd like to release a new major version of BSP. We wanted to bring it more in line with LSP anyway (use the new progress reporting mechanism for example), so we could simply wait until the work on the Base Protocol is finished. Another thing which may be of interest to you is that we've recently rewritten our spec in Smithy which made it machine-readable. Now our spec and support libraries for Java are automatically derived from the Smithy model. IIRC at some point you attempted doing something similar for LSP :)

@dbaeumer
Copy link
Member Author

@agluszak great to hear that you are interested in the base protocol and that you might find it useful for BSP. Would be great if you could be one of the early adopters. I have joined the discord however I would like to keep the feedback about the base protocol in GitHub issues in this repository. Hope this is OK for you.

Regarding a meta model: yes, that exists in the mean time for LSP and will very likely be useful for other protocols as well. The way how it works is as follows:

A version of the LSP meta model can be found here: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#metaModel

@dbaeumer
Copy link
Member Author

The base protocol got extracted and is available on the LSP site.

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

3 participants