Skip to content

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

Closed

Description

@dbaeumer

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,
  • ....

Activity

  1. jdneo commented on Apr 17, 2023

    @jdneo
    Member

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

    Is BSP an example for this purpose?

  2. dbaeumer commented on Apr 18, 2023

    @dbaeumer
    MemberAuthor

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

  3. agluszak commented on Jun 14, 2023

    @agluszak

    Hi Dirk Bäumer (@dbaeumer), Sheng Chen (@jdneo), Maria Solano (@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 :)

  4. dbaeumer commented on Jun 15, 2023

    @dbaeumer
    MemberAuthor

    Andrzej Głuszak (@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

  5. dbaeumer commented on Dec 11, 2023

    @dbaeumer
    MemberAuthor

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions