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,777 @@
1
+ {
2
+ "displayName": "Puppet",
3
+ "fileTypes": [
4
+ "pp"
5
+ ],
6
+ "foldingStartMarker": "(^\\s*/\\*|(\\{|\\[|\\()\\s*$)",
7
+ "foldingStopMarker": "(\\*/|^\\s*(\\}|\\]|\\)))",
8
+ "name": "puppet",
9
+ "patterns": [
10
+ {
11
+ "include": "#line_comment"
12
+ },
13
+ {
14
+ "include": "#constants"
15
+ },
16
+ {
17
+ "begin": "^\\s*/\\*",
18
+ "end": "\\*/",
19
+ "name": "comment.block.puppet"
20
+ },
21
+ {
22
+ "begin": "\\b(node)\\b",
23
+ "captures": {
24
+ "1": {
25
+ "name": "storage.type.puppet"
26
+ },
27
+ "2": {
28
+ "name": "entity.name.type.class.puppet"
29
+ }
30
+ },
31
+ "end": "(?={)",
32
+ "name": "meta.definition.class.puppet",
33
+ "patterns": [
34
+ {
35
+ "match": "\\bdefault\\b",
36
+ "name": "keyword.puppet"
37
+ },
38
+ {
39
+ "include": "#strings"
40
+ },
41
+ {
42
+ "include": "#regex-literal"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "begin": "\\b(class)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",
48
+ "captures": {
49
+ "1": {
50
+ "name": "storage.type.puppet"
51
+ },
52
+ "2": {
53
+ "name": "entity.name.type.class.puppet"
54
+ }
55
+ },
56
+ "end": "(?={)",
57
+ "name": "meta.definition.class.puppet",
58
+ "patterns": [
59
+ {
60
+ "begin": "\\b(inherits)\\b\\s+",
61
+ "captures": {
62
+ "1": {
63
+ "name": "storage.modifier.puppet"
64
+ }
65
+ },
66
+ "end": "(?=\\(|{)",
67
+ "name": "meta.definition.class.inherits.puppet",
68
+ "patterns": [
69
+ {
70
+ "match": "\\b((?:[-_A-Za-z0-9\".]+::)*[-_A-Za-z0-9\".]+)\\b",
71
+ "name": "support.type.puppet"
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ "include": "#line_comment"
77
+ },
78
+ {
79
+ "include": "#resource-parameters"
80
+ },
81
+ {
82
+ "include": "#parameter-default-types"
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ "begin": "^\\s*(plan)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",
88
+ "captures": {
89
+ "1": {
90
+ "name": "storage.type.puppet"
91
+ },
92
+ "2": {
93
+ "name": "entity.name.type.plan.puppet"
94
+ }
95
+ },
96
+ "end": "(?={)",
97
+ "name": "meta.definition.plan.puppet",
98
+ "patterns": [
99
+ {
100
+ "include": "#line_comment"
101
+ },
102
+ {
103
+ "include": "#resource-parameters"
104
+ },
105
+ {
106
+ "include": "#parameter-default-types"
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "begin": "^\\s*(define|function)\\s+((?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*(\\()",
112
+ "captures": {
113
+ "1": {
114
+ "name": "storage.type.function.puppet"
115
+ },
116
+ "2": {
117
+ "name": "entity.name.function.puppet"
118
+ }
119
+ },
120
+ "end": "(?={)",
121
+ "name": "meta.function.puppet",
122
+ "patterns": [
123
+ {
124
+ "include": "#line_comment"
125
+ },
126
+ {
127
+ "include": "#resource-parameters"
128
+ },
129
+ {
130
+ "include": "#parameter-default-types"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "captures": {
136
+ "1": {
137
+ "name": "keyword.control.puppet"
138
+ }
139
+ },
140
+ "match": "\\b(case|else|elsif|if|unless)(?!::)\\b"
141
+ },
142
+ {
143
+ "include": "#keywords"
144
+ },
145
+ {
146
+ "include": "#resource-definition"
147
+ },
148
+ {
149
+ "include": "#heredoc"
150
+ },
151
+ {
152
+ "include": "#strings"
153
+ },
154
+ {
155
+ "include": "#puppet-datatypes"
156
+ },
157
+ {
158
+ "include": "#array"
159
+ },
160
+ {
161
+ "match": "((\\$?)\"?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\"?):(?=\\s+|$)",
162
+ "name": "entity.name.section.puppet"
163
+ },
164
+ {
165
+ "include": "#numbers"
166
+ },
167
+ {
168
+ "include": "#variable"
169
+ },
170
+ {
171
+ "begin": "\\b(import|include|contain|require)\\s+(?!.*=>)",
172
+ "beginCaptures": {
173
+ "1": {
174
+ "name": "keyword.control.import.include.puppet"
175
+ }
176
+ },
177
+ "contentName": "variable.parameter.include.puppet",
178
+ "end": "(?=\\s|$)",
179
+ "name": "meta.include.puppet"
180
+ },
181
+ {
182
+ "match": "\\b\\w+\\s*(?==>)\\s*",
183
+ "name": "constant.other.key.puppet"
184
+ },
185
+ {
186
+ "match": "(?<={)\\s*\\w+\\s*(?=})",
187
+ "name": "constant.other.bareword.puppet"
188
+ },
189
+ {
190
+ "match": "\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\b(?!.*{)",
191
+ "name": "support.function.puppet"
192
+ },
193
+ {
194
+ "match": "=>",
195
+ "name": "punctuation.separator.key-value.puppet"
196
+ },
197
+ {
198
+ "match": "->",
199
+ "name": "keyword.control.orderarrow.puppet"
200
+ },
201
+ {
202
+ "match": "~>",
203
+ "name": "keyword.control.notifyarrow.puppet"
204
+ },
205
+ {
206
+ "include": "#regex-literal"
207
+ }
208
+ ],
209
+ "repository": {
210
+ "array": {
211
+ "begin": "(\\[)",
212
+ "beginCaptures": {
213
+ "1": {
214
+ "name": "punctuation.definition.array.begin.puppet"
215
+ }
216
+ },
217
+ "end": "\\]",
218
+ "endCaptures": {
219
+ "0": {
220
+ "name": "punctuation.definition.array.end.puppet"
221
+ }
222
+ },
223
+ "name": "meta.array.puppet",
224
+ "patterns": [
225
+ {
226
+ "match": "\\s*,\\s*"
227
+ },
228
+ {
229
+ "include": "#parameter-default-types"
230
+ },
231
+ {
232
+ "include": "#line_comment"
233
+ }
234
+ ]
235
+ },
236
+ "constants": {
237
+ "patterns": [
238
+ {
239
+ "match": "\\b(absent|directory|false|file|present|running|stopped|true)\\b(?!.*{)",
240
+ "name": "constant.language.puppet"
241
+ }
242
+ ]
243
+ },
244
+ "double-quoted-string": {
245
+ "begin": "\"",
246
+ "beginCaptures": {
247
+ "0": {
248
+ "name": "punctuation.definition.string.begin.puppet"
249
+ }
250
+ },
251
+ "end": "\"",
252
+ "endCaptures": {
253
+ "0": {
254
+ "name": "punctuation.definition.string.end.puppet"
255
+ }
256
+ },
257
+ "name": "string.quoted.double.interpolated.puppet",
258
+ "patterns": [
259
+ {
260
+ "include": "#escaped_char"
261
+ },
262
+ {
263
+ "include": "#interpolated_puppet"
264
+ }
265
+ ]
266
+ },
267
+ "escaped_char": {
268
+ "match": "\\\\.",
269
+ "name": "constant.character.escape.puppet"
270
+ },
271
+ "function_call": {
272
+ "begin": "([a-zA-Z_][a-zA-Z0-9_]*)(\\()",
273
+ "end": "\\)",
274
+ "name": "meta.function-call.puppet",
275
+ "patterns": [
276
+ {
277
+ "include": "#parameter-default-types"
278
+ },
279
+ {
280
+ "match": ",",
281
+ "name": "punctuation.separator.parameters.puppet"
282
+ }
283
+ ]
284
+ },
285
+ "hash": {
286
+ "begin": "\\{",
287
+ "beginCaptures": {
288
+ "0": {
289
+ "name": "punctuation.definition.hash.begin.puppet"
290
+ }
291
+ },
292
+ "end": "\\}",
293
+ "endCaptures": {
294
+ "0": {
295
+ "name": "punctuation.definition.hash.end.puppet"
296
+ }
297
+ },
298
+ "name": "meta.hash.puppet",
299
+ "patterns": [
300
+ {
301
+ "match": "\\b\\w+\\s*(?==>)\\s*",
302
+ "name": "constant.other.key.puppet"
303
+ },
304
+ {
305
+ "include": "#parameter-default-types"
306
+ },
307
+ {
308
+ "include": "#line_comment"
309
+ }
310
+ ]
311
+ },
312
+ "heredoc": {
313
+ "patterns": [
314
+ {
315
+ "begin": "@\\([[:blank:]]*\"([^:\\/) \\t]+)\"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)",
316
+ "beginCaptures": {
317
+ "0": {
318
+ "name": "punctuation.definition.string.begin.puppet"
319
+ }
320
+ },
321
+ "end": "^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",
322
+ "endCaptures": {
323
+ "0": {
324
+ "name": "punctuation.definition.string.end.puppet"
325
+ }
326
+ },
327
+ "name": "string.interpolated.heredoc.puppet",
328
+ "patterns": [
329
+ {
330
+ "include": "#escaped_char"
331
+ },
332
+ {
333
+ "include": "#interpolated_puppet"
334
+ }
335
+ ]
336
+ },
337
+ {
338
+ "begin": "@\\([[:blank:]]*([^:\\/) \\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)",
339
+ "beginCaptures": {
340
+ "0": {
341
+ "name": "punctuation.definition.string.begin.puppet"
342
+ }
343
+ },
344
+ "end": "^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",
345
+ "endCaptures": {
346
+ "0": {
347
+ "name": "punctuation.definition.string.end.puppet"
348
+ }
349
+ },
350
+ "name": "string.unquoted.heredoc.puppet"
351
+ }
352
+ ]
353
+ },
354
+ "interpolated_puppet": {
355
+ "patterns": [
356
+ {
357
+ "begin": "(\\${)(\\d+)",
358
+ "beginCaptures": {
359
+ "1": {
360
+ "name": "punctuation.section.embedded.begin.puppet"
361
+ },
362
+ "2": {
363
+ "name": "source.puppet variable.other.readwrite.global.pre-defined.puppet"
364
+ }
365
+ },
366
+ "contentName": "source.puppet",
367
+ "end": "}",
368
+ "endCaptures": {
369
+ "0": {
370
+ "name": "punctuation.section.embedded.end.puppet"
371
+ }
372
+ },
373
+ "name": "meta.embedded.line.puppet",
374
+ "patterns": [
375
+ {
376
+ "include": "$self"
377
+ }
378
+ ]
379
+ },
380
+ {
381
+ "begin": "(\\${)(_[a-zA-Z0-9_]*)",
382
+ "beginCaptures": {
383
+ "1": {
384
+ "name": "punctuation.section.embedded.begin.puppet"
385
+ },
386
+ "2": {
387
+ "name": "source.puppet variable.other.readwrite.global.puppet"
388
+ }
389
+ },
390
+ "contentName": "source.puppet",
391
+ "end": "}",
392
+ "endCaptures": {
393
+ "0": {
394
+ "name": "punctuation.section.embedded.end.puppet"
395
+ }
396
+ },
397
+ "name": "meta.embedded.line.puppet",
398
+ "patterns": [
399
+ {
400
+ "include": "$self"
401
+ }
402
+ ]
403
+ },
404
+ {
405
+ "begin": "(\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)",
406
+ "beginCaptures": {
407
+ "1": {
408
+ "name": "punctuation.section.embedded.begin.puppet"
409
+ },
410
+ "2": {
411
+ "name": "source.puppet variable.other.readwrite.global.puppet"
412
+ }
413
+ },
414
+ "contentName": "source.puppet",
415
+ "end": "}",
416
+ "endCaptures": {
417
+ "0": {
418
+ "name": "punctuation.section.embedded.end.puppet"
419
+ }
420
+ },
421
+ "name": "meta.embedded.line.puppet",
422
+ "patterns": [
423
+ {
424
+ "include": "$self"
425
+ }
426
+ ]
427
+ },
428
+ {
429
+ "begin": "\\${",
430
+ "beginCaptures": {
431
+ "0": {
432
+ "name": "punctuation.section.embedded.begin.puppet"
433
+ }
434
+ },
435
+ "contentName": "source.puppet",
436
+ "end": "}",
437
+ "endCaptures": {
438
+ "0": {
439
+ "name": "punctuation.section.embedded.end.puppet"
440
+ }
441
+ },
442
+ "name": "meta.embedded.line.puppet",
443
+ "patterns": [
444
+ {
445
+ "include": "$self"
446
+ }
447
+ ]
448
+ }
449
+ ]
450
+ },
451
+ "keywords": {
452
+ "captures": {
453
+ "1": {
454
+ "name": "keyword.puppet"
455
+ }
456
+ },
457
+ "match": "\\b(undef)\\b"
458
+ },
459
+ "line_comment": {
460
+ "patterns": [
461
+ {
462
+ "captures": {
463
+ "1": {
464
+ "name": "comment.line.number-sign.puppet"
465
+ },
466
+ "2": {
467
+ "name": "punctuation.definition.comment.puppet"
468
+ }
469
+ },
470
+ "match": "^((#).*$\\n?)",
471
+ "name": "meta.comment.full-line.puppet"
472
+ },
473
+ {
474
+ "captures": {
475
+ "1": {
476
+ "name": "punctuation.definition.comment.puppet"
477
+ }
478
+ },
479
+ "match": "(#).*$\\n?",
480
+ "name": "comment.line.number-sign.puppet"
481
+ }
482
+ ]
483
+ },
484
+ "nested_braces": {
485
+ "begin": "\\{",
486
+ "captures": {
487
+ "1": {
488
+ "name": "punctuation.section.scope.puppet"
489
+ }
490
+ },
491
+ "end": "\\}",
492
+ "patterns": [
493
+ {
494
+ "include": "#escaped_char"
495
+ },
496
+ {
497
+ "include": "#nested_braces"
498
+ }
499
+ ]
500
+ },
501
+ "nested_braces_interpolated": {
502
+ "begin": "\\{",
503
+ "captures": {
504
+ "1": {
505
+ "name": "punctuation.section.scope.puppet"
506
+ }
507
+ },
508
+ "end": "\\}",
509
+ "patterns": [
510
+ {
511
+ "include": "#escaped_char"
512
+ },
513
+ {
514
+ "include": "#variable"
515
+ },
516
+ {
517
+ "include": "#nested_braces_interpolated"
518
+ }
519
+ ]
520
+ },
521
+ "nested_brackets": {
522
+ "begin": "\\[",
523
+ "captures": {
524
+ "1": {
525
+ "name": "punctuation.section.scope.puppet"
526
+ }
527
+ },
528
+ "end": "\\]",
529
+ "patterns": [
530
+ {
531
+ "include": "#escaped_char"
532
+ },
533
+ {
534
+ "include": "#nested_brackets"
535
+ }
536
+ ]
537
+ },
538
+ "nested_brackets_interpolated": {
539
+ "begin": "\\[",
540
+ "captures": {
541
+ "1": {
542
+ "name": "punctuation.section.scope.puppet"
543
+ }
544
+ },
545
+ "end": "\\]",
546
+ "patterns": [
547
+ {
548
+ "include": "#escaped_char"
549
+ },
550
+ {
551
+ "include": "#variable"
552
+ },
553
+ {
554
+ "include": "#nested_brackets_interpolated"
555
+ }
556
+ ]
557
+ },
558
+ "nested_parens": {
559
+ "begin": "\\(",
560
+ "captures": {
561
+ "1": {
562
+ "name": "punctuation.section.scope.puppet"
563
+ }
564
+ },
565
+ "end": "\\)",
566
+ "patterns": [
567
+ {
568
+ "include": "#escaped_char"
569
+ },
570
+ {
571
+ "include": "#nested_parens"
572
+ }
573
+ ]
574
+ },
575
+ "nested_parens_interpolated": {
576
+ "begin": "\\(",
577
+ "captures": {
578
+ "1": {
579
+ "name": "punctuation.section.scope.puppet"
580
+ }
581
+ },
582
+ "end": "\\)",
583
+ "patterns": [
584
+ {
585
+ "include": "#escaped_char"
586
+ },
587
+ {
588
+ "include": "#variable"
589
+ },
590
+ {
591
+ "include": "#nested_parens_interpolated"
592
+ }
593
+ ]
594
+ },
595
+ "numbers": {
596
+ "patterns": [
597
+ {
598
+ "comment": "HEX 0x 0-f",
599
+ "match": "(?<!\\w|\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\w|\\d)",
600
+ "name": "constant.numeric.hexadecimal.puppet"
601
+ },
602
+ {
603
+ "comment": "INTEGERS [(+|-)] digits [e [(+|-)] digits]",
604
+ "match": "(?<!\\w|\\.)([-+]?)(?<!\\d)\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d|\\.)",
605
+ "name": "constant.numeric.integer.puppet"
606
+ },
607
+ {
608
+ "comment": "FLOAT [(+|-)] digits . digits [e [(+|-)] digits]",
609
+ "match": "(?<!\\w)([-+]?)\\d+\\.\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d)",
610
+ "name": "constant.numeric.integer.puppet"
611
+ }
612
+ ]
613
+ },
614
+ "parameter-default-types": {
615
+ "patterns": [
616
+ {
617
+ "include": "#strings"
618
+ },
619
+ {
620
+ "include": "#numbers"
621
+ },
622
+ {
623
+ "include": "#variable"
624
+ },
625
+ {
626
+ "include": "#hash"
627
+ },
628
+ {
629
+ "include": "#array"
630
+ },
631
+ {
632
+ "include": "#function_call"
633
+ },
634
+ {
635
+ "include": "#constants"
636
+ },
637
+ {
638
+ "include": "#puppet-datatypes"
639
+ }
640
+ ]
641
+ },
642
+ "puppet-datatypes": {
643
+ "patterns": [
644
+ {
645
+ "comment": "Puppet Data type",
646
+ "match": "(?<![a-zA-Z\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])",
647
+ "name": "storage.type.puppet"
648
+ }
649
+ ]
650
+ },
651
+ "regex-literal": {
652
+ "comment": "Puppet Regular expression literal without interpolation",
653
+ "match": "(\\/)(.+?)(?:[^\\\\]\\/)",
654
+ "name": "string.regexp.literal.puppet"
655
+ },
656
+ "resource-definition": {
657
+ "begin": "(?:^|\\b)((?#Toplevel Bareword)::[a-z][a-z0-9_]*|(?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*({)\\s*",
658
+ "beginCaptures": {
659
+ "1": {
660
+ "name": "meta.definition.resource.puppet storage.type.puppet"
661
+ }
662
+ },
663
+ "contentName": "entity.name.section.puppet",
664
+ "end": ":",
665
+ "patterns": [
666
+ {
667
+ "include": "#strings"
668
+ },
669
+ {
670
+ "include": "#variable"
671
+ },
672
+ {
673
+ "include": "#array"
674
+ }
675
+ ]
676
+ },
677
+ "resource-parameters": {
678
+ "patterns": [
679
+ {
680
+ "captures": {
681
+ "1": {
682
+ "name": "variable.other.puppet"
683
+ },
684
+ "2": {
685
+ "name": "punctuation.definition.variable.puppet"
686
+ }
687
+ },
688
+ "match": "((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=,|\\))",
689
+ "name": "meta.function.argument.puppet"
690
+ },
691
+ {
692
+ "begin": "((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*(=)\\s*)\\s*",
693
+ "captures": {
694
+ "1": {
695
+ "name": "variable.other.puppet"
696
+ },
697
+ "2": {
698
+ "name": "punctuation.definition.variable.puppet"
699
+ },
700
+ "3": {
701
+ "name": "keyword.operator.assignment.puppet"
702
+ }
703
+ },
704
+ "end": "(?=,|\\))",
705
+ "name": "meta.function.argument.puppet",
706
+ "patterns": [
707
+ {
708
+ "include": "#parameter-default-types"
709
+ }
710
+ ]
711
+ }
712
+ ]
713
+ },
714
+ "single-quoted-string": {
715
+ "begin": "'",
716
+ "beginCaptures": {
717
+ "0": {
718
+ "name": "punctuation.definition.string.begin.puppet"
719
+ }
720
+ },
721
+ "end": "'",
722
+ "endCaptures": {
723
+ "0": {
724
+ "name": "punctuation.definition.string.end.puppet"
725
+ }
726
+ },
727
+ "name": "string.quoted.single.puppet",
728
+ "patterns": [
729
+ {
730
+ "include": "#escaped_char"
731
+ }
732
+ ]
733
+ },
734
+ "strings": {
735
+ "patterns": [
736
+ {
737
+ "include": "#double-quoted-string"
738
+ },
739
+ {
740
+ "include": "#single-quoted-string"
741
+ }
742
+ ]
743
+ },
744
+ "variable": {
745
+ "patterns": [
746
+ {
747
+ "captures": {
748
+ "1": {
749
+ "name": "punctuation.definition.variable.puppet"
750
+ }
751
+ },
752
+ "match": "(\\$)(\\d+)",
753
+ "name": "variable.other.readwrite.global.pre-defined.puppet"
754
+ },
755
+ {
756
+ "captures": {
757
+ "1": {
758
+ "name": "punctuation.definition.variable.puppet"
759
+ }
760
+ },
761
+ "match": "(\\$)_[a-zA-Z0-9_]*",
762
+ "name": "variable.other.readwrite.global.puppet"
763
+ },
764
+ {
765
+ "captures": {
766
+ "1": {
767
+ "name": "punctuation.definition.variable.puppet"
768
+ }
769
+ },
770
+ "match": "(\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)",
771
+ "name": "variable.other.readwrite.global.puppet"
772
+ }
773
+ ]
774
+ }
775
+ },
776
+ "scopeName": "source.puppet"
777
+ }