package tm-grammars

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file tm_grammar_angular_template_blocks.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
let lang_id = "angular-template-blocks"
let json = {json|{
  "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"
}|json}