# Language Server Protocol (LSP) The Language Server Protocol (LSP) is an open, JSON-RPC-based protocol that standardizes communication between code editors and language servers. Originally developed by Microsoft for Visual Studio Code, it enables language-specific features like auto-completion, go-to-definition, hover documentation, error diagnostics, and refactoring to be implemented once per programming language rather than once per editor-language combination. A language server runs as a separate process and responds to requests from the editor, providing intelligent code analysis without being tightly coupled to any specific IDE. LSP solves the "M × N problem" in tooling: before LSP, supporting M languages in N editors required M × N integrations. With LSP, language authors implement one server, and editor authors implement one client, reducing the effort to M + N. This has accelerated the adoption of advanced editing features across languages and editors, democratizing access to IDE-quality tooling. Today, LSP is supported by nearly every major editor (VS Code, Neovim, Emacs, Sublime Text, JetBrains IDEs) and has implementations for hundreds of languages. ## References - https://microsoft.github.io/language-server-protocol/ - https://langserver.org/ - https://code.visualstudio.com/api/language-extensions/language-server-extension-guide ## Related -