vscode-textmate
vscode-textmate copied to clipboard
JSON key `"id"` breaks the tokenizer
The internal tokenizer uses the key "id"
as a way to keep track of rules within a grammar
However, the parser does not strip "id"
keys from the grammar before parsing
if a invalid "id"
key is hit during tokenizing, it will lead to unpredictable tokenizing and the grammar partially failing
Luckily it seems no one has placed one in the wrong spot (having one at root is fine) tho I assume that's because they would have noticed their grammar no longer working when it is present https://github.com/search?q=path%3A*.tmLanguage.json+%22%5C%22id%5C%22%3A%22&type=code
{
"scopeName": "source.lang",
"patterns": [
{
"begin": "\"",
"end": "\"",
"name": "string",
"patterns": [ { "include": "#backslash" } ]
}
],
"repository": {
"backslash": {
"match": "\\\\.",
"name": "constant.character.escape",
"id": "JSON key \"id\" breaks this rule and its parent"
}
}
}