Sublime Forum

Language server protocol


Microsoft announced a new protocol on their Visual Studio code blog, read here

another technology that powers VS Code is an open, JSON-based protocol that anyone can use to add support for a new programming language to VS Code by implementing a “language server”.

For language creators, this means an enhanced tooling experience for
their language across a variety of development tools and operating
systems, similar to the experience that TypeScript developers or C# developers (via OmniSharp)
get today. It also means any developer can have a consistent editing
experience for their favorite programming language on any tool – even if
that tool isn’t VS Code.

Visual Studio Code provides rich language support for many
programming languages. Support for a particular programming language is
powered by a language server that has a deep
understanding of that language. VS Code communicates with these servers
to enable rich editing capabilities like ‘Errors & Warnings’,
‘Refactor’, and ‘Go To Definition’.

It would be absolutely fantastic if Sublime Text could join the initiative and add support for this protocol. It would enable Sublime to finally have stable and powerful tooling for languages like C++ and Java. I assume stability of the language servers would surpass that of any Sublime programming language plugin over time.



Language Server Protocol has become a serious project. I*d like to bump this and see if this is becoming interesting for sublime. I’d appreciate it.



This is an excellent concept that I would love to see in sublime. Does anyone know enough about the protocol to say whether it could be implemented seamlessly as a plugin with the current API? And are there any active plugins under development for this?

EDIT: I found this



But surely a language server protocol that refers changes in one’s code for remote compilation/transpilation services across a network would ipso facto be much slower than getting the same task done by an onboard plugin ?

I get the reduction in storage and RAM requirement with a LSP.
But users normally choose execution efficiency over memory efficiency, don’t they ?
Or is it that such delays would not be significant - maybe even noticed - by users doing normal development coding ?

Mind you, users of LSP would be putting a good old load onto the language servers and time on servers is money . . . Who pays for this service ? If nobody pays for the service are language servers earning money from collecting data on other people’s code ?



Language servers run locally on your machine, not on a remote server. There’s certainly an overhead from the protocol and ST plugin system but the biggest bottleneck is usually the language server itself.

1 Like


If that’s the case then language servers simply provide a means to extend an editor or IDE to additional languages without having to rewrite compilation tools.

I see that AdaCore has written its own Ada Language Server and made plugins to it for IntelliJ and Visual Studio Code.



Correct. There’s a community maintained LSP package for Sublime Text.

1 Like