From a6a330a78ead933b085139e4d882f98eecb3a34b Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Mon, 13 May 2024 19:00:23 -0700 Subject: [PATCH] Update Haskell LSP article to new math delimiters Signed-off-by: Danila Fedorin --- content/blog/haskell_language_server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/haskell_language_server.md b/content/blog/haskell_language_server.md index a763aae..7b7150d 100644 --- a/content/blog/haskell_language_server.md +++ b/content/blog/haskell_language_server.md @@ -9,7 +9,7 @@ For Oregon State University's CS 381, Programming Language Fundamentals, Haskell ### Prelude: Language Server Protocol -Language Server Protocol (LSP) is an attempt to simplify the code analysis feature in various IDEs. Before LSP, each individual IDE had to provide its own functionality for analyzing user code, and couldn't re-use the code analysis features of another IDE. Thus, for every IDE, for every language, a new code analyzer had to be developed. For \\(m\\) IDEs and \\(n\\) languages, there would need to be \\(m \times n\\) code analyzers. This is less than ideal. LSP solves this problem by moving the task of analyzing code into an external process, called a _Language Server_. The language server examines code, finds errors and warnings, and figures out the names of the various variables and functions that the source file contains. It then communicates this information to a _Language Client_, which is usually the IDE. The language client is responsible for presenting the information to the user in any way it deems fit. +Language Server Protocol (LSP) is an attempt to simplify the code analysis feature in various IDEs. Before LSP, each individual IDE had to provide its own functionality for analyzing user code, and couldn't re-use the code analysis features of another IDE. Thus, for every IDE, for every language, a new code analyzer had to be developed. For \(m\) IDEs and \(n\) languages, there would need to be \(m \times n\) code analyzers. This is less than ideal. LSP solves this problem by moving the task of analyzing code into an external process, called a _Language Server_. The language server examines code, finds errors and warnings, and figures out the names of the various variables and functions that the source file contains. It then communicates this information to a _Language Client_, which is usually the IDE. The language client is responsible for presenting the information to the user in any way it deems fit. Because LSP is a _protocol_, any server is able to communicate with any client. Once someone has written a language client for, say, Haskell, this client can be used by any IDE that supports LSP, which means that IDE instantly gains Haskell support. Similarly, once an IDE works as an LSP client, it can use any language server, and thus is immediately able to support all languages for which there is a language client.