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
feat(lsp): add tcp support #19916
feat(lsp): add tcp support #19916
Conversation
a2e53e0
to
06f7273
Compare
@jose-elias-alvarez Could you have a look at this to check if this would allow null-ls to stop monkey-patching rpc.start? This PR would allow For everyone else: |
From a null-ls perspective this looks great! This should be more or less a drop-in replacement for us (I’m away from a PC for the next week or so but will test this as soon as I can). |
157a623
to
3e6d40e
Compare
To prepare for different transports like TCP where the handle won't have a kill method.
Makes the previously inner functions re-usable for a TCP client
Hi I guess I just need some help here. I'm all newbie, lua, neovim, lsp... So instead of
I try to do the following (simplified):
This fails with
It looks like something local should not be so, but even removing all this did not help. Or: Is this the completely wrong attempt? How should I get the port after server start? When should the server be started? |
Sorry, but this is not a support forum -- usage questions should be asked on https://app.element.io/#/room/#neovim:matrix.org or https://neovim.discourse.group. |
I'll ask on discourse. I started here because it seems directly related to this PR (at least on how to use the tcp stuff). |
This pull request has been mentioned on Neovim Discourse. There might be relevant details there: |
The plan is to make it possible to have a fully decoupled transport - in addition to TCP it should also be possible to have a "same process" transport (e.g. that null-ls could utilize)
Language servers like Godot only support TCP and currently require workarounds
like socat.
Native TCP support will also allow us to use a dummy server in the tests. Opposed to the fake-lsp-server process it would have the advantage that the server behavior could be part of a test case, as a fake tcp server can run in the same process. Currently the expected notifications and responses are split off in a separate file.
Used like:
closes #11911