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

Remote language server proposal #528

Closed
Yanpas opened this issue Jul 21, 2018 · 6 comments
Closed

Remote language server proposal #528

Yanpas opened this issue Jul 21, 2018 · 6 comments
Labels
discussion *out-of-scope Posted issue is not in scope of VS Code

Comments

@Yanpas
Copy link

Yanpas commented Jul 21, 2018

Currently LSP servers and clients implementations use some local IPC to communicate. But there is not uncommon workflow where you develop a software that is unbuildable on the developer machine and is built on some virtual machine. E.g. developing Linux daemon on Windows. Sometimes machine where you write a code is not very powerful or energy-efficient (some ultrabook).

I propose extending language server protocol over a network. TCP transport should be transparent replacement for pipes, stdin+stdout or unix sockets since it's stream oriented too.

@keegancsmith
Copy link

There is nothing in the spec which dictates transport. Quite a few existing language servers already support TCP as the transport. In fact at Sourcegraph we run LSP servers as a remote service using plain old TCP.

What is missing from the spec is handling remote files (remote in the sense of files existing only on the server or client). We use some custom LSP methods so servers can fetch files from clients for example, but this is not in the spec.

@Yanpas
Copy link
Author

Yanpas commented Jul 22, 2018

Yes, keeping the source code base synchronous across client and server is what currently limits remote client/servers. Since virtual file systems are not portable I think VCS (git e.g.) is a good candidate for file-synchroniztaion. (client and server ensure that they both use same branch and commit, all file-edits are transferred as a patch)

@keegancsmith
Copy link

Since virtual file systems are not portable

What do you mean? The server doesn't need an OS level VFS for this to work, the application can just ask for files. Most LS already have this sort of logic baked in due to supporting didOpen/etc.

@Yanpas
Copy link
Author

Yanpas commented Jul 23, 2018

Some language servers (cquery) require access to all files of the project which is large amount of data. Passing it each time server launches is an overhead

@Piping
Copy link

Piping commented Jul 30, 2018

Develop your code in the server using a TUI editor with LSP support.

@vscodebot
Copy link

vscodebot bot commented Oct 31, 2019

We closed this issue because we don't plan to address it in the foreseeable future. You can find more detailed information about our decision-making process here. If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider.

If you wonder what we are up to, please see our roadmap and issue reporting guidelines.

Thanks for your understanding and happy coding!

@vscodebot vscodebot bot closed this as completed Oct 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion *out-of-scope Posted issue is not in scope of VS Code
Projects
None yet
Development

No branches or pull requests

4 participants