@blitz/textmate
Version:
TextMate Grammars for StackBlitz
173 lines (172 loc) • 3.79 kB
JSON
{
"scopeName": "template.tag.ng",
"injectionSelector": "L:text.html#meta.tag -comment",
"patterns": [
{
"include": "#propertyBinding"
},
{
"include": "#eventBinding"
},
{
"include": "#twoWayBinding"
},
{
"include": "#templateBinding"
}
],
"repository": {
"propertyBinding": {
"begin": "(\\[\\s*@?[-_a-zA-Z0-9.$]*%?\\s*])(=)([\"'])",
"beginCaptures": {
"1": {
"name": "entity.other.attribute-name.html entity.other.ng-binding-name.property.html",
"patterns": [
{
"include": "#bindingKey"
}
]
},
"2": {
"name": "punctuation.separator.key-value.html"
},
"3": {
"name": "string.quoted.html punctuation.definition.string.begin.html"
}
},
"end": "\\3",
"endCaptures": {
"0": {
"name": "string.quoted.html punctuation.definition.string.end.html"
}
},
"name": "meta.ng-binding.property.html",
"contentName": "expression.ng",
"patterns": [
{
"include": "expression.ng"
}
]
},
"eventBinding": {
"begin": "(\\(\\s*@?[-_a-zA-Z0-9.$]*\\s*\\))(=)([\"'])",
"beginCaptures": {
"1": {
"name": "entity.other.attribute-name.html entity.other.ng-binding-name.event.html",
"patterns": [
{
"include": "#bindingKey"
}
]
},
"2": {
"name": "punctuation.separator.key-value.html"
},
"3": {
"name": "string.quoted.html punctuation.definition.string.begin.html"
}
},
"end": "\\3",
"endCaptures": {
"0": {
"name": "string.quoted.html punctuation.definition.string.end.html"
}
},
"name": "meta.ng-binding.event.html",
"contentName": "expression.ng",
"patterns": [
{
"include": "expression.ng"
}
]
},
"twoWayBinding": {
"begin": "(\\[\\s*\\(\\s*@?[-_a-zA-Z0-9.$]*\\s*\\)\\s*\\])(=)([\"'])",
"beginCaptures": {
"1": {
"name": "entity.other.attribute-name.html entity.other.ng-binding-name.two-way.html",
"patterns": [
{
"include": "#bindingKey"
}
]
},
"2": {
"name": "punctuation.separator.key-value.html"
},
"3": {
"name": "string.quoted.html punctuation.definition.string.begin.html"
}
},
"end": "\\3",
"endCaptures": {
"0": {
"name": "string.quoted.html punctuation.definition.string.end.html"
}
},
"name": "meta.ng-binding.two-way.html",
"contentName": "expression.ng",
"patterns": [
{
"include": "expression.ng"
}
]
},
"templateBinding": {
"begin": "(\\*[-_a-zA-Z0-9.$]*)(=)([\"'])",
"beginCaptures": {
"1": {
"name": "entity.other.attribute-name.html entity.other.ng-binding-name.template.html",
"patterns": [
{
"include": "#bindingKey"
}
]
},
"2": {
"name": "punctuation.separator.key-value.html"
},
"3": {
"name": "string.quoted.html punctuation.definition.string.begin.html"
}
},
"end": "\\3",
"endCaptures": {
"0": {
"name": "string.quoted.html punctuation.definition.string.end.html"
}
},
"name": "meta.ng-binding.template.html",
"contentName": "expression.ng",
"patterns": [
{
"include": "expression.ng"
}
]
},
"bindingKey": {
"patterns": [
{
"match": "([\\[\\(]{1,2}|\\*)(?:\\s*)(@?[-_a-zA-Z0-9.$]*%?)(?:\\s*)([\\]\\)]{1,2})?",
"captures": {
"1": {
"name": "punctuation.definition.ng-binding-name.begin.html"
},
"2": {
"name": "entity.other.ng-binding-name.$2.html",
"patterns": [
{
"match": "\\.",
"name": "punctuation.accessor.html"
}
]
},
"3": {
"name": "punctuation.definition.ng-binding-name.end.html"
}
}
}
]
}
}
}