Microsoft Announces A Universal Language Server Protocol for IDEs

How serious is Microsoft about open source? Very serious.

Microsoft has quietly been working on its openness initiative that includes mobile and cloud first, and partnering with everyone and anyone. Microsoft’s Azure is fully supported and runs on Linux. Microsoft’s products such as SQL Server, Visual Studio, and Office are fully supported on Linux and OS X.

Microsoft just announced .NET Core 1.0 and ASP.NET Core 1.0, open source versions of its popular development platform, .NET.

Yesterday, Microsoft announced a new open-source server language protocol that allows any developer to use any language and any tool to build software. Microsoft is testing it out via its open source code editor, Visual Studio Code a.k.a. Code.

From the announcement via a blog post:

Visual Studio Code is an editor for any developer, no matter what programming language you use. Between languages bundled in the tool or extensions in the Marketplace, we have support for over 150 languages. We’re also committed to developing VS Code in the open, and making the components that power VS Code available and open source. One of our most notable components is the Monaco editor, but 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."

So, how does it work?

 
Image Source: Microsoft

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'.