


That’s why we’ll build an extension that, and the possibility of publishing it on the VSCode marketplace for others to use. In fact, VSCode supports the LSP natively, but it still needs some metadata and code to consume the services of a Language Server. Our solution will be an extension for Visual Studio Code, based on the LSP. This will be the solution that we’ll adopt in this tutorial, too. Indeed, often a client will launch a ‘language server’ as a separate process (say, with node.js) and communicate with it over standard input/output, with no networking code involved. Previously, without the LSP, they would have had to build a different extension or plugin for each tool: Eclipse, IntelliJ IDEA, VSCode, Sublime Text, and so on.Īlthough these days, when hearing the word ‘server’, we immediately think of HTTP and sockets, LSP is a textual protocol based on JSON-RPC, with little resemblance to HTTP. Implementors of a language or third parties can build a language server to support the language across several tools, with features such as code completion, error detection, navigation, and others. LSP is a standardized protocol, first developed by Microsoft for Visual Studio Code, to expose language-specific information and operations to a tool that can consume them, typically an editor or IDE. An example of what we’ll be able to obtain The Language Server ProtocolĪs we’ve suggested in the introduction, we’ll use the Language Server Protocol (LSP) to talk with Visual Studio Code.
