Audience
Programming language maintainers and editor developers who need a standard way to deliver code intelligence features across multiple IDEs and development tools
About Language Server Protocol (LSP)
The Language Server Protocol (LSP) defines the protocol used between an editor or IDE and a language server that provides language features such as autocomplete, go to definition, find all references, and documentation on hover. Adding these features for a programming language takes significant effort, and traditionally the work had to be repeated for each development tool because every editor or IDE exposed different APIs for implementing the same capabilities. LSP standardizes how language servers and development tools communicate, allowing the language-specific intelligence to live in a reusable server that can connect to multiple development environments through a shared protocol. This means a single Language Server can be reused across many tools, while development tools can support multiple languages with less duplicated effort. The protocol enables inter-process communication between the development tool and the language server and defines the format of messages using JSON-RPC.