onivim / oni

Oni: Modern Modal Editing - powered by Neovim
https://www.onivim.io
MIT License
11.36k stars 300 forks source link

Language server over TCP #2350

Open zxiest opened 6 years ago

zxiest commented 6 years ago

As per https://langserver.org/ , language_server-ruby is very basic where as https://github.com/castwide/solargraph supports more capabilities.

Solargraph, however, only supports TCP; the author is suggesting he was getting more performant results over TCP vs stdio, this is why he kept TCP. ref: https://github.com/castwide/solargraph/issues/65

The author will take a look at stdio again but it would make sense for Oni to support TCP, especially it might be faster.

oni-bot[bot] commented 6 years ago

Hello and welcome to the Oni repository! Thanks for opening your first issue here. To help us out, please make sure to include as much detail as possible - including screenshots and logs, if possible.

castwide commented 6 years ago

Solargraph gem v0.23.2 includes the first version of the stdio transport. castwide/solargraph#65

bryphe commented 6 years ago

Thanks for logging the issue, @zxiest ! Would love for Oni to support TCP too - I believe that the performance is better (particularly on Windows).

If anyone is up for checking this out, here's where we connect to stdin/stdout today: https://github.com/onivim/oni/blob/3c6f8d4173c07f259fe5a14c1bb7d71cc888c085/browser/src/Services/Language/LanguageClientProcess.ts#L143

I think it'd just be a matter of adding a configuration for language server registration to pick the transport - and then update the code there to respect that configuration setting.