UNPKG

tm-grammars

Version:
144 lines (143 loc) 3.1 kB
{ "injectTo": [ "text.html.derivative", "text.html.derivative.ng", "source.ts.ng" ], "injectionSelector": "L:text.html -comment -expression.ng -meta.tag -source.css -source.js", "name": "angular-template-blocks", "patterns": [ { "include": "#block" } ], "repository": { "block": { "begin": "(@)(if|else if|else|defer|placeholder|loading|error|switch|case|default|for|empty)\\s*", "beginCaptures": { "1": { "patterns": [ { "include": "#transition" } ] }, "2": { "name": "keyword.control.block.kind.ng" } }, "end": "(?<=})", "name": "control.block.ng", "patterns": [ { "include": "#blockExpression" }, { "include": "#blockBody" } ] }, "blockBody": { "begin": "\\{", "beginCaptures": { "0": { "name": "punctuation.definition.block.ts" } }, "contentName": "control.block.body.ng", "end": "}", "endCaptures": { "0": { "name": "punctuation.definition.block.ts" } }, "patterns": [ { "include": "text.html.derivative.ng" }, { "include": "template.ng" } ] }, "blockExpression": { "begin": "\\(", "beginCaptures": { "0": { "name": "meta.brace.round.ts" } }, "contentName": "control.block.expression.ng", "end": "\\)", "endCaptures": { "0": { "name": "meta.brace.round.ts" } }, "patterns": [ { "include": "#blockExpressionOfClause" }, { "include": "#blockExpressionLetBinding" }, { "include": "#blockExpressionTrackClause" }, { "include": "expression.ng" } ] }, "blockExpressionLetBinding": { "begin": "\\blet\\b", "beginCaptures": { "0": { "name": "storage.type.ng" } }, "end": "(?=[$)])|(?<=;)", "patterns": [ { "include": "expression.ng" } ] }, "blockExpressionOfClause": { "begin": "([$_[:alpha:]][$_[:alnum:]]*)\\s+(of)\\b", "beginCaptures": { "1": { "name": "variable.other.constant.ng" }, "2": { "name": "keyword.operator.expression.of.ng" } }, "end": "(?=[$)])|(?<=;)", "patterns": [ { "include": "expression.ng" } ] }, "blockExpressionTrackClause": { "begin": "\\btrack\\b", "beginCaptures": { "0": { "name": "keyword.control.track.ng" } }, "end": "(?=[$)])|(?<=;)", "patterns": [ { "include": "expression.ng" } ] }, "transition": { "match": "@", "name": "keyword.control.block.transition.ng" } }, "scopeName": "template.blocks.ng" }