Microsoft -- yes, Microsoft -- announced at the DevNation conference in San Francisco that it's releasing an open-source language server protocol. More interesting still, this is being done in concert with Codenvy and Red Hat.
This may sound shocking. Keep in mind though that Microsoft has been embracing open-source methods at a deep level. And besides that, Microsoft has been working in bringing together Visual Studio with the open-source Eclipse integrated development environment. And, lest we forget, Microsoft just made it possible for you to run SQL Server, .NET Core 1.0, and ASP.NET on Red Hat Enterprise Linux (RHEL).
So, when you put it together, it's not too surprising that Microsoft and its open-source partners have created the Language Server Protocol (LSP). The LSP is a collaborative effort to provide a common way to integrate programming languages across code editors and integrated development environments (IDEs). The protocol extends developer flexibility and productivity by enabling a rich editing experience within a variety of tools for different programming languages.
"Historically, most programming languages have only been optimized for a single tool. This has prevented developers from using the editors they know and love, and has limited opportunities for language providers to reach a wide audience," said Tyler Jewell, Codenvy CEO and Eclipse Che project lead. Jewell continued, "With a common protocol supported by Microsoft, Red Hat, and Codenvy, developers can gain access to intelligence for any language within their favorite tools."
LSP is designed to promote interoperability between editors and language servers. The protocol also enables developers to access intelligent programming language assistants. These include such functions as: Find by symbol, syntax analysis, code completion, go to definition, outlining, and refactoring with their editor or IDE of choice.
At the moment, LSP supports the following languages: C++, PowerShell, JSON, CSS/LESS/SASS, Xtext, Crane PHP, Haxe, Java, and RAML. As for IDEs, currently, Microsoft Visual Studio Code and Eclipse Che have already implemented the protocol. Eclipse Che's implementation is pending in an open source branch and will be generally available within Q3.
"We have defined the common language server protocol after integrating the OmniSharp for C# and TypeScript servers into VS Code," said Erich Gamma, Microsoft Distinguished Engineer. "Having done a language server integration twice, it became obvious that a common protocol is a win-win for both tool and language providers. In this way, any language provider can make their language support available so that it is easily consumable by any tool provider."
The language server protocol collaboration enables:
The language server protocol is available today. For more information, visit the Language Server Protocol FAQ.