PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.9.3
Code Block Pro – Beautiful Syntax Highlighting v1.9.3
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / jinja.tmLanguage.json

jinja.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.9.3, at build/shiki/languages/jinja.tmLanguage.json

346 lines 8.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "name": "jinja",
3 "scopeName": "source.jinja",
4 "comment": "Jinja Templates",
5 "foldingStartMarker": "({%\\s*(block|filter|for|if|macro|raw))",
6 "foldingStopMarker": "({%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})",
7 "patterns": [
8 {
9 "begin": "({%)\\s*(raw)\\s*(%})",
10 "captures": {
11 "1": {
12 "name": "entity.other.jinja.delimiter.tag"
13 },
14 "2": {
15 "name": "keyword.control.jinja"
16 },
17 "3": {
18 "name": "entity.other.jinja.delimiter.tag"
19 }
20 },
21 "end": "({%)\\s*(endraw)\\s*(%})",
22 "name": "comment.block.jinja.raw"
23 },
24 {
25 "include": "#comments"
26 },
27 {
28 "begin": "{{-?",
29 "captures": [
30 {
31 "name": "entity.other.jinja.delimiter.variable"
32 }
33 ],
34 "end": "-?}}",
35 "name": "meta.scope.jinja.variable",
36 "patterns": [
37 {
38 "include": "#expression"
39 }
40 ]
41 },
42 {
43 "begin": "{%-?",
44 "captures": [
45 {
46 "name": "entity.other.jinja.delimiter.tag"
47 }
48 ],
49 "end": "-?%}",
50 "name": "meta.scope.jinja.tag",
51 "patterns": [
52 {
53 "include": "#expression"
54 }
55 ]
56 }
57 ],
58 "repository": {
59 "comments": {
60 "begin": "{#-?",
61 "captures": [
62 {
63 "name": "entity.other.jinja.delimiter.comment"
64 }
65 ],
66 "end": "-?#}",
67 "name": "comment.block.jinja",
68 "patterns": [
69 {
70 "include": "#comments"
71 }
72 ]
73 },
74 "escaped_char": {
75 "match": "\\\\x[0-9A-F]{2}",
76 "name": "constant.character.escape.hex.jinja"
77 },
78 "escaped_unicode_char": {
79 "captures": {
80 "1": {
81 "name": "constant.character.escape.unicode.16-bit-hex.jinja"
82 },
83 "2": {
84 "name": "constant.character.escape.unicode.32-bit-hex.jinja"
85 },
86 "3": {
87 "name": "constant.character.escape.unicode.name.jinja"
88 }
89 },
90 "match": "(\\\\U[0-9A-Fa-f]{8})|(\\\\u[0-9A-Fa-f]{4})|(\\\\N\\{[a-zA-Z ]+\\})"
91 },
92 "expression": {
93 "patterns": [
94 {
95 "captures": {
96 "1": {
97 "name": "keyword.control.jinja"
98 },
99 "2": {
100 "name": "variable.other.jinja.block"
101 }
102 },
103 "match": "\\s*\\b(block)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b"
104 },
105 {
106 "captures": {
107 "1": {
108 "name": "keyword.control.jinja"
109 },
110 "2": {
111 "name": "variable.other.jinja.filter"
112 }
113 },
114 "match": "\\s*\\b(filter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b"
115 },
116 {
117 "captures": {
118 "1": {
119 "name": "keyword.control.jinja"
120 },
121 "2": {
122 "name": "variable.other.jinja.test"
123 }
124 },
125 "match": "\\s*\\b(is)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b"
126 },
127 {
128 "captures": {
129 "1": {
130 "name": "keyword.control.jinja"
131 }
132 },
133 "match": "(?<=\\{\\%-|\\{\\%)\\s*\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*[,=])"
134 },
135 {
136 "match": "\\b(and|else|if|in|import|not|or|recursive|with(out)?\\s+context)\\b",
137 "name": "keyword.control.jinja"
138 },
139 {
140 "match": "\\b(true|false|none)\\b",
141 "name": "constant.language.jinja"
142 },
143 {
144 "match": "\\b(loop|super|self|varargs|kwargs)\\b",
145 "name": "variable.language.jinja"
146 },
147 {
148 "match": "[a-zA-Z_][a-zA-Z0-9_]*",
149 "name": "variable.other.jinja"
150 },
151 {
152 "match": "(\\+|\\-|\\*\\*|\\*|//|/|%)",
153 "name": "keyword.operator.arithmetic.jinja"
154 },
155 {
156 "captures": {
157 "1": {
158 "name": "punctuation.other.jinja"
159 },
160 "2": {
161 "name": "variable.other.jinja.filter"
162 }
163 },
164 "match": "(\\|)([a-zA-Z_][a-zA-Z0-9_]*)"
165 },
166 {
167 "captures": {
168 "1": {
169 "name": "punctuation.other.jinja"
170 },
171 "2": {
172 "name": "variable.other.jinja.attribute"
173 }
174 },
175 "match": "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)"
176 },
177 {
178 "begin": "\\[",
179 "captures": [
180 {
181 "name": "punctuation.other.jinja"
182 }
183 ],
184 "end": "\\]",
185 "patterns": [
186 {
187 "include": "#expression"
188 }
189 ]
190 },
191 {
192 "begin": "\\(",
193 "captures": [
194 {
195 "name": "punctuation.other.jinja"
196 }
197 ],
198 "end": "\\)",
199 "patterns": [
200 {
201 "include": "#expression"
202 }
203 ]
204 },
205 {
206 "begin": "\\{",
207 "captures": [
208 {
209 "name": "punctuation.other.jinja"
210 }
211 ],
212 "end": "\\}",
213 "patterns": [
214 {
215 "include": "#expression"
216 }
217 ]
218 },
219 {
220 "match": "(\\.|:|\\||,)",
221 "name": "punctuation.other.jinja"
222 },
223 {
224 "match": "(==|<=|=>|<|>|!=)",
225 "name": "keyword.operator.comparison.jinja"
226 },
227 {
228 "match": "=",
229 "name": "keyword.operator.assignment.jinja"
230 },
231 {
232 "begin": "\"",
233 "beginCaptures": [
234 {
235 "name": "punctuation.definition.string.begin.jinja"
236 }
237 ],
238 "end": "\"",
239 "endCaptures": [
240 {
241 "name": "punctuation.definition.string.end.jinja"
242 }
243 ],
244 "name": "string.quoted.double.jinja",
245 "patterns": [
246 {
247 "include": "#string"
248 }
249 ]
250 },
251 {
252 "begin": "'",
253 "beginCaptures": [
254 {
255 "name": "punctuation.definition.string.begin.jinja"
256 }
257 ],
258 "end": "'",
259 "endCaptures": [
260 {
261 "name": "punctuation.definition.string.end.jinja"
262 }
263 ],
264 "name": "string.quoted.single.jinja",
265 "patterns": [
266 {
267 "include": "#string"
268 }
269 ]
270 },
271 {
272 "begin": "@/",
273 "beginCaptures": [
274 {
275 "name": "punctuation.definition.regexp.begin.jinja"
276 }
277 ],
278 "end": "/",
279 "endCaptures": [
280 {
281 "name": "punctuation.definition.regexp.end.jinja"
282 }
283 ],
284 "name": "string.regexp.jinja",
285 "patterns": [
286 {
287 "include": "#simple_escapes"
288 }
289 ]
290 }
291 ]
292 },
293 "simple_escapes": {
294 "captures": {
295 "1": {
296 "name": "constant.character.escape.newline.jinja"
297 },
298 "2": {
299 "name": "constant.character.escape.backlash.jinja"
300 },
301 "3": {
302 "name": "constant.character.escape.double-quote.jinja"
303 },
304 "4": {
305 "name": "constant.character.escape.single-quote.jinja"
306 },
307 "5": {
308 "name": "constant.character.escape.bell.jinja"
309 },
310 "6": {
311 "name": "constant.character.escape.backspace.jinja"
312 },
313 "7": {
314 "name": "constant.character.escape.formfeed.jinja"
315 },
316 "8": {
317 "name": "constant.character.escape.linefeed.jinja"
318 },
319 "9": {
320 "name": "constant.character.escape.return.jinja"
321 },
322 "10": {
323 "name": "constant.character.escape.tab.jinja"
324 },
325 "11": {
326 "name": "constant.character.escape.vertical-tab.jinja"
327 }
328 },
329 "match": "(\\\\\\n)|(\\\\\\\\)|(\\\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)"
330 },
331 "string": {
332 "patterns": [
333 {
334 "include": "#simple_escapes"
335 },
336 {
337 "include": "#escaped_char"
338 },
339 {
340 "include": "#escaped_unicode_char"
341 }
342 ]
343 }
344 }
345 }
346