Language Server Protocol (LSP) servers

The Language Server Protocol (LSP) is a standardized, open protocol (JSON-RPC) for communication between a code editor or IDE (client) and a language-specific process (server). It enables editors to provide rich language features like autocomplete, go-to-definition, and refactoring without…

Key facts

First appeared
2016
Category
technology
Problem solved
LSP was created to solve the 'M x N' problem: the redundant effort required to implement rich language features (like code completion, diagnostics, refactoring) M times for M programming languages across N different code editors or IDEs. Before LSP, each editor had to build its own language understanding for every language it supported, leading to duplicated work, inconsistent quality, and a high barrier to entry for both new editors and new languages.
Platforms
macOS, Windows, Web (via web-based editors like VS Code for Web, Gitpod, Codespaces), Linux

Related technologies

Notable users

  • Red Hat (Eclipse Che, Theia)
  • Google (for Go language tooling)
  • GitHub (Codespaces)
  • Many editor/IDE developers who integrate LSP clients
  • Various open-source language communities (Rust, Python, Java, etc.)
  • Microsoft (Visual Studio Code)