* Minor formal improvements throughout the LSP spec
This mostly fixes some grammar, spelling, and punctuation issues
throughout version 3.18 of the LSP specification. Additionally,
some incorrect TypeScript syntax has been fixed.
Meta model files have not been changed.
* Fix EBNF grammar for snippets
To be precise, "fix" refers to the following changes in this commit:
* Incorrect grouping of alternatives has been remedied
* Ambiguities present in the grammar have been fixed,
the grammar should now be LL(1)-parseable.
* Grammar has been made consistent with the description above it.
Specifically, characters which have to be escaped per the textual
description now also need to be escaped per the grammar rules.
* A description for the ':+', ':?', and ':-' modifiers has been
added, as they seem to not be explained anywhere else in the spec.
* I have used the VSCode source code as a basis for these.
* The link has been updated to refer to the right EBNF specification,
as the grammar uses the XML variant rather than the one described
in the originally linked Wikipedia article.
* Address review comments by @dbaeumer
---------
Co-authored-by: Dirk Bäumer <dirkb@microsoft.com>
* Define separate tools protocol
Add note
Move the other bits
Define separate tools protocol
Rename to base protocol
Change version to 0.9
Use Base prefix and remove since annotations
Undo changes in LSP specs
Move all the lifecycle messages
Define separate tools protocol
* Move shared definitions
* Define regexes
* List reserved capabilities and improve examples
* Specs for work done progress
* Change enumeration example
* Make ClientCapabilities open
* Add InitializeResponse
* Remove text document stuff from registration messages
* Add motivation section
* Add experimental remark
* Point internal links to the correct LSP spec
For the LSP specs, the internal links will resolve to anchors in the same document.
For the LSIF, the variable `lspVersion` in the front-matter identifies the
corresponding LSP spec that this LSIF spec references.
* Use a Map instead of Object
* Remove external links which are not needed any more
- I tried making linking >= 3-17; however, that wasn't easily doable due to the structure of the jekyll site. The JSFiles themselves are included in the layout which don't have access to page level information. Because of this I've hacked a hardcoded "if 3.17" check into the injected JavaScript to support linking. Once we publish 3.17 we'll need to go back and update the logic to ensure that 3.17+ is supported.
Originally attempted fix here: https://github.com/microsoft/language-server-protocol/pull/1342
- Also allowed linking off to other pages if we want.
- This method includes a JavaScript snippet that post-processes the site to link out any code snippets/code types to corresponding links.