* Add support for `completionList.applyKind` to determine how values from `completionList.itemDefaults` and `completion` are combined.
Fixes https://github.com/microsoft/language-server-protocol/issues/1802
* Update completion.md
* Simplify by removing distinction between null/undefined
* Use a single client capability + add ApplyKind enum/type
* Make this clearer
* Minor fixes
- commitCharacters isn't allowed to be null so no point mentioning this
- Fix missing quote
- Fix error in ApplyKind type (either needs "typeof" or to use literals, and other things use literals)
* Change ApplyKind to be integers
* Typos
---------
Co-authored-by: Dirk Bäumer <dirkb@microsoft.com>
* 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>
The current text reads like you can escape $ and } where not strictly necessary, but according to VS Code's behaviour and https://github.com/microsoft/vscode/issues/201059 this is not the case - you may only escape the characters that are _required_ to be escaped, otherwise you'll see backslashes in the output.
Co-authored-by: Dirk Bäumer <dirkb@microsoft.com>
These notes are misleading to the user, "range" may refer to the range of application of the edit or the range of the generated text. This addition clarifies this difference.
Co-authored-by: Dirk Bäumer <dirkb@microsoft.com>
* Add "noActiveParameterSupport" to allow null active parameters
See https://github.com/microsoft/vscode/issues/145851.
* Updates for `null` `activeParameter`s
* Add a note about only being valid since 3.18
---------
Co-authored-by: Dirk Bäumer <dirkb@microsoft.com>