diff --git a/.jekyll-metadata b/.jekyll-metadata new file mode 100644 index 0000000..f13fa66 Binary files /dev/null and b/.jekyll-metadata differ diff --git a/_implementors/sdks.md b/_implementors/sdks.md index 9b10d6a..827f877 100644 --- a/_implementors/sdks.md +++ b/_implementors/sdks.md @@ -19,4 +19,4 @@ index: 3 | Haskell | [Alan Zimmerman](https://github.com/alanz) | [Haskell-LSP](https://github.com/alanz/haskell-lsp)| | C# | [OmniSharp](http://www.omnisharp.net/) | [C#-LSP](https://github.com/OmniSharp/csharp-language-server-protocol)| | C# | [Inomata Kentaro](https://github.com/matarillo/) | [LanguageServerProtocol](https://github.com/matarillo/LanguageServerProtocol)| -{: .table .table-bordered} \ No newline at end of file +{: .table .table-bordered .table-responsive} \ No newline at end of file diff --git a/_implementors/servers.md b/_implementors/servers.md index 4630761..8658690 100644 --- a/_implementors/servers.md +++ b/_implementors/servers.md @@ -63,4 +63,4 @@ The language servers are listed in chronological order of appearance. | Gauge| [Gauge](https://github.com/getgauge) | [Gauge Language Server](https://github.com/getgauge/gauge/) | | Ballerina | [BallerinaLang.org](https://ballerinalang.org/) | [Ballerina Language Server](https://github.com/ballerinalang/language-server) | | Dart | [Nate Bosch (@natebosch)](https://github.com/natebosch) | [Dart Language Server](https://github.com/natebosch/dart_language_server) | -{: .table .table-bordered} +{: .table .table-bordered .table-responsive} diff --git a/_implementors/tools.md b/_implementors/tools.md index dab653b..081c0a0 100644 --- a/_implementors/tools.md +++ b/_implementors/tools.md @@ -23,4 +23,4 @@ index: 2 |vim8 and neovim| [Prabir Shrestha](https://github.com/prabirshrestha) | [vim-lsp](https://github.com/prabirshrestha/vim-lsp) | |Visual Studio| [Adam Friedman](https://github.com/tintoy) | [LSP client in Visual Studio](https://github.com/tintoy/dotnet-language-client/tree/sample/visual-studio/samples/VisualStudioExtension) | |Visual Studio| Microsoft | [LSP Preview](https://marketplace.visualstudio.com/items?itemName=vsext.LanguageServerClientPreview) | -{: .table .table-bordered} +{: .table .table-bordered .table-responsive} \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html index 592de85..415f594 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,8 +1,26 @@ diff --git a/_includes/head.html b/_includes/head.html index 6106992..f348e31 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -6,13 +6,13 @@ {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} - - + + diff --git a/_includes/js_files.html b/_includes/js_files.html index 7e62d91..732be30 100644 --- a/_includes/js_files.html +++ b/_includes/js_files.html @@ -4,3 +4,5 @@ + + \ No newline at end of file diff --git a/_includes/topnav.html b/_includes/topnav.html index c0c7957..387be69 100644 --- a/_includes/topnav.html +++ b/_includes/topnav.html @@ -1,35 +1,29 @@ - \ No newline at end of file diff --git a/_layouts/implementors.html b/_layouts/implementors.html index 606c2c3..7b2b4cf 100644 --- a/_layouts/implementors.html +++ b/_layouts/implementors.html @@ -2,15 +2,10 @@ layout: default --- -
-
-
-
-
-
- Implementations -
+
+
+
-

{{ page.title }}

+ + + +

Implementations

+

{{ page.title }}

{{ content }}
diff --git a/_layouts/singlePage.html b/_layouts/singlePage.html index 156ebc1..7f09efc 100644 --- a/_layouts/singlePage.html +++ b/_layouts/singlePage.html @@ -2,10 +2,8 @@ layout: default --- -
-
-
+
diff --git a/_layouts/specification.html b/_layouts/specification.html index 2fdbf18..5a2c4c3 100644 --- a/_layouts/specification.html +++ b/_layouts/specification.html @@ -2,45 +2,40 @@ layout: default --- -
-
-
-
+
+
+
{{ content }}
-
-
- {% for toc-l1 in site.data.specification-toc %} -
-
- {{ toc-l1.title }} -
-
- {% for toc-l2 in toc-l1.children %} -
- - {{ toc-l2.title }} - -
- -
+ +
+ {% for toc-l1 in site.data.specification-toc %} +
+
+ {% for toc-l2 in toc-l1.children %} +
+ + {{ toc-l2.title }} + +
+
- {% endfor %}
+ {% endfor %}
- {% endfor %}
+ {% endfor %}
\ No newline at end of file diff --git a/css/main.scss b/css/main.scss index 7894de6..9ab820c 100644 --- a/css/main.scss +++ b/css/main.scss @@ -1,4 +1,4 @@ ---- +--- # Only the main Sass file needs front matter (the dashes are enough) --- @charset "utf-8"; @@ -9,16 +9,39 @@ html { } body { - /* we have a top fixed nav bar */ - margin-top: 50px; - margin-bottom: 46px; + letter-spacing: .25px; + text-rendering: optimizeLegibility; +} + +.single-page { + padding: 40px 0; } .header-container { - // background: url('../protocol.jpg'); - background-size: cover; - background-position: center 36%; - margin-top: -37px; + color: #fff; + + @media (min-width: 576px) { + margin-bottom: 80px; + } + + h1 { + margin-top: 15px; + font-weight: bold; + } + + .intro { + text-align: center; + } + + .intro-text { + margin: 0 auto; + max-width: 450px; + text-align: center; + } +} + +h2 { + margin-bottom: 20px; } .toc { @@ -36,7 +59,7 @@ body { } .toc-link { - padding: 0.125rem 0.5rem; + padding: 0.125rem 0.5rem; color: #707070 } @@ -314,4 +337,101 @@ pre[class=highlight] { .highlight .il { color: #F5871F -} \ No newline at end of file +} + +.more-info { + padding: 100px 0; + + p { + padding: 0; + } +} + +.footer { + padding: 15px 0; + color: #000; + background: #e9ecef; + + @media (min-width: 576px) { + padding: 50px 0; + } + + img { + width: 100px; + + @media (min-width: 576px) { + float: right; + } + } + + ul { + margin: 0; + padding: 0; + } + + .message { + display: inline-block; + padding-right: 10px; + } + + .links { + padding-bottom: 10px; + + @media (min-width: 576px) { + padding: 0; + } + + li { + list-style: none; + padding-bottom: 10px; + + @media (min-width: 576px) { + display: inline-block; + padding: 0; + } + } + } + + iframe { + position: relative; + top: 5px; + } +} + +@media (min-width: 768px) { + .lsp-navbar { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1071; + } + + .lsp-sidebar { + position: -webkit-sticky; + position: sticky; + top: 100px; + z-index: 1000; + height: calc(100vh - 100px); + } +} + +.navbar-brand h1 { + font-size: 18px; + font-weight: bold; + margin: 0; +} + +.navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255,255,255,0.5); +} + +.navbar-dark .navbar-nav .nav-link { + color: white; +} + +.docs-nav { + h4 { + display: inline-block; + font-size: 14px; + } +} diff --git a/img/favicon.png b/img/favicon.png new file mode 100644 index 0000000..d3c2d06 Binary files /dev/null and b/img/favicon.png differ diff --git a/img/microsoft.svg b/img/microsoft.svg new file mode 100644 index 0000000..d60b797 --- /dev/null +++ b/img/microsoft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html index 8325c3f..1f12e1c 100644 --- a/index.html +++ b/index.html @@ -2,73 +2,75 @@ layout: default --- -
+ + + +
-

Language Server Protocol

-

+

+

Language Server Protocol

+
+

The Language Server Protocol (LSP) defines the protocol used between an editor or IDE to talk to a language server that provides language features like auto complete, goto definition, find all references.

+ +
+
+ + Watch +
-
+

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 over a protocol that enables inter-process communication.

+

The idea behind the Language Server Protocol (LSP) is to standardize the protocol for how tools and servers communicate, so a single Language Server can be re-used in multiple development tools, and tools can support languages with minimal effort.

+

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

-
+