From 9b03b28290f1c0b557ad6a35e573918a61fe9ce3 Mon Sep 17 00:00:00 2001 From: Kenneth Auchenberg Date: Wed, 3 Jan 2018 11:54:31 -0800 Subject: [PATCH] Tweak wording of LSP --- index.html | 18 +++++++++--------- overview.md | 10 ++++++---- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/index.html b/index.html index d444e06..9018925 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ layout: default
- +

Language Server Protocol

@@ -27,11 +27,11 @@ layout: default

What is the Language Server Protocol?

- -

Implementing language support like auto complete, goto definition, or type hovering for a programming language for different development tools is a significant effort. Each development tool provides different APIs for language extenders. Moreover, an extension has to be implemented in the implementation language of the tool itself.

-

This requires to implement the smartness for a language multiple times. The idea behind a Language Server is to provide the language smarts inside a server and using inter process communication and a protocol to talk to this server. If each language server speaks a different protocol then the integration of each server into each tool is custom.

-

The idea behind the Language Server Protocol is to standardize this protocol and therefore to simplify the integration of different language servers in a development tool. This is a win for both the language provider and the development tool provider!

- + +

Implementing support for features like autocomplete, goto definition, or documentation on hover for a programming language is a significant effort. Traditionally this work must be repeated for each development tool, as each provides different APIs for implementing the same features.

+

The idea behind a Language Server is to provide the language-specific smarts inside a server that can communicate with development tooling inter-process communication through a protocol.

+

The idea behind the Language Server Protocol is to standardize this protocol for how tools and servers communicate, so that a single language server can talk to many different development tools, and a single tool can talk to many language servers.

+

This is a win for both langauge providers and tooling vendors!

diff --git a/overview.md b/overview.md index 875bf21..05d81c1 100644 --- a/overview.md +++ b/overview.md @@ -5,13 +5,15 @@ sectionid: overview --- ## What is the Language Server Protocol? -Implementing language support like auto complete, goto definition, or type hovering for a programming language for different development tools is a significant effort. Each development tool provides different APIs for language extenders. Moreover, an extension has to be implemented in the implementation language of the tool itself. +Implementing support for features like autocomplete, goto definition, or documentation on hover for a programming language is a significant effort. Traditionally this work must be repeated for each development tool, as each provides different APIs for implementing the same features. -This requires to implement the smartness for a language multiple times. The idea behind a Language Server is to provide the language smarts inside a server and using inter process communication and a protocol to talk to this server. If each language server speaks a different protocol then the integration of each server into each tool is custom. +The idea behind a Language Server is to provide the language-specific smarts inside a server that can communicate with development tooling inter-process communication through a protocol. -The idea behind the Language Server Protocol is to standardize this protocol and therefore to simplify the integration of different language servers in a development tool. This is a win for both the language provider and the development tool provider! +The idea behind the Language Server Protocol is to standardize this protocol for how tools and servers communicate, so that a single language server can talk to many different development tools, and a single tool can talk to many language servers. -## How it works +This is a win for both langauge providers and tooling vendors. + +## How it works A language server runs as a separate process and development tools communicate with the server using the language protocol over JSON-RPC. Below is an example for how a tool and a language server communicate during a routine editing session: