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

x/tools/gopls: make jsonrpc2, lsp, span and friends non-internal #31080

Closed
myitcv opened this issue Mar 27, 2019 · 7 comments
Closed

x/tools/gopls: make jsonrpc2, lsp, span and friends non-internal #31080

myitcv opened this issue Mar 27, 2019 · 7 comments
Labels
FeatureRequest FrozenDueToAge gopls Issues related to the Go language server, gopls.

Comments

@myitcv
Copy link
Member

myitcv commented Mar 27, 2019

Per discussion on Slack, adding a placeholder to track making the following packages non-internal once they stabilise:

golang.org/x/tools/internal/jsonrpc2
golang.org/x/tools/internal/lsp/...
golang.org/x/tools/internal/span

The use case being, people writing LSP clients in Go can then readily leverage these packages.

cc @stamblerre @ianthehat

@myitcv myitcv added the gopls Issues related to the Go language server, gopls. label Mar 27, 2019
@gopherbot gopherbot added this to the Unreleased milestone Mar 27, 2019
@gopherbot
Copy link

Change https://golang.org/cl/170920 mentions this issue: tools/lsp: moved span, lsp/protocol and lsp/jsonrpc2 out of internal

@gmwxio
Copy link

gmwxio commented Apr 9, 2019

Per discussion on Slack, adding a placeholder to track making the following packages non-internal once they stabilise:

How do I find the Slack channel?

@myitcv
Copy link
Member Author

myitcv commented Apr 9, 2019

@wxio - you don't have to join the Slack channel to participate in discussions about the LSP, I was simply noting that I had had a conversation with @ianthehat there.

More details on the various channels used for tools discussion:

https://github.com/golang/go/wiki/golang-tools

@gmwxio
Copy link

gmwxio commented Apr 9, 2019

@myitcv join the slack group. Is the LSP discussion on a specific channel?

@myitcv
Copy link
Member Author

myitcv commented Apr 9, 2019

Per https://github.com/golang/go/wiki/golang-tools, most of the chat happens in #tools

@fhs
Copy link
Contributor

fhs commented Apr 14, 2019

internal/lsp/protocol API seems to be too strict at the moment and only designed to work with gopls. For example, ServerCapabilities.renameProvider can be either bool or RenameOptions, but the protocol package expects RenameOptions. This breaks compatibility with go-langserver, which sends a bool. The current protocol package is not going to be very useful to me because I want to write a lsp client that supports all LSP servers that follow the LSP protocol.

@bcmills bcmills added FeatureRequest NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels May 28, 2019
@stamblerre stamblerre changed the title x/tools/internal: make jsonrpc2, lsp, span and friends non-internal x/tools/gopls: make jsonrpc2, lsp, span and friends non-internal Jul 2, 2019
@stamblerre stamblerre removed the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Aug 5, 2019
@stamblerre stamblerre modified the milestones: Unreleased, gopls unplanned Dec 3, 2019
@stamblerre
Copy link
Contributor

I don't think that we will be moving any of these packages outside of internal in the near future, if ever. Doing so would require us to commit to maintaining stable APIs and would slow down progress on gopls. internal/lsp/protocol mostly contains generated code anyway, and open-sourcing that would require us to tag versions of x/tools for each version of the LSP.

This is a maintenance burden that I don't think we are able to commit to in the next few years, and I would imagine potential consumers of these APIs will find alternatives before that time comes.

@golang golang locked and limited conversation to collaborators Jan 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FeatureRequest FrozenDueToAge gopls Issues related to the Go language server, gopls.
Projects
None yet
Development

No branches or pull requests

6 participants