Rename HowitWorks to Overview

This commit is contained in:
Kenneth Auchenberg 2017-12-26 21:34:03 -08:00
parent df68f6a4d7
commit e2a4b7dfa8

View file

@ -1,9 +1,18 @@
---
title: How it Works
title: Overview
layout: singlePage
sectionid: howItWorks
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.
This requires to implement the smartness for a language multiple times. The idea behind a <i>Language Server</i> 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 <i>Language Server Protocol</i> 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!
## 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:
<img src="./img/language-server-sequence.png" class="img-fluid" alt="language server protocol">