{{ content }}
diff --git a/_layouts/implementors.html b/_layouts/implementors.html
index d30b7a1..ecbeeb7 100644
--- a/_layouts/implementors.html
+++ b/_layouts/implementors.html
@@ -2,10 +2,12 @@
layout: default
---
+
+
-
+
Implementations
diff --git a/_layouts/singlePage.html b/_layouts/singlePage.html
index 77a1ffa..be204d9 100644
--- a/_layouts/singlePage.html
+++ b/_layouts/singlePage.html
@@ -2,6 +2,8 @@
layout: default
---
+
+
diff --git a/_layouts/specification.html b/_layouts/specification.html
index fc7496b..8f261a7 100644
--- a/_layouts/specification.html
+++ b/_layouts/specification.html
@@ -2,6 +2,8 @@
layout: default
---
+
+
@@ -10,7 +12,7 @@ layout: default
{{ content }}
-
+
{% for toc-l1 in site.data.specification-toc %}
diff --git a/howItWorks.md b/howItWorks.md
index 1d87190..11249d7 100644
--- a/howItWorks.md
+++ b/howItWorks.md
@@ -6,7 +6,7 @@ sectionid: howItWorks
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:
-
+
* **The user opens a file (referred to as a *document*) in the tool**: The tool notifies the language server that a document is open ('textDocument/didOpen'). From now on, the truth about the contents of the document is no longer on the file system but kept by the tool in memory. The contents now has to be synchronized between the tool and the language server.
@@ -63,7 +63,7 @@ This is the response:
When a user is working with different languages, a development tool usually starts a language server for each programming language. The example below shows a session where the user works on Java and SASS files.
-
+
Not every language server can support all features defined by the protocol. LSP therefore defines 'capabilities'. A capability defines a related group of language features. A development tools and the language server announce their supported feature set. As an example, a server announces that it can handle the 'textDocument/definition' request, but it might not handle the 'workspace/symbol' request. Similarly, development tools can announce that they are able to provide 'about to save' notifications before a document is saved, so that a server can compute textual edits to automatically format the edited document.
* **The user opens a file (referred to as a *document*) in the tool**: The tool notifies the language server that a document is open ('textDocument/didOpen'). From now on, the truth about the contents of the document is no longer on the file system but kept by the tool in memory. The contents now has to be synchronized between the tool and the language server.
@@ -63,7 +63,7 @@ This is the response:
When a user is working with different languages, a development tool usually starts a language server for each programming language. The example below shows a session where the user works on Java and SASS files.
-
+
Not every language server can support all features defined by the protocol. LSP therefore defines 'capabilities'. A capability defines a related group of language features. A development tools and the language server announce their supported feature set. As an example, a server announces that it can handle the 'textDocument/definition' request, but it might not handle the 'workspace/symbol' request. Similarly, development tools can announce that they are able to provide 'about to save' notifications before a document is saved, so that a server can compute textual edits to automatically format the edited document.