Lesson plan

Language Server Protocol

The Language Server Protocol (LSP) is an open, JSON-RPC-based protocol for use between source-code editors or integrated development environments (IDEs) and servers that provide "language intelligence tools": programming language-specific features like code completion, syntax highlighting and marking of warnings and errors, as well as refactoring routines. The goal of the protocol is to allow programming language support to be implemented and distributed independently of any given editor or IDE. In the early 2020s, LSP quickly became a "norm" for language intelligence tools providers. In LSP, the editor or IDE acts as a client and communicates with a language server that analyzes code and provides language specific functionality. The client notifies the server about actions, including opening/modifying files. It can additionally request operations such as code completion, navigation, formatting, and refactoring. The server then returns the requested information or edits. This separation lets a single language server provide language support to multiple editors rather than requiring each editor to implement its own language specific tooling. LSP was originally developed for Microsoft Visual Studio Code, and in 2016 Microsoft, Red Hat, and Codenvy announced a collaboration to standardize the specification.…

Back to article

Article summary

The Language Server Protocol (LSP) is an open, JSON-RPC-based protocol for use between source-code editors or integrated development environments (IDEs) and servers that provide "language intelligence tools": programming language-specific features like code completion, syntax highlighting and marking of warnings and errors, as well as refactoring routines. The goal of the protocol is to allow programming language support to be implemented and distributed independently of any given editor or IDE. In the early 2020s, LSP quickly became a "norm" for language intelligence tools providers. In LSP, the editor or IDE acts as a client and communicates with a language server that analyzes code and provides language specific functionality. The client notifies the server about actions, including opening/modifying files. It can additionally request operations such as code completion, navigation, formatting, and refactoring. The server then returns the requested information or edits. This separation lets a single language server provide language support to multiple editors rather than requiring each editor to implement its own language specific tooling. LSP was originally developed for Microsoft Visual Studio Code, and in 2016 Microsoft, Red Hat, and Codenvy announced a collaboration to standardize the specification.…

Key claims

No claims recorded.

Discussion questions

  1. Summarise the article in your own words. Which single claim would you verify first, and why?
  2. Which claim in this article is most likely to be revised as the sources update? How would you check its current status?
  3. If two sources disagreed about one of these facts, what would you need in order to trust one over the other?

Bibliography

No sources recorded.

Key claims and bibliography are generated from the same tracked claims and sources as the article page.