tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1522 @@
1
+ {
2
+ "displayName": "Nim",
3
+ "fileTypes": [
4
+ "nim"
5
+ ],
6
+ "name": "nim",
7
+ "patterns": [
8
+ {
9
+ "begin": "[ \\t]*##\\[",
10
+ "contentName": "comment.block.doc-comment.content.nim",
11
+ "end": "\\]##",
12
+ "name": "comment.block.doc-comment.nim",
13
+ "patterns": [
14
+ {
15
+ "include": "#multilinedoccomment",
16
+ "name": "comment.block.doc-comment.nested.nim"
17
+ }
18
+ ]
19
+ },
20
+ {
21
+ "begin": "[ \\t]*#\\[",
22
+ "contentName": "comment.block.content.nim",
23
+ "end": "\\]#",
24
+ "name": "comment.block.nim",
25
+ "patterns": [
26
+ {
27
+ "include": "#multilinecomment",
28
+ "name": "comment.block.nested.nim"
29
+ }
30
+ ]
31
+ },
32
+ {
33
+ "begin": "(^[ \\t]+)?(?=##)",
34
+ "beginCaptures": {
35
+ "1": {
36
+ "name": "punctuation.whitespace.comment.leading.nim"
37
+ }
38
+ },
39
+ "end": "(?!\\G)",
40
+ "patterns": [
41
+ {
42
+ "begin": "##",
43
+ "beginCaptures": {
44
+ "0": {
45
+ "name": "punctuation.definition.comment.nim"
46
+ }
47
+ },
48
+ "end": "\\n",
49
+ "name": "comment.line.number-sign.doc-comment.nim"
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "begin": "(^[ \\t]+)?(?=#[^\\[])",
55
+ "beginCaptures": {
56
+ "1": {
57
+ "name": "punctuation.whitespace.comment.leading.nim"
58
+ }
59
+ },
60
+ "end": "(?!\\G)",
61
+ "patterns": [
62
+ {
63
+ "begin": "#",
64
+ "beginCaptures": {
65
+ "0": {
66
+ "name": "punctuation.definition.comment.nim"
67
+ }
68
+ },
69
+ "end": "\\n",
70
+ "name": "comment.line.number-sign.nim"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "comment": "A nim procedure or method",
76
+ "name": "meta.proc.nim",
77
+ "patterns": [
78
+ {
79
+ "begin": "\\b(proc|method|template|macro|iterator|converter|func)\\s+\\`?([^\\:\\{\\s\\`\\*\\(]*)\\`?(\\s*\\*)?\\s*(?=\\(|\\=|:|\\[|\\n|\\{)",
80
+ "captures": {
81
+ "1": {
82
+ "name": "keyword.other"
83
+ },
84
+ "2": {
85
+ "name": "entity.name.function.nim"
86
+ },
87
+ "3": {
88
+ "name": "keyword.control.export"
89
+ }
90
+ },
91
+ "end": "\\)",
92
+ "patterns": [
93
+ {
94
+ "include": "source.nim"
95
+ }
96
+ ]
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "begin": "discard \"\"\"",
102
+ "comment": "A discarded triple string literal comment",
103
+ "end": "\"\"\"(?!\")",
104
+ "name": "comment.line.discarded.nim"
105
+ },
106
+ {
107
+ "include": "#float_literal"
108
+ },
109
+ {
110
+ "include": "#integer_literal"
111
+ },
112
+ {
113
+ "comment": "Operator as function name",
114
+ "match": "(?<=\\`)[^\\` ]+(?=\\`)",
115
+ "name": "entity.name.function.nim"
116
+ },
117
+ {
118
+ "captures": {
119
+ "1": {
120
+ "name": "keyword.control.export"
121
+ }
122
+ },
123
+ "comment": "Export qualifier.",
124
+ "match": "\\b\\s*(\\*)(?:\\s*(?=[,:])|\\s+(?=[=]))"
125
+ },
126
+ {
127
+ "captures": {
128
+ "1": {
129
+ "name": "support.type.nim"
130
+ },
131
+ "2": {
132
+ "name": "keyword.control.export"
133
+ }
134
+ },
135
+ "comment": "Export qualifier following a type def.",
136
+ "match": "\\b([A-Z]\\w+)(\\*)"
137
+ },
138
+ {
139
+ "include": "#string_literal"
140
+ },
141
+ {
142
+ "comment": "Language Constants.",
143
+ "match": "\\b(true|false|Inf|NegInf|NaN|nil)\\b",
144
+ "name": "constant.language.nim"
145
+ },
146
+ {
147
+ "comment": "Keywords that affect program control flow or scope.",
148
+ "match": "\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b",
149
+ "name": "keyword.control.nim"
150
+ },
151
+ {
152
+ "comment": "Keyword boolean operators for expressions.",
153
+ "match": "(\\b(and|in|is|isnot|not|notin|or|xor)\\b)",
154
+ "name": "keyword.boolean.nim"
155
+ },
156
+ {
157
+ "comment": "Generic operators for expressions.",
158
+ "match": "(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+",
159
+ "name": "keyword.operator.nim"
160
+ },
161
+ {
162
+ "comment": "Other keywords.",
163
+ "match": "(\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\b)",
164
+ "name": "keyword.other.nim"
165
+ },
166
+ {
167
+ "comment": "Invalid and unused keywords.",
168
+ "match": "(\\b(generic|interface|lambda|out|shared)\\b)",
169
+ "name": "invalid.illegal.invalid-keyword.nim"
170
+ },
171
+ {
172
+ "comment": "Common functions",
173
+ "match": "\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\b",
174
+ "name": "keyword.other.common.function.nim"
175
+ },
176
+ {
177
+ "comment": "Built-in, concrete types.",
178
+ "match": "\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\b",
179
+ "name": "storage.type.concrete.nim"
180
+ },
181
+ {
182
+ "comment": "Built-in, generic types.",
183
+ "match": "\\b(range|array|seq|set|pointer)\\b",
184
+ "name": "storage.type.generic.nim"
185
+ },
186
+ {
187
+ "comment": "Special types.",
188
+ "match": "\\b(openarray|varargs|void)\\b",
189
+ "name": "storage.type.generic.nim"
190
+ },
191
+ {
192
+ "comment": "Other constants.",
193
+ "match": "\\b[A-Z][A-Z0-9_]+\\b",
194
+ "name": "support.constant.nim"
195
+ },
196
+ {
197
+ "comment": "Other types.",
198
+ "match": "\\b[A-Z]\\w+\\b",
199
+ "name": "support.type.nim"
200
+ },
201
+ {
202
+ "comment": "Function call.",
203
+ "match": "\\b\\w+\\b(?=(\\[([a-zA-Z0-9_,]|\\s)+\\])?\\()",
204
+ "name": "support.function.any-method.nim"
205
+ },
206
+ {
207
+ "comment": "Function call (no parenthesis).",
208
+ "match": "(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b)\\w+\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\"'`(-+]+)\\b)(?=[a-zA-Z0-9_\"'`(-+])",
209
+ "name": "support.function.any-method.nim"
210
+ },
211
+ {
212
+ "begin": "(^\\s*)?(?=\\{\\.emit: ?\"\"\")",
213
+ "beginCaptures": {
214
+ "0": {
215
+ "name": "punctuation.whitespace.embedded.leading.nim"
216
+ }
217
+ },
218
+ "end": "(?!\\G)(\\s*$\\n?)?",
219
+ "endCaptures": {
220
+ "0": {
221
+ "name": "punctuation.whitespace.embedded.trailing.nim"
222
+ }
223
+ },
224
+ "patterns": [
225
+ {
226
+ "begin": "\\{\\.(emit:) ?(\"\"\")",
227
+ "captures": {
228
+ "1": {
229
+ "name": "keyword.other.nim"
230
+ },
231
+ "2": {
232
+ "name": "punctuation.section.embedded.begin.nim"
233
+ }
234
+ },
235
+ "contentName": "source.c",
236
+ "end": "(\")\"\"(?!\")(\\.{0,1}\\})?",
237
+ "endCaptures": {
238
+ "0": {
239
+ "name": "punctuation.section.embedded.end.nim"
240
+ },
241
+ "1": {
242
+ "name": "source.c"
243
+ }
244
+ },
245
+ "name": "meta.embedded.block.c",
246
+ "patterns": [
247
+ {
248
+ "begin": "\\`",
249
+ "end": "\\`",
250
+ "name": "keyword.operator.nim"
251
+ },
252
+ {
253
+ "include": "source.c"
254
+ }
255
+ ]
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "begin": "\\{\\.",
261
+ "beginCaptures": {
262
+ "0": {
263
+ "name": "punctuation.pragma.start.nim"
264
+ }
265
+ },
266
+ "end": "\\.?\\}",
267
+ "endCaptures": {
268
+ "0": {
269
+ "name": "punctuation.pragma.end.nim"
270
+ }
271
+ },
272
+ "patterns": [
273
+ {
274
+ "begin": "\\b([[:alpha:]]\\w*)(?:\\s|\\s*:)",
275
+ "beginCaptures": {
276
+ "1": {
277
+ "name": "meta.preprocessor.pragma.nim"
278
+ }
279
+ },
280
+ "end": "(?=\\.?\\}|,)",
281
+ "patterns": [
282
+ {
283
+ "include": "source.nim"
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ "begin": "\\b([[:alpha:]]\\w*)\\(",
289
+ "beginCaptures": {
290
+ "1": {
291
+ "name": "meta.preprocessor.pragma.nim"
292
+ }
293
+ },
294
+ "end": "\\)",
295
+ "patterns": [
296
+ {
297
+ "include": "source.nim"
298
+ }
299
+ ]
300
+ },
301
+ {
302
+ "captures": {
303
+ "1": {
304
+ "name": "meta.preprocessor.pragma.nim"
305
+ }
306
+ },
307
+ "match": "\\b([[:alpha:]]\\w*)(?=\\.?\\}|,)"
308
+ },
309
+ {
310
+ "begin": "\\b([[:alpha:]]\\w*)(\"\"\")",
311
+ "beginCaptures": {
312
+ "1": {
313
+ "name": "meta.preprocessor.pragma.nim"
314
+ },
315
+ "2": {
316
+ "name": "punctuation.definition.string.begin.nim"
317
+ }
318
+ },
319
+ "end": "\"\"\"(?!\")",
320
+ "endCaptures": {
321
+ "0": {
322
+ "name": "punctuation.definition.string.end.nim"
323
+ }
324
+ },
325
+ "name": "string.quoted.triple.raw.nim"
326
+ },
327
+ {
328
+ "begin": "\\b([[:alpha:]]\\w*)(\")",
329
+ "beginCaptures": {
330
+ "1": {
331
+ "name": "meta.preprocessor.pragma.nim"
332
+ },
333
+ "2": {
334
+ "name": "punctuation.definition.string.begin.nim"
335
+ }
336
+ },
337
+ "end": "\"",
338
+ "endCaptures": {
339
+ "0": {
340
+ "name": "punctuation.definition.string.end.nim"
341
+ }
342
+ },
343
+ "name": "string.quoted.double.raw.nim"
344
+ },
345
+ {
346
+ "begin": "\\b(hint\\[\\w+\\]):",
347
+ "beginCaptures": {
348
+ "1": {
349
+ "name": "meta.preprocessor.pragma.nim"
350
+ }
351
+ },
352
+ "end": "(?=\\.?\\}|,)",
353
+ "patterns": [
354
+ {
355
+ "include": "source.nim"
356
+ }
357
+ ]
358
+ },
359
+ {
360
+ "match": ",",
361
+ "name": "punctuation.separator.comma.nim"
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ "begin": "(^\\s*)?(?=asm \"\"\")",
367
+ "beginCaptures": {
368
+ "0": {
369
+ "name": "punctuation.whitespace.embedded.leading.nim"
370
+ }
371
+ },
372
+ "end": "(?!\\G)(\\s*$\\n?)?",
373
+ "endCaptures": {
374
+ "0": {
375
+ "name": "punctuation.whitespace.embedded.trailing.nim"
376
+ }
377
+ },
378
+ "patterns": [
379
+ {
380
+ "begin": "(asm) (\"\"\")",
381
+ "captures": {
382
+ "1": {
383
+ "name": "keyword.other.nim"
384
+ },
385
+ "2": {
386
+ "name": "punctuation.section.embedded.begin.nim"
387
+ }
388
+ },
389
+ "contentName": "source.asm",
390
+ "end": "(\")\"\"(?!\")",
391
+ "endCaptures": {
392
+ "0": {
393
+ "name": "punctuation.section.embedded.end.nim"
394
+ },
395
+ "1": {
396
+ "name": "source.asm"
397
+ }
398
+ },
399
+ "name": "meta.embedded.block.asm",
400
+ "patterns": [
401
+ {
402
+ "begin": "\\`",
403
+ "end": "\\`",
404
+ "name": "keyword.operator.nim"
405
+ },
406
+ {
407
+ "include": "source.asm"
408
+ }
409
+ ]
410
+ }
411
+ ]
412
+ },
413
+ {
414
+ "captures": {
415
+ "1": {
416
+ "name": "storage.type.function.nim"
417
+ },
418
+ "2": {
419
+ "name": "keyword.operator.nim"
420
+ }
421
+ },
422
+ "comment": "tmpl specifier",
423
+ "match": "(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?\"\"\")"
424
+ },
425
+ {
426
+ "begin": "(^\\s*)?(?=html\"\"\")",
427
+ "beginCaptures": {
428
+ "0": {
429
+ "name": "punctuation.whitespace.embedded.leading.nim"
430
+ }
431
+ },
432
+ "end": "(?!\\G)(\\s*$\\n?)?",
433
+ "endCaptures": {
434
+ "0": {
435
+ "name": "punctuation.whitespace.embedded.trailing.nim"
436
+ }
437
+ },
438
+ "patterns": [
439
+ {
440
+ "begin": "(html)(\"\"\")",
441
+ "captures": {
442
+ "1": {
443
+ "name": "keyword.other.nim"
444
+ },
445
+ "2": {
446
+ "name": "punctuation.section.embedded.begin.nim"
447
+ }
448
+ },
449
+ "contentName": "text.html",
450
+ "end": "(\")\"\"(?!\")",
451
+ "endCaptures": {
452
+ "0": {
453
+ "name": "punctuation.section.embedded.end.nim"
454
+ },
455
+ "1": {
456
+ "name": "text.html"
457
+ }
458
+ },
459
+ "name": "meta.embedded.block.html",
460
+ "patterns": [
461
+ {
462
+ "begin": "(?<!\\$)(\\$)\\(",
463
+ "captures": {
464
+ "1": {
465
+ "name": "keyword.operator.nim"
466
+ }
467
+ },
468
+ "end": "\\)",
469
+ "patterns": [
470
+ {
471
+ "include": "source.nim"
472
+ }
473
+ ]
474
+ },
475
+ {
476
+ "begin": "(?<!\\$)(\\$)\\{",
477
+ "captures": {
478
+ "1": {
479
+ "name": "keyword.operator.nim"
480
+ },
481
+ "2": {
482
+ "name": "keyword.operator.nim"
483
+ }
484
+ },
485
+ "end": "\\}",
486
+ "patterns": [
487
+ {
488
+ "include": "source.nim"
489
+ }
490
+ ]
491
+ },
492
+ {
493
+ "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
494
+ "captures": {
495
+ "1": {
496
+ "name": "keyword.operator.nim"
497
+ },
498
+ "2": {
499
+ "name": "keyword.operator.nim"
500
+ }
501
+ },
502
+ "end": "(\\{|\\n)",
503
+ "endCaptures": {
504
+ "1": {
505
+ "name": "plain"
506
+ }
507
+ },
508
+ "patterns": [
509
+ {
510
+ "include": "source.nim"
511
+ }
512
+ ]
513
+ },
514
+ {
515
+ "match": "(?<!\\$)(\\$\\w+)",
516
+ "name": "keyword.operator.nim"
517
+ },
518
+ {
519
+ "include": "text.html.basic"
520
+ }
521
+ ]
522
+ }
523
+ ]
524
+ },
525
+ {
526
+ "begin": "(^\\s*)?(?=xml\"\"\")",
527
+ "beginCaptures": {
528
+ "0": {
529
+ "name": "punctuation.whitespace.embedded.leading.nim"
530
+ }
531
+ },
532
+ "end": "(?!\\G)(\\s*$\\n?)?",
533
+ "endCaptures": {
534
+ "0": {
535
+ "name": "punctuation.whitespace.embedded.trailing.nim"
536
+ }
537
+ },
538
+ "patterns": [
539
+ {
540
+ "begin": "(xml)(\"\"\")",
541
+ "captures": {
542
+ "1": {
543
+ "name": "keyword.other.nim"
544
+ },
545
+ "2": {
546
+ "name": "punctuation.section.embedded.begin.nim"
547
+ }
548
+ },
549
+ "contentName": "text.xml",
550
+ "end": "(\")\"\"(?!\")",
551
+ "endCaptures": {
552
+ "0": {
553
+ "name": "punctuation.section.embedded.end.nim"
554
+ },
555
+ "1": {
556
+ "name": "text.xml"
557
+ }
558
+ },
559
+ "name": "meta.embedded.block.xml",
560
+ "patterns": [
561
+ {
562
+ "begin": "(?<!\\$)(\\$)\\(",
563
+ "captures": {
564
+ "1": {
565
+ "name": "keyword.operator.nim"
566
+ }
567
+ },
568
+ "end": "\\)",
569
+ "patterns": [
570
+ {
571
+ "include": "source.nim"
572
+ }
573
+ ]
574
+ },
575
+ {
576
+ "begin": "(?<!\\$)(\\$)\\{",
577
+ "captures": {
578
+ "1": {
579
+ "name": "keyword.operator.nim"
580
+ },
581
+ "2": {
582
+ "name": "keyword.operator.nim"
583
+ }
584
+ },
585
+ "end": "\\}",
586
+ "patterns": [
587
+ {
588
+ "include": "source.nim"
589
+ }
590
+ ]
591
+ },
592
+ {
593
+ "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
594
+ "captures": {
595
+ "1": {
596
+ "name": "keyword.operator.nim"
597
+ },
598
+ "2": {
599
+ "name": "keyword.operator.nim"
600
+ }
601
+ },
602
+ "end": "(\\{|\\n)",
603
+ "endCaptures": {
604
+ "1": {
605
+ "name": "plain"
606
+ }
607
+ },
608
+ "patterns": [
609
+ {
610
+ "include": "source.nim"
611
+ }
612
+ ]
613
+ },
614
+ {
615
+ "match": "(?<!\\$)(\\$\\w+)",
616
+ "name": "keyword.operator.nim"
617
+ },
618
+ {
619
+ "include": "text.xml"
620
+ }
621
+ ]
622
+ }
623
+ ]
624
+ },
625
+ {
626
+ "begin": "(^\\s*)?(?=js\"\"\")",
627
+ "beginCaptures": {
628
+ "0": {
629
+ "name": "punctuation.whitespace.embedded.leading.nim"
630
+ }
631
+ },
632
+ "end": "(?!\\G)(\\s*$\\n?)?",
633
+ "endCaptures": {
634
+ "0": {
635
+ "name": "punctuation.whitespace.embedded.trailing.nim"
636
+ }
637
+ },
638
+ "patterns": [
639
+ {
640
+ "begin": "(js)(\"\"\")",
641
+ "captures": {
642
+ "1": {
643
+ "name": "keyword.other.nim"
644
+ },
645
+ "2": {
646
+ "name": "punctuation.section.embedded.begin.nim"
647
+ }
648
+ },
649
+ "contentName": "source.js",
650
+ "end": "(\")\"\"(?!\")",
651
+ "endCaptures": {
652
+ "0": {
653
+ "name": "punctuation.section.embedded.end.nim"
654
+ },
655
+ "1": {
656
+ "name": "source.js"
657
+ }
658
+ },
659
+ "name": "meta.embedded.block.js",
660
+ "patterns": [
661
+ {
662
+ "begin": "(?<!\\$)(\\$)\\(",
663
+ "captures": {
664
+ "1": {
665
+ "name": "keyword.operator.nim"
666
+ }
667
+ },
668
+ "end": "\\)",
669
+ "patterns": [
670
+ {
671
+ "include": "source.nim"
672
+ }
673
+ ]
674
+ },
675
+ {
676
+ "begin": "(?<!\\$)(\\$)\\{",
677
+ "captures": {
678
+ "1": {
679
+ "name": "keyword.operator.nim"
680
+ },
681
+ "2": {
682
+ "name": "keyword.operator.nim"
683
+ }
684
+ },
685
+ "end": "\\}",
686
+ "patterns": [
687
+ {
688
+ "include": "source.nim"
689
+ }
690
+ ]
691
+ },
692
+ {
693
+ "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
694
+ "captures": {
695
+ "1": {
696
+ "name": "keyword.operator.nim"
697
+ },
698
+ "2": {
699
+ "name": "keyword.operator.nim"
700
+ }
701
+ },
702
+ "end": "(\\{|\\n)",
703
+ "endCaptures": {
704
+ "1": {
705
+ "name": "plain"
706
+ }
707
+ },
708
+ "patterns": [
709
+ {
710
+ "include": "source.nim"
711
+ }
712
+ ]
713
+ },
714
+ {
715
+ "match": "(?<!\\$)(\\$\\w+)",
716
+ "name": "keyword.operator.nim"
717
+ },
718
+ {
719
+ "include": "source.js"
720
+ }
721
+ ]
722
+ }
723
+ ]
724
+ },
725
+ {
726
+ "begin": "(^\\s*)?(?=css\"\"\")",
727
+ "beginCaptures": {
728
+ "0": {
729
+ "name": "punctuation.whitespace.embedded.leading.nim"
730
+ }
731
+ },
732
+ "end": "(?!\\G)(\\s*$\\n?)?",
733
+ "endCaptures": {
734
+ "0": {
735
+ "name": "punctuation.whitespace.embedded.trailing.nim"
736
+ }
737
+ },
738
+ "patterns": [
739
+ {
740
+ "begin": "(css)(\"\"\")",
741
+ "captures": {
742
+ "1": {
743
+ "name": "keyword.other.nim"
744
+ },
745
+ "2": {
746
+ "name": "punctuation.section.embedded.begin.nim"
747
+ }
748
+ },
749
+ "contentName": "source.css",
750
+ "end": "(\")\"\"(?!\")",
751
+ "endCaptures": {
752
+ "0": {
753
+ "name": "punctuation.section.embedded.end.nim"
754
+ },
755
+ "1": {
756
+ "name": "source.css"
757
+ }
758
+ },
759
+ "name": "meta.embedded.block.css",
760
+ "patterns": [
761
+ {
762
+ "begin": "(?<!\\$)(\\$)\\(",
763
+ "captures": {
764
+ "1": {
765
+ "name": "keyword.operator.nim"
766
+ }
767
+ },
768
+ "end": "\\)",
769
+ "patterns": [
770
+ {
771
+ "include": "source.nim"
772
+ }
773
+ ]
774
+ },
775
+ {
776
+ "begin": "(?<!\\$)(\\$)\\{",
777
+ "captures": {
778
+ "1": {
779
+ "name": "keyword.operator.nim"
780
+ },
781
+ "2": {
782
+ "name": "keyword.operator.nim"
783
+ }
784
+ },
785
+ "end": "\\}",
786
+ "patterns": [
787
+ {
788
+ "include": "source.nim"
789
+ }
790
+ ]
791
+ },
792
+ {
793
+ "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
794
+ "captures": {
795
+ "1": {
796
+ "name": "keyword.operator.nim"
797
+ },
798
+ "2": {
799
+ "name": "keyword.operator.nim"
800
+ }
801
+ },
802
+ "end": "(\\{|\\n)",
803
+ "endCaptures": {
804
+ "1": {
805
+ "name": "plain"
806
+ }
807
+ },
808
+ "patterns": [
809
+ {
810
+ "include": "source.nim"
811
+ }
812
+ ]
813
+ },
814
+ {
815
+ "match": "(?<!\\$)(\\$\\w+)",
816
+ "name": "keyword.operator.nim"
817
+ },
818
+ {
819
+ "include": "source.css"
820
+ }
821
+ ]
822
+ }
823
+ ]
824
+ },
825
+ {
826
+ "begin": "(^\\s*)?(?=glsl\"\"\")",
827
+ "beginCaptures": {
828
+ "0": {
829
+ "name": "punctuation.whitespace.embedded.leading.nim"
830
+ }
831
+ },
832
+ "end": "(?!\\G)(\\s*$\\n?)?",
833
+ "endCaptures": {
834
+ "0": {
835
+ "name": "punctuation.whitespace.embedded.trailing.nim"
836
+ }
837
+ },
838
+ "patterns": [
839
+ {
840
+ "begin": "(glsl)(\"\"\")",
841
+ "captures": {
842
+ "1": {
843
+ "name": "keyword.other.nim"
844
+ },
845
+ "2": {
846
+ "name": "punctuation.section.embedded.begin.nim"
847
+ }
848
+ },
849
+ "contentName": "source.glsl",
850
+ "end": "(\")\"\"(?!\")",
851
+ "endCaptures": {
852
+ "0": {
853
+ "name": "punctuation.section.embedded.end.nim"
854
+ },
855
+ "1": {
856
+ "name": "source.glsl"
857
+ }
858
+ },
859
+ "name": "meta.embedded.block.glsl",
860
+ "patterns": [
861
+ {
862
+ "begin": "(?<!\\$)(\\$)\\(",
863
+ "captures": {
864
+ "1": {
865
+ "name": "keyword.operator.nim"
866
+ }
867
+ },
868
+ "end": "\\)",
869
+ "patterns": [
870
+ {
871
+ "include": "source.nim"
872
+ }
873
+ ]
874
+ },
875
+ {
876
+ "begin": "(?<!\\$)(\\$)\\{",
877
+ "captures": {
878
+ "1": {
879
+ "name": "keyword.operator.nim"
880
+ },
881
+ "2": {
882
+ "name": "keyword.operator.nim"
883
+ }
884
+ },
885
+ "end": "\\}",
886
+ "patterns": [
887
+ {
888
+ "include": "source.nim"
889
+ }
890
+ ]
891
+ },
892
+ {
893
+ "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
894
+ "captures": {
895
+ "1": {
896
+ "name": "keyword.operator.nim"
897
+ },
898
+ "2": {
899
+ "name": "keyword.operator.nim"
900
+ }
901
+ },
902
+ "end": "(\\{|\\n)",
903
+ "endCaptures": {
904
+ "1": {
905
+ "name": "plain"
906
+ }
907
+ },
908
+ "patterns": [
909
+ {
910
+ "include": "source.nim"
911
+ }
912
+ ]
913
+ },
914
+ {
915
+ "match": "(?<!\\$)(\\$\\w+)",
916
+ "name": "keyword.operator.nim"
917
+ },
918
+ {
919
+ "include": "source.glsl"
920
+ }
921
+ ]
922
+ }
923
+ ]
924
+ },
925
+ {
926
+ "begin": "(^\\s*)?(?=md\"\"\")",
927
+ "beginCaptures": {
928
+ "0": {
929
+ "name": "punctuation.whitespace.embedded.leading.nim"
930
+ }
931
+ },
932
+ "end": "(?!\\G)(\\s*$\\n?)?",
933
+ "endCaptures": {
934
+ "0": {
935
+ "name": "punctuation.whitespace.embedded.trailing.nim"
936
+ }
937
+ },
938
+ "patterns": [
939
+ {
940
+ "begin": "(md)(\"\"\")",
941
+ "captures": {
942
+ "1": {
943
+ "name": "keyword.other.nim"
944
+ },
945
+ "2": {
946
+ "name": "punctuation.section.embedded.begin.nim"
947
+ }
948
+ },
949
+ "contentName": "text.html.markdown",
950
+ "end": "(\")\"\"(?!\")",
951
+ "endCaptures": {
952
+ "0": {
953
+ "name": "punctuation.section.embedded.end.nim"
954
+ },
955
+ "1": {
956
+ "name": "text.html.markdown"
957
+ }
958
+ },
959
+ "name": "meta.embedded.block.html.markdown",
960
+ "patterns": [
961
+ {
962
+ "begin": "(?<!\\$)(\\$)\\(",
963
+ "captures": {
964
+ "1": {
965
+ "name": "keyword.operator.nim"
966
+ }
967
+ },
968
+ "end": "\\)",
969
+ "patterns": [
970
+ {
971
+ "include": "source.nim"
972
+ }
973
+ ]
974
+ },
975
+ {
976
+ "begin": "(?<!\\$)(\\$)\\{",
977
+ "captures": {
978
+ "1": {
979
+ "name": "keyword.operator.nim"
980
+ },
981
+ "2": {
982
+ "name": "keyword.operator.nim"
983
+ }
984
+ },
985
+ "end": "\\}",
986
+ "patterns": [
987
+ {
988
+ "include": "source.nim"
989
+ }
990
+ ]
991
+ },
992
+ {
993
+ "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",
994
+ "captures": {
995
+ "1": {
996
+ "name": "keyword.operator.nim"
997
+ },
998
+ "2": {
999
+ "name": "keyword.operator.nim"
1000
+ }
1001
+ },
1002
+ "end": "(\\{|\\n)",
1003
+ "endCaptures": {
1004
+ "1": {
1005
+ "name": "plain"
1006
+ }
1007
+ },
1008
+ "patterns": [
1009
+ {
1010
+ "include": "source.nim"
1011
+ }
1012
+ ]
1013
+ },
1014
+ {
1015
+ "match": "(?<!\\$)(\\$\\w+)",
1016
+ "name": "keyword.operator.nim"
1017
+ },
1018
+ {
1019
+ "include": "text.html.markdown"
1020
+ }
1021
+ ]
1022
+ }
1023
+ ]
1024
+ }
1025
+ ],
1026
+ "repository": {
1027
+ "char_escapes": {
1028
+ "patterns": [
1029
+ {
1030
+ "match": "\\\\[cC]|\\\\[rR]",
1031
+ "name": "constant.character.escape.carriagereturn.nim"
1032
+ },
1033
+ {
1034
+ "match": "\\\\[lL]|\\\\[nN]",
1035
+ "name": "constant.character.escape.linefeed.nim"
1036
+ },
1037
+ {
1038
+ "match": "\\\\[fF]",
1039
+ "name": "constant.character.escape.formfeed.nim"
1040
+ },
1041
+ {
1042
+ "match": "\\\\[tT]",
1043
+ "name": "constant.character.escape.tabulator.nim"
1044
+ },
1045
+ {
1046
+ "match": "\\\\[vV]",
1047
+ "name": "constant.character.escape.verticaltabulator.nim"
1048
+ },
1049
+ {
1050
+ "match": "\\\\\\\"",
1051
+ "name": "constant.character.escape.double-quote.nim"
1052
+ },
1053
+ {
1054
+ "match": "\\\\'",
1055
+ "name": "constant.character.escape.single-quote.nim"
1056
+ },
1057
+ {
1058
+ "match": "\\\\[0-9]+",
1059
+ "name": "constant.character.escape.chardecimalvalue.nim"
1060
+ },
1061
+ {
1062
+ "match": "\\\\[aA]",
1063
+ "name": "constant.character.escape.alert.nim"
1064
+ },
1065
+ {
1066
+ "match": "\\\\[bB]",
1067
+ "name": "constant.character.escape.backspace.nim"
1068
+ },
1069
+ {
1070
+ "match": "\\\\[eE]",
1071
+ "name": "constant.character.escape.escape.nim"
1072
+ },
1073
+ {
1074
+ "match": "\\\\[xX]\\h\\h",
1075
+ "name": "constant.character.escape.hex.nim"
1076
+ },
1077
+ {
1078
+ "match": "\\\\\\\\",
1079
+ "name": "constant.character.escape.backslash.nim"
1080
+ }
1081
+ ]
1082
+ },
1083
+ "extended_string_quoted_double_raw": {
1084
+ "begin": "\\b(\\w+)(\")",
1085
+ "beginCaptures": {
1086
+ "1": {
1087
+ "name": "support.function.any-method.nim"
1088
+ },
1089
+ "2": {
1090
+ "name": "punctuation.definition.string.begin.nim"
1091
+ }
1092
+ },
1093
+ "end": "\"",
1094
+ "endCaptures": {
1095
+ "0": {
1096
+ "name": "punctuation.definition.string.end.nim"
1097
+ }
1098
+ },
1099
+ "name": "string.quoted.double.raw.nim",
1100
+ "patterns": [
1101
+ {
1102
+ "include": "#raw_string_escapes"
1103
+ }
1104
+ ]
1105
+ },
1106
+ "extended_string_quoted_triple_raw": {
1107
+ "begin": "\\b(\\w+)(\"\"\")",
1108
+ "beginCaptures": {
1109
+ "1": {
1110
+ "name": "support.function.any-method.nim"
1111
+ },
1112
+ "2": {
1113
+ "name": "punctuation.definition.string.begin.nim"
1114
+ }
1115
+ },
1116
+ "end": "\"\"\"",
1117
+ "endCaptures": {
1118
+ "0": {
1119
+ "name": "punctuation.definition.string.end.nim"
1120
+ }
1121
+ },
1122
+ "name": "string.quoted.triple.raw.nim"
1123
+ },
1124
+ "float_literal": {
1125
+ "patterns": [
1126
+ {
1127
+ "match": "\\b\\d[_\\d]*((\\.\\d[_\\d]*([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('([fF](32|64|128)|[fFdD]))?",
1128
+ "name": "constant.numeric.float.decimal.nim"
1129
+ },
1130
+ {
1131
+ "match": "\\b0[xX]\\h[_\\h]*'([fF](32|64|128)|[fFdD])",
1132
+ "name": "constant.numeric.float.hexadecimal.nim"
1133
+ },
1134
+ {
1135
+ "match": "\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])",
1136
+ "name": "constant.numeric.float.octal.nim"
1137
+ },
1138
+ {
1139
+ "match": "\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])",
1140
+ "name": "constant.numeric.float.binary.nim"
1141
+ },
1142
+ {
1143
+ "match": "\\b(\\d[_\\d]*)'([fF](32|64|128)|[fFdD])",
1144
+ "name": "constant.numeric.float.decimal.nim"
1145
+ }
1146
+ ]
1147
+ },
1148
+ "fmt_interpolation": {
1149
+ "begin": "\\{",
1150
+ "beginCaptures": {
1151
+ "0": {
1152
+ "name": "punctuation.definition.template-expression.begin.nim"
1153
+ }
1154
+ },
1155
+ "end": "\\}",
1156
+ "endCaptures": {
1157
+ "0": {
1158
+ "name": "punctuation.definition.template-expression.end.nim"
1159
+ }
1160
+ },
1161
+ "name": "meta.template.expression.nim",
1162
+ "patterns": [
1163
+ {
1164
+ "begin": ":",
1165
+ "end": "(?=\\})",
1166
+ "name": "meta.template.format-specifier.nim"
1167
+ },
1168
+ {
1169
+ "include": "source.nim"
1170
+ }
1171
+ ]
1172
+ },
1173
+ "fmt_string": {
1174
+ "begin": "\\b(fmt)(\")",
1175
+ "beginCaptures": {
1176
+ "1": {
1177
+ "name": "support.function.any-method.nim"
1178
+ },
1179
+ "2": {
1180
+ "name": "punctuation.definition.string.begin.nim"
1181
+ }
1182
+ },
1183
+ "end": "\"",
1184
+ "endCaptures": {
1185
+ "0": {
1186
+ "name": "punctuation.definition.string.end.nim"
1187
+ }
1188
+ },
1189
+ "name": "string.quoted.double.raw.nim",
1190
+ "patterns": [
1191
+ {
1192
+ "match": "(?<!\")\"(?!\")",
1193
+ "name": "invalid.illegal.nim"
1194
+ },
1195
+ {
1196
+ "include": "#raw_string_escapes"
1197
+ },
1198
+ {
1199
+ "include": "#fmt_interpolation"
1200
+ }
1201
+ ]
1202
+ },
1203
+ "fmt_string_call": {
1204
+ "begin": "(fmt)\\((?=\")",
1205
+ "beginCaptures": {
1206
+ "1": {
1207
+ "name": "support.function.any-method.nim"
1208
+ }
1209
+ },
1210
+ "end": "\\)",
1211
+ "patterns": [
1212
+ {
1213
+ "begin": "\"",
1214
+ "beginCaptures": {
1215
+ "0": {
1216
+ "name": "punctuation.definition.string.begin.nim"
1217
+ }
1218
+ },
1219
+ "end": "\"(?=\\))",
1220
+ "endCaptures": {
1221
+ "0": {
1222
+ "name": "punctuation.definition.string.end.nim"
1223
+ }
1224
+ },
1225
+ "name": "string.quoted.double.nim",
1226
+ "patterns": [
1227
+ {
1228
+ "match": "\"",
1229
+ "name": "invalid.illegal.nim"
1230
+ },
1231
+ {
1232
+ "include": "#string_escapes"
1233
+ },
1234
+ {
1235
+ "include": "#fmt_interpolation"
1236
+ }
1237
+ ]
1238
+ }
1239
+ ]
1240
+ },
1241
+ "fmt_string_operator": {
1242
+ "begin": "(&)(\")",
1243
+ "beginCaptures": {
1244
+ "1": {
1245
+ "name": "keyword.operator.nim"
1246
+ },
1247
+ "2": {
1248
+ "name": "punctuation.definition.string.begin.nim"
1249
+ }
1250
+ },
1251
+ "end": "\"",
1252
+ "endCaptures": {
1253
+ "0": {
1254
+ "name": "punctuation.definition.string.end.nim"
1255
+ }
1256
+ },
1257
+ "name": "string.quoted.double.nim",
1258
+ "patterns": [
1259
+ {
1260
+ "match": "\"",
1261
+ "name": "invalid.illegal.nim"
1262
+ },
1263
+ {
1264
+ "include": "#string_escapes"
1265
+ },
1266
+ {
1267
+ "include": "#fmt_interpolation"
1268
+ }
1269
+ ]
1270
+ },
1271
+ "fmt_string_triple": {
1272
+ "begin": "\\b(fmt)(\"\"\")",
1273
+ "beginCaptures": {
1274
+ "1": {
1275
+ "name": "support.function.any-method.nim"
1276
+ },
1277
+ "2": {
1278
+ "name": "punctuation.definition.string.begin.nim"
1279
+ }
1280
+ },
1281
+ "end": "\"\"\"",
1282
+ "endCaptures": {
1283
+ "0": {
1284
+ "name": "punctuation.definition.string.end.nim"
1285
+ }
1286
+ },
1287
+ "name": "string.quoted.triple.raw.nim",
1288
+ "patterns": [
1289
+ {
1290
+ "include": "#fmt_interpolation"
1291
+ }
1292
+ ]
1293
+ },
1294
+ "fmt_string_triple_operator": {
1295
+ "begin": "(&)(\"\"\")",
1296
+ "beginCaptures": {
1297
+ "1": {
1298
+ "name": "keyword.operator.nim"
1299
+ },
1300
+ "2": {
1301
+ "name": "punctuation.definition.string.begin.nim"
1302
+ }
1303
+ },
1304
+ "end": "\"\"\"",
1305
+ "endCaptures": {
1306
+ "0": {
1307
+ "name": "punctuation.definition.string.end.nim"
1308
+ }
1309
+ },
1310
+ "name": "string.quoted.triple.raw.nim",
1311
+ "patterns": [
1312
+ {
1313
+ "include": "#fmt_interpolation"
1314
+ }
1315
+ ]
1316
+ },
1317
+ "integer_literal": {
1318
+ "patterns": [
1319
+ {
1320
+ "match": "\\b(0[xX]\\h[_\\h]*)('(([iIuU](8|16|32|64))|[uU]))?",
1321
+ "name": "constant.numeric.integer.hexadecimal.nim"
1322
+ },
1323
+ {
1324
+ "match": "\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?",
1325
+ "name": "constant.numeric.integer.octal.nim"
1326
+ },
1327
+ {
1328
+ "match": "\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?",
1329
+ "name": "constant.numeric.integer.binary.nim"
1330
+ },
1331
+ {
1332
+ "match": "\\b(\\d[_\\d]*)('(([iIuU](8|16|32|64))|[uU]))?",
1333
+ "name": "constant.numeric.integer.decimal.nim"
1334
+ }
1335
+ ]
1336
+ },
1337
+ "multilinecomment": {
1338
+ "begin": "#\\[",
1339
+ "end": "\\]#",
1340
+ "patterns": [
1341
+ {
1342
+ "include": "#multilinecomment"
1343
+ }
1344
+ ]
1345
+ },
1346
+ "multilinedoccomment": {
1347
+ "begin": "##\\[",
1348
+ "end": "\\]##",
1349
+ "patterns": [
1350
+ {
1351
+ "include": "#multilinedoccomment"
1352
+ }
1353
+ ]
1354
+ },
1355
+ "raw_string_escapes": {
1356
+ "captures": {
1357
+ "1": {
1358
+ "name": "constant.character.escape.double-quote.nim"
1359
+ }
1360
+ },
1361
+ "match": "[^\"](\"\")"
1362
+ },
1363
+ "string_escapes": {
1364
+ "patterns": [
1365
+ {
1366
+ "match": "\\\\[pP]",
1367
+ "name": "constant.character.escape.newline.nim"
1368
+ },
1369
+ {
1370
+ "match": "\\\\[uU]\\h\\h\\h\\h",
1371
+ "name": "constant.character.escape.hex.nim"
1372
+ },
1373
+ {
1374
+ "match": "\\\\[uU]\\{\\h+\\}",
1375
+ "name": "constant.character.escape.hex.nim"
1376
+ },
1377
+ {
1378
+ "include": "#char_escapes"
1379
+ }
1380
+ ]
1381
+ },
1382
+ "string_literal": {
1383
+ "patterns": [
1384
+ {
1385
+ "include": "#fmt_string_triple"
1386
+ },
1387
+ {
1388
+ "include": "#fmt_string_triple_operator"
1389
+ },
1390
+ {
1391
+ "include": "#extended_string_quoted_triple_raw"
1392
+ },
1393
+ {
1394
+ "include": "#string_quoted_triple_raw"
1395
+ },
1396
+ {
1397
+ "include": "#fmt_string_operator"
1398
+ },
1399
+ {
1400
+ "include": "#fmt_string"
1401
+ },
1402
+ {
1403
+ "include": "#fmt_string_call"
1404
+ },
1405
+ {
1406
+ "include": "#string_quoted_double_raw"
1407
+ },
1408
+ {
1409
+ "include": "#extended_string_quoted_double_raw"
1410
+ },
1411
+ {
1412
+ "include": "#string_quoted_single"
1413
+ },
1414
+ {
1415
+ "include": "#string_quoted_triple"
1416
+ },
1417
+ {
1418
+ "include": "#string_quoted_double"
1419
+ }
1420
+ ]
1421
+ },
1422
+ "string_quoted_double": {
1423
+ "begin": "\"",
1424
+ "beginCaptures": {
1425
+ "0": {
1426
+ "name": "punctuation.definition.string.begin.nim"
1427
+ }
1428
+ },
1429
+ "comment": "Double Quoted String",
1430
+ "end": "\"",
1431
+ "endCaptures": {
1432
+ "0": {
1433
+ "name": "punctuation.definition.string.end.nim"
1434
+ }
1435
+ },
1436
+ "name": "string.quoted.double.nim",
1437
+ "patterns": [
1438
+ {
1439
+ "include": "#string_escapes"
1440
+ }
1441
+ ]
1442
+ },
1443
+ "string_quoted_double_raw": {
1444
+ "begin": "\\br\"",
1445
+ "beginCaptures": {
1446
+ "0": {
1447
+ "name": "punctuation.definition.string.begin.nim"
1448
+ }
1449
+ },
1450
+ "end": "\"",
1451
+ "endCaptures": {
1452
+ "0": {
1453
+ "name": "punctuation.definition.string.end.nim"
1454
+ }
1455
+ },
1456
+ "name": "string.quoted.double.raw.nim",
1457
+ "patterns": [
1458
+ {
1459
+ "include": "#raw_string_escapes"
1460
+ }
1461
+ ]
1462
+ },
1463
+ "string_quoted_single": {
1464
+ "begin": "'",
1465
+ "beginCaptures": {
1466
+ "0": {
1467
+ "name": "punctuation.definition.string.begin.nim"
1468
+ }
1469
+ },
1470
+ "comment": "Single quoted character literal",
1471
+ "end": "'",
1472
+ "endCaptures": {
1473
+ "0": {
1474
+ "name": "punctuation.definition.string.end.nim"
1475
+ }
1476
+ },
1477
+ "name": "string.quoted.single.nim",
1478
+ "patterns": [
1479
+ {
1480
+ "include": "#char_escapes"
1481
+ },
1482
+ {
1483
+ "match": "([^']{2,}?)",
1484
+ "name": "invalid.illegal.character.nim"
1485
+ }
1486
+ ]
1487
+ },
1488
+ "string_quoted_triple": {
1489
+ "begin": "\"\"\"",
1490
+ "beginCaptures": {
1491
+ "0": {
1492
+ "name": "punctuation.definition.string.begin.nim"
1493
+ }
1494
+ },
1495
+ "comment": "Triple Quoted String",
1496
+ "end": "\"\"\"(?!\")",
1497
+ "endCaptures": {
1498
+ "0": {
1499
+ "name": "punctuation.definition.string.end.nim"
1500
+ }
1501
+ },
1502
+ "name": "string.quoted.triple.nim"
1503
+ },
1504
+ "string_quoted_triple_raw": {
1505
+ "begin": "r\"\"\"",
1506
+ "beginCaptures": {
1507
+ "0": {
1508
+ "name": "punctuation.definition.string.begin.nim"
1509
+ }
1510
+ },
1511
+ "comment": "Raw Triple Quoted String",
1512
+ "end": "\"\"\"",
1513
+ "endCaptures": {
1514
+ "0": {
1515
+ "name": "punctuation.definition.string.end.nim"
1516
+ }
1517
+ },
1518
+ "name": "string.quoted.triple.raw.nim"
1519
+ }
1520
+ },
1521
+ "scopeName": "source.nim"
1522
+ }