tm-grammars 1.22.18 → 1.23.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 (234) hide show
  1. package/NOTICE +287 -1
  2. package/README.md +241 -239
  3. package/grammars/abap.json +36 -36
  4. package/grammars/actionscript-3.json +29 -29
  5. package/grammars/ada.json +78 -78
  6. package/grammars/angular-expression.json +62 -62
  7. package/grammars/angular-html.json +0 -1
  8. package/grammars/angular-inline-style.json +3 -3
  9. package/grammars/angular-inline-template.json +2 -2
  10. package/grammars/angular-template-blocks.json +3 -3
  11. package/grammars/angular-template.json +1 -1
  12. package/grammars/angular-ts.json +251 -251
  13. package/grammars/apache.json +31 -31
  14. package/grammars/apex.json +108 -108
  15. package/grammars/apl.json +18 -18
  16. package/grammars/applescript.json +11 -11
  17. package/grammars/ara.json +13 -13
  18. package/grammars/asciidoc.json +234 -234
  19. package/grammars/asm.json +90 -90
  20. package/grammars/astro.json +25 -25
  21. package/grammars/awk.json +8 -8
  22. package/grammars/ballerina.json +150 -150
  23. package/grammars/bat.json +28 -28
  24. package/grammars/beancount.json +33 -33
  25. package/grammars/berry.json +11 -11
  26. package/grammars/bibtex.json +12 -12
  27. package/grammars/bicep.json +12 -12
  28. package/grammars/blade.json +183 -183
  29. package/grammars/bsl.json +58 -58
  30. package/grammars/c.json +162 -162
  31. package/grammars/cadence.json +20 -20
  32. package/grammars/cairo.json +10 -10
  33. package/grammars/clarity.json +20 -20
  34. package/grammars/clojure.json +25 -25
  35. package/grammars/cmake.json +3 -3
  36. package/grammars/cobol.json +91 -91
  37. package/grammars/codeql.json +154 -154
  38. package/grammars/coffee.json +45 -45
  39. package/grammars/common-lisp.json +50 -50
  40. package/grammars/coq.json +10 -10
  41. package/grammars/cpp-macro.json +410 -410
  42. package/grammars/cpp.json +641 -641
  43. package/grammars/crystal.json +68 -68
  44. package/grammars/csharp.json +196 -196
  45. package/grammars/css.json +83 -83
  46. package/grammars/csv.json +1 -1
  47. package/grammars/cue.json +55 -55
  48. package/grammars/cypher.json +11 -11
  49. package/grammars/d.json +127 -32
  50. package/grammars/dart.json +18 -18
  51. package/grammars/dax.json +9 -9
  52. package/grammars/desktop.json +9 -9
  53. package/grammars/diff.json +3 -3
  54. package/grammars/dotenv.json +3 -3
  55. package/grammars/dream-maker.json +20 -20
  56. package/grammars/edge.json +8 -8
  57. package/grammars/elixir.json +44 -44
  58. package/grammars/elm.json +23 -23
  59. package/grammars/emacs-lisp.json +76 -76
  60. package/grammars/erb.json +2 -2
  61. package/grammars/erlang.json +29 -29
  62. package/grammars/es-tag-css.json +3 -3
  63. package/grammars/es-tag-glsl.json +3 -3
  64. package/grammars/es-tag-html.json +3 -3
  65. package/grammars/es-tag-sql.json +2 -2
  66. package/grammars/es-tag-xml.json +2 -2
  67. package/grammars/fennel.json +8 -8
  68. package/grammars/fish.json +10 -10
  69. package/grammars/fluent.json +10 -10
  70. package/grammars/fortran-fixed-form.json +1 -1
  71. package/grammars/fortran-free-form.json +106 -106
  72. package/grammars/fsharp.json +70 -70
  73. package/grammars/gdresource.json +15 -15
  74. package/grammars/gdscript.json +31 -27
  75. package/grammars/gdshader.json +18 -18
  76. package/grammars/genie.json +6 -6
  77. package/grammars/gherkin.json +1 -1
  78. package/grammars/git-commit.json +1 -1
  79. package/grammars/git-rebase.json +1 -1
  80. package/grammars/gleam.json +11 -11
  81. package/grammars/glimmer-js.json +35 -35
  82. package/grammars/glimmer-ts.json +35 -35
  83. package/grammars/glsl.json +4 -4
  84. package/grammars/gnuplot.json +41 -41
  85. package/grammars/go.json +155 -155
  86. package/grammars/graphql.json +20 -20
  87. package/grammars/groovy.json +44 -44
  88. package/grammars/hack.json +74 -74
  89. package/grammars/haml.json +24 -24
  90. package/grammars/handlebars.json +25 -25
  91. package/grammars/haskell.json +99 -99
  92. package/grammars/haxe.json +51 -51
  93. package/grammars/hcl.json +43 -43
  94. package/grammars/hjson.json +29 -29
  95. package/grammars/hlsl.json +15 -15
  96. package/grammars/html-derivative.json +0 -1
  97. package/grammars/html.json +28 -29
  98. package/grammars/http.json +17 -17
  99. package/grammars/hxml.json +3 -3
  100. package/grammars/hy.json +10 -10
  101. package/grammars/imba.json +168 -173
  102. package/grammars/ini.json +2 -2
  103. package/grammars/java.json +54 -54
  104. package/grammars/javascript.json +262 -262
  105. package/grammars/jinja-html.json +3 -3
  106. package/grammars/jinja.json +15 -15
  107. package/grammars/jison.json +18 -18
  108. package/grammars/json.json +6 -6
  109. package/grammars/json5.json +12 -12
  110. package/grammars/jsonc.json +6 -6
  111. package/grammars/jsonl.json +6 -6
  112. package/grammars/jsonnet.json +15 -15
  113. package/grammars/jssm.json +4 -4
  114. package/grammars/jsx.json +262 -262
  115. package/grammars/julia.json +45 -45
  116. package/grammars/kotlin.json +15 -15
  117. package/grammars/kusto.json +13 -13
  118. package/grammars/latex.json +260 -260
  119. package/grammars/lean.json +12 -12
  120. package/grammars/less.json +91 -91
  121. package/grammars/liquid.json +96 -62
  122. package/grammars/llvm.json +122 -0
  123. package/grammars/log.json +22 -22
  124. package/grammars/logo.json +2 -2
  125. package/grammars/lua.json +34 -34
  126. package/grammars/luau.json +20 -20
  127. package/grammars/make.json +22 -22
  128. package/grammars/markdown-vue.json +1 -1
  129. package/grammars/markdown.json +83 -83
  130. package/grammars/marko.json +19 -19
  131. package/grammars/matlab.json +29 -29
  132. package/grammars/mdc.json +17 -17
  133. package/grammars/mdx.json +278 -278
  134. package/grammars/mermaid.json +97 -97
  135. package/grammars/mipsasm.json +2 -2
  136. package/grammars/mojo.json +122 -122
  137. package/grammars/move.json +35 -35
  138. package/grammars/narrat.json +10 -10
  139. package/grammars/nextflow.json +11 -11
  140. package/grammars/nginx.json +45 -45
  141. package/grammars/nim.json +44 -44
  142. package/grammars/nix.json +71 -71
  143. package/grammars/nushell.json +36 -36
  144. package/grammars/objective-c.json +129 -129
  145. package/grammars/objective-cpp.json +245 -245
  146. package/grammars/ocaml.json +229 -229
  147. package/grammars/pascal.json +4 -4
  148. package/grammars/perl.json +64 -64
  149. package/grammars/php.json +199 -199
  150. package/grammars/plsql.json +10 -10
  151. package/grammars/po.json +4 -4
  152. package/grammars/polar.json +13 -13
  153. package/grammars/postcss.json +31 -31
  154. package/grammars/powerquery.json +10 -10
  155. package/grammars/powershell.json +54 -54
  156. package/grammars/prisma.json +13 -13
  157. package/grammars/prolog.json +3 -3
  158. package/grammars/proto.json +11 -11
  159. package/grammars/pug.json +30 -30
  160. package/grammars/puppet.json +35 -35
  161. package/grammars/purescript.json +843 -467
  162. package/grammars/python.json +126 -126
  163. package/grammars/qml.json +18 -18
  164. package/grammars/qss.json +7 -7
  165. package/grammars/r.json +17 -17
  166. package/grammars/racket.json +58 -58
  167. package/grammars/raku.json +15 -15
  168. package/grammars/razor.json +30 -30
  169. package/grammars/reg.json +3 -3
  170. package/grammars/regexp.json +15 -15
  171. package/grammars/rel.json +4 -4
  172. package/grammars/riscv.json +15 -15
  173. package/grammars/rst.json +26 -26
  174. package/grammars/ruby.json +103 -106
  175. package/grammars/rust.json +13 -13
  176. package/grammars/sas.json +9 -9
  177. package/grammars/sass.json +35 -35
  178. package/grammars/scala.json +75 -75
  179. package/grammars/scheme.json +16 -16
  180. package/grammars/scss.json +68 -68
  181. package/grammars/sdbl.json +18 -18
  182. package/grammars/shaderlab.json +8 -8
  183. package/grammars/shellscript.json +111 -111
  184. package/grammars/shellsession.json +1 -1
  185. package/grammars/smalltalk.json +5 -5
  186. package/grammars/solidity.json +20 -20
  187. package/grammars/soy.json +30 -30
  188. package/grammars/sparql.json +1 -1
  189. package/grammars/splunk.json +6 -6
  190. package/grammars/sql.json +8 -8
  191. package/grammars/ssh-config.json +2 -2
  192. package/grammars/stata.json +90 -90
  193. package/grammars/stylus.json +48 -48
  194. package/grammars/svelte.json +35 -25
  195. package/grammars/swift.json +114 -114
  196. package/grammars/system-verilog.json +25 -25
  197. package/grammars/systemd.json +16 -16
  198. package/grammars/talonscript.json +12 -12
  199. package/grammars/tasl.json +10 -10
  200. package/grammars/tcl.json +11 -11
  201. package/grammars/templ.json +34 -34
  202. package/grammars/terraform.json +42 -42
  203. package/grammars/tex.json +14 -14
  204. package/grammars/toml.json +15 -15
  205. package/grammars/tsx.json +262 -262
  206. package/grammars/turtle.json +2 -2
  207. package/grammars/twig.json +37 -37
  208. package/grammars/typescript.json +251 -251
  209. package/grammars/typespec.json +54 -273
  210. package/grammars/typst.json +34 -34
  211. package/grammars/v.json +32 -32
  212. package/grammars/vala.json +6 -6
  213. package/grammars/vb.json +7 -7
  214. package/grammars/verilog.json +4 -4
  215. package/grammars/vhdl.json +10 -10
  216. package/grammars/viml.json +22 -22
  217. package/grammars/vue-html.json +10 -10
  218. package/grammars/vue-sfc-style-variable-injection.json +1 -1
  219. package/grammars/vue.json +65 -65
  220. package/grammars/vyper.json +126 -126
  221. package/grammars/wasm.json +26 -26
  222. package/grammars/wenyan.json +7 -7
  223. package/grammars/wgsl.json +9 -9
  224. package/grammars/wikitext.json +66 -66
  225. package/grammars/wit.json +1409 -0
  226. package/grammars/wolfram.json +446 -446
  227. package/grammars/xml.json +11 -11
  228. package/grammars/xsl.json +1 -1
  229. package/grammars/yaml.json +24 -24
  230. package/grammars/zenscript.json +8 -8
  231. package/grammars/zig.json +11 -11
  232. package/index.d.ts +7 -0
  233. package/index.js +1226 -506
  234. package/package.json +1 -1
@@ -17,7 +17,7 @@
17
17
  "name": "keyword.operator.assignment.tsp"
18
18
  }
19
19
  },
20
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
20
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
21
21
  "name": "meta.alias-id.typespec",
22
22
  "patterns": [
23
23
  {
@@ -35,7 +35,7 @@
35
35
  "name": "entity.name.type.tsp"
36
36
  }
37
37
  },
38
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
38
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
39
39
  "name": "meta.alias-statement.typespec",
40
40
  "patterns": [
41
41
  {
@@ -56,7 +56,7 @@
56
56
  "name": "entity.name.tag.tsp"
57
57
  }
58
58
  },
59
- "end": "(?=([_$[:alpha:]]|`))|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
59
+ "end": "(?=([_$[:alpha:]`]))|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
60
60
  "name": "meta.augment-decorator-statement.typespec",
61
61
  "patterns": [
62
62
  {
@@ -115,7 +115,7 @@
115
115
  "name": "variable.name.tsp"
116
116
  }
117
117
  },
118
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
118
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
119
119
  "name": "meta.const-statement.typespec",
120
120
  "patterns": [
121
121
  {
@@ -139,7 +139,7 @@
139
139
  "name": "entity.name.tag.tsp"
140
140
  }
141
141
  },
142
- "end": "(?=([_$[:alpha:]]|`))|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
142
+ "end": "(?=([_$[:alpha:]`]))|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
143
143
  "name": "meta.decorator.typespec",
144
144
  "patterns": [
145
145
  {
@@ -163,7 +163,7 @@
163
163
  "name": "entity.name.function.tsp"
164
164
  }
165
165
  },
166
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
166
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
167
167
  "name": "meta.decorator-declaration-statement.typespec",
168
168
  "patterns": [
169
169
  {
@@ -181,7 +181,7 @@
181
181
  "name": "keyword.directive.name.tsp"
182
182
  }
183
183
  },
184
- "end": "$|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
184
+ "end": "$|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
185
185
  "name": "meta.directive.typespec",
186
186
  "patterns": [
187
187
  {
@@ -249,7 +249,7 @@
249
249
  "name": "keyword.tag.tspdoc"
250
250
  }
251
251
  },
252
- "match": "((@)(?:returns))\\b",
252
+ "match": "((@)returns)\\b",
253
253
  "name": "comment.block.tsp"
254
254
  },
255
255
  "doc-comment-unknown-tag": {
@@ -264,45 +264,6 @@
264
264
  "match": "((@)(?:\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`))\\b",
265
265
  "name": "comment.block.tsp"
266
266
  },
267
- "else-expression": {
268
- "begin": "\\b(else)\\b",
269
- "beginCaptures": {
270
- "1": {
271
- "name": "keyword.other.tsp"
272
- }
273
- },
274
- "end": "((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
275
- "name": "meta.else-expression.typespec",
276
- "patterns": [
277
- {
278
- "include": "#projection-expression"
279
- },
280
- {
281
- "include": "#projection-body"
282
- }
283
- ]
284
- },
285
- "else-if-expression": {
286
- "begin": "\\b(else)\\s+(if)\\b",
287
- "beginCaptures": {
288
- "1": {
289
- "name": "keyword.other.tsp"
290
- },
291
- "2": {
292
- "name": "keyword.other.tsp"
293
- }
294
- },
295
- "end": "((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
296
- "name": "meta.else-if-expression.typespec",
297
- "patterns": [
298
- {
299
- "include": "#projection-expression"
300
- },
301
- {
302
- "include": "#projection-body"
303
- }
304
- ]
305
- },
306
267
  "enum-body": {
307
268
  "begin": "\\{",
308
269
  "beginCaptures": {
@@ -310,7 +271,7 @@
310
271
  "name": "punctuation.curlybrace.open.tsp"
311
272
  }
312
273
  },
313
- "end": "\\}",
274
+ "end": "}",
314
275
  "endCaptures": {
315
276
  "0": {
316
277
  "name": "punctuation.curlybrace.close.tsp"
@@ -336,7 +297,7 @@
336
297
  ]
337
298
  },
338
299
  "enum-member": {
339
- "begin": "(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:?))",
300
+ "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:?)",
340
301
  "beginCaptures": {
341
302
  "1": {
342
303
  "name": "variable.name.tsp"
@@ -345,7 +306,7 @@
345
306
  "name": "keyword.operator.type.annotation.tsp"
346
307
  }
347
308
  },
348
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
309
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
349
310
  "name": "meta.enum-member.typespec",
350
311
  "patterns": [
351
312
  {
@@ -366,7 +327,7 @@
366
327
  "name": "entity.name.type.tsp"
367
328
  }
368
329
  },
369
- "end": "(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
330
+ "end": "(?<=})|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
370
331
  "name": "meta.enum-statement.typespec",
371
332
  "patterns": [
372
333
  {
@@ -421,29 +382,6 @@
421
382
  }
422
383
  ]
423
384
  },
424
- "function-call": {
425
- "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(\\()",
426
- "beginCaptures": {
427
- "1": {
428
- "name": "entity.name.function.tsp"
429
- },
430
- "2": {
431
- "name": "punctuation.parenthesis.open.tsp"
432
- }
433
- },
434
- "end": "\\)",
435
- "endCaptures": {
436
- "0": {
437
- "name": "punctuation.parenthesis.close.tsp"
438
- }
439
- },
440
- "name": "meta.function-call.typespec",
441
- "patterns": [
442
- {
443
- "include": "#expression"
444
- }
445
- ]
446
- },
447
385
  "function-declaration-statement": {
448
386
  "begin": "(?:(extern)\\s+)?\\b(fn)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",
449
387
  "beginCaptures": {
@@ -457,7 +395,7 @@
457
395
  "name": "entity.name.function.tsp"
458
396
  }
459
397
  },
460
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
398
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
461
399
  "name": "meta.function-declaration-statement.typespec",
462
400
  "patterns": [
463
401
  {
@@ -475,24 +413,6 @@
475
413
  "match": "\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`",
476
414
  "name": "entity.name.type.tsp"
477
415
  },
478
- "if-expression": {
479
- "begin": "\\b(if)\\b",
480
- "beginCaptures": {
481
- "1": {
482
- "name": "keyword.other.tsp"
483
- }
484
- },
485
- "end": "((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
486
- "name": "meta.if-expression.typespec",
487
- "patterns": [
488
- {
489
- "include": "#projection-expression"
490
- },
491
- {
492
- "include": "#projection-body"
493
- }
494
- ]
495
- },
496
416
  "import-statement": {
497
417
  "begin": "\\b(import)\\b",
498
418
  "beginCaptures": {
@@ -500,7 +420,7 @@
500
420
  "name": "keyword.other.tsp"
501
421
  }
502
422
  },
503
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
423
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
504
424
  "name": "meta.import-statement.typespec",
505
425
  "patterns": [
506
426
  {
@@ -515,7 +435,7 @@
515
435
  "name": "punctuation.curlybrace.open.tsp"
516
436
  }
517
437
  },
518
- "end": "\\}",
438
+ "end": "}",
519
439
  "endCaptures": {
520
440
  "0": {
521
441
  "name": "punctuation.curlybrace.close.tsp"
@@ -547,7 +467,7 @@
547
467
  "name": "keyword.other.tsp"
548
468
  }
549
469
  },
550
- "end": "((?=\\{)|(?=;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
470
+ "end": "((?=\\{)|(?=[;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
551
471
  "name": "meta.interface-heritage.typespec",
552
472
  "patterns": [
553
473
  {
@@ -568,7 +488,7 @@
568
488
  "name": "entity.name.function.tsp"
569
489
  }
570
490
  },
571
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
491
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
572
492
  "name": "meta.interface-member.typespec",
573
493
  "patterns": [
574
494
  {
@@ -586,7 +506,7 @@
586
506
  "name": "keyword.other.tsp"
587
507
  }
588
508
  },
589
- "end": "(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
509
+ "end": "(?<=})|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
590
510
  "name": "meta.interface-statement.typespec",
591
511
  "patterns": [
592
512
  {
@@ -617,7 +537,7 @@
617
537
  "name": "punctuation.curlybrace.open.tsp"
618
538
  }
619
539
  },
620
- "end": "\\}",
540
+ "end": "}",
621
541
  "endCaptures": {
622
542
  "0": {
623
543
  "name": "punctuation.curlybrace.close.tsp"
@@ -652,7 +572,7 @@
652
572
  "name": "keyword.other.tsp"
653
573
  }
654
574
  },
655
- "end": "((?=\\{)|(?=;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
575
+ "end": "((?=\\{)|(?=[;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
656
576
  "name": "meta.model-heritage.typespec",
657
577
  "patterns": [
658
578
  {
@@ -664,7 +584,7 @@
664
584
  ]
665
585
  },
666
586
  "model-property": {
667
- "begin": "(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)|(\\\"(?:[^\\\"\\\\]|\\\\.)*\\\"))",
587
+ "begin": "(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)|(\"(?:[^\"\\\\]|\\\\.)*\"))",
668
588
  "beginCaptures": {
669
589
  "1": {
670
590
  "name": "variable.name.tsp"
@@ -673,7 +593,7 @@
673
593
  "name": "string.quoted.double.tsp"
674
594
  }
675
595
  },
676
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
596
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
677
597
  "name": "meta.model-property.typespec",
678
598
  "patterns": [
679
599
  {
@@ -697,7 +617,7 @@
697
617
  "name": "keyword.other.tsp"
698
618
  }
699
619
  },
700
- "end": "(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
620
+ "end": "(?<=})|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
701
621
  "name": "meta.model-statement.typespec",
702
622
  "patterns": [
703
623
  {
@@ -721,7 +641,7 @@
721
641
  "name": "punctuation.curlybrace.open.tsp"
722
642
  }
723
643
  },
724
- "end": "\\}",
644
+ "end": "}",
725
645
  "endCaptures": {
726
646
  "0": {
727
647
  "name": "punctuation.curlybrace.close.tsp"
@@ -735,8 +655,8 @@
735
655
  ]
736
656
  },
737
657
  "namespace-name": {
738
- "begin": "(?=([_$[:alpha:]]|`))",
739
- "end": "((?=\\{)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
658
+ "begin": "(?=([_$[:alpha:]`]))",
659
+ "end": "((?=\\{)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
740
660
  "name": "meta.namespace-name.typespec",
741
661
  "patterns": [
742
662
  {
@@ -754,7 +674,7 @@
754
674
  "name": "keyword.other.tsp"
755
675
  }
756
676
  },
757
- "end": "((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
677
+ "end": "((?<=})|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
758
678
  "name": "meta.namespace-statement.typespec",
759
679
  "patterns": [
760
680
  {
@@ -769,7 +689,7 @@
769
689
  ]
770
690
  },
771
691
  "numeric-literal": {
772
- "match": "(?:\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)|\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)|(?<!\\$)(?:(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)))(?!\\$))",
692
+ "match": "(?:\\b(?<!\\$)0[xX]\\h[_\\h]*(n)?\\b(?!\\$)|\\b(?<!\\$)0[bB][01][01_]*(n)?\\b(?!\\$)|(?<!\\$)(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(\\.)[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\B(\\.)[0-9][0-9_]*[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*[eE][+\\-]?[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(\\.)(n)?\\B|\\B(\\.)[0-9][0-9_]*(n)?\\b|\\b[0-9][0-9_]*(n)?\\b(?!\\.))(?!\\$))",
773
693
  "name": "constant.numeric.tsp"
774
694
  },
775
695
  "object-literal": {
@@ -779,7 +699,7 @@
779
699
  "name": "punctuation.hashcurlybrace.open.tsp"
780
700
  }
781
701
  },
782
- "end": "\\}",
702
+ "end": "}",
783
703
  "endCaptures": {
784
704
  "0": {
785
705
  "name": "punctuation.curlybrace.close.tsp"
@@ -805,7 +725,7 @@
805
725
  ]
806
726
  },
807
727
  "object-literal-property": {
808
- "begin": "(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:))",
728
+ "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:)",
809
729
  "beginCaptures": {
810
730
  "1": {
811
731
  "name": "variable.name.tsp"
@@ -814,7 +734,7 @@
814
734
  "name": "keyword.operator.type.annotation.tsp"
815
735
  }
816
736
  },
817
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
737
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
818
738
  "name": "meta.object-literal-property.typespec",
819
739
  "patterns": [
820
740
  {
@@ -832,7 +752,7 @@
832
752
  "name": "keyword.other.tsp"
833
753
  }
834
754
  },
835
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
755
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
836
756
  "name": "meta.operation-heritage.typespec",
837
757
  "patterns": [
838
758
  {
@@ -898,7 +818,7 @@
898
818
  "name": "entity.name.function.tsp"
899
819
  }
900
820
  },
901
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
821
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
902
822
  "name": "meta.operation-statement.typespec",
903
823
  "patterns": [
904
824
  {
@@ -936,142 +856,6 @@
936
856
  }
937
857
  ]
938
858
  },
939
- "projection": {
940
- "begin": "(from|to)",
941
- "beginCaptures": {
942
- "1": {
943
- "name": "keyword.other.tsp"
944
- }
945
- },
946
- "end": "((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
947
- "name": "meta.projection.typespec",
948
- "patterns": [
949
- {
950
- "include": "#projection-parameters"
951
- },
952
- {
953
- "include": "#projection-body"
954
- }
955
- ]
956
- },
957
- "projection-body": {
958
- "begin": "\\{",
959
- "beginCaptures": {
960
- "0": {
961
- "name": "punctuation.curlybrace.open.tsp"
962
- }
963
- },
964
- "end": "\\}",
965
- "endCaptures": {
966
- "0": {
967
- "name": "punctuation.curlybrace.close.tsp"
968
- }
969
- },
970
- "name": "meta.projection-body.typespec",
971
- "patterns": [
972
- {
973
- "include": "#projection-expression"
974
- },
975
- {
976
- "include": "#punctuation-semicolon"
977
- }
978
- ]
979
- },
980
- "projection-expression": {
981
- "patterns": [
982
- {
983
- "include": "#else-if-expression"
984
- },
985
- {
986
- "include": "#if-expression"
987
- },
988
- {
989
- "include": "#else-expression"
990
- },
991
- {
992
- "include": "#function-call"
993
- }
994
- ]
995
- },
996
- "projection-parameter": {
997
- "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",
998
- "beginCaptures": {
999
- "1": {
1000
- "name": "variable.name.tsp"
1001
- }
1002
- },
1003
- "end": "(?=\\))|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1004
- "name": "meta.projection-parameter.typespec",
1005
- "patterns": [
1006
- ]
1007
- },
1008
- "projection-parameters": {
1009
- "begin": "\\(",
1010
- "beginCaptures": {
1011
- "0": {
1012
- "name": "punctuation.parenthesis.open.tsp"
1013
- }
1014
- },
1015
- "end": "\\)",
1016
- "endCaptures": {
1017
- "0": {
1018
- "name": "punctuation.parenthesis.close.tsp"
1019
- }
1020
- },
1021
- "name": "meta.projection-parameters.typespec",
1022
- "patterns": [
1023
- {
1024
- "include": "#token"
1025
- },
1026
- {
1027
- "include": "#projection-parameter"
1028
- }
1029
- ]
1030
- },
1031
- "projection-statement": {
1032
- "begin": "\\b(projection)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)(#)(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",
1033
- "beginCaptures": {
1034
- "1": {
1035
- "name": "keyword.other.tsp"
1036
- },
1037
- "2": {
1038
- "name": "keyword.other.tsp"
1039
- },
1040
- "3": {
1041
- "name": "keyword.operator.selector.tsp"
1042
- },
1043
- "4": {
1044
- "name": "variable.name.tsp"
1045
- }
1046
- },
1047
- "end": "((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",
1048
- "name": "meta.projection-statement.typespec",
1049
- "patterns": [
1050
- {
1051
- "include": "#projection-statement-body"
1052
- }
1053
- ]
1054
- },
1055
- "projection-statement-body": {
1056
- "begin": "\\{",
1057
- "beginCaptures": {
1058
- "0": {
1059
- "name": "punctuation.curlybrace.open.tsp"
1060
- }
1061
- },
1062
- "end": "\\}",
1063
- "endCaptures": {
1064
- "0": {
1065
- "name": "punctuation.curlybrace.close.tsp"
1066
- }
1067
- },
1068
- "name": "meta.projection-statement-body.typespec",
1069
- "patterns": [
1070
- {
1071
- "include": "#projection"
1072
- }
1073
- ]
1074
- },
1075
859
  "punctuation-accessor": {
1076
860
  "match": "\\.",
1077
861
  "name": "punctuation.accessor.tsp"
@@ -1091,7 +875,7 @@
1091
875
  "name": "punctuation.curlybrace.open.tsp"
1092
876
  }
1093
877
  },
1094
- "end": "\\}",
878
+ "end": "}",
1095
879
  "endCaptures": {
1096
880
  "0": {
1097
881
  "name": "punctuation.curlybrace.close.tsp"
@@ -1123,7 +907,7 @@
1123
907
  "name": "entity.name.function.tsp"
1124
908
  }
1125
909
  },
1126
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
910
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1127
911
  "name": "meta.scalar-constructor.typespec",
1128
912
  "patterns": [
1129
913
  {
@@ -1141,7 +925,7 @@
1141
925
  "name": "keyword.other.tsp"
1142
926
  }
1143
927
  },
1144
- "end": "(?=;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
928
+ "end": "(?=[;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1145
929
  "name": "meta.scalar-extends.typespec",
1146
930
  "patterns": [
1147
931
  {
@@ -1162,7 +946,7 @@
1162
946
  "name": "entity.name.type.tsp"
1163
947
  }
1164
948
  },
1165
- "end": "(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
949
+ "end": "(?<=})|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1166
950
  "name": "meta.scalar-statement.typespec",
1167
951
  "patterns": [
1168
952
  {
@@ -1186,7 +970,7 @@
1186
970
  "name": "keyword.operator.spread.tsp"
1187
971
  }
1188
972
  },
1189
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
973
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1190
974
  "name": "meta.spread-operator.typespec",
1191
975
  "patterns": [
1192
976
  {
@@ -1247,9 +1031,6 @@
1247
1031
  {
1248
1032
  "include": "#function-declaration-statement"
1249
1033
  },
1250
- {
1251
- "include": "#projection-statement"
1252
- },
1253
1034
  {
1254
1035
  "include": "#punctuation-semicolon"
1255
1036
  }
@@ -1275,7 +1056,7 @@
1275
1056
  "name": "punctuation.definition.template-expression.begin.tsp"
1276
1057
  }
1277
1058
  },
1278
- "end": "\\}",
1059
+ "end": "}",
1279
1060
  "endCaptures": {
1280
1061
  "0": {
1281
1062
  "name": "punctuation.definition.template-expression.end.tsp"
@@ -1333,7 +1114,7 @@
1333
1114
  "name": "punctuation.squarebracket.open.tsp"
1334
1115
  }
1335
1116
  },
1336
- "end": "\\]",
1117
+ "end": "]",
1337
1118
  "endCaptures": {
1338
1119
  "0": {
1339
1120
  "name": "punctuation.squarebracket.close.tsp"
@@ -1353,7 +1134,7 @@
1353
1134
  "name": "punctuation.hashsquarebracket.open.tsp"
1354
1135
  }
1355
1136
  },
1356
- "end": "\\]",
1137
+ "end": "]",
1357
1138
  "endCaptures": {
1358
1139
  "0": {
1359
1140
  "name": "punctuation.squarebracket.close.tsp"
@@ -1379,7 +1160,7 @@
1379
1160
  "name": "keyword.operator.type.annotation.tsp"
1380
1161
  }
1381
1162
  },
1382
- "end": "(?=,|;|@|\\)|\\}|=|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1163
+ "end": "(?=[,;@)}=]|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1383
1164
  "name": "meta.type-annotation.typespec",
1384
1165
  "patterns": [
1385
1166
  {
@@ -1388,7 +1169,7 @@
1388
1169
  ]
1389
1170
  },
1390
1171
  "type-argument": {
1391
- "begin": "(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(=))",
1172
+ "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(=)",
1392
1173
  "beginCaptures": {
1393
1174
  "1": {
1394
1175
  "name": "entity.name.type.tsp"
@@ -1397,7 +1178,7 @@
1397
1178
  "name": "keyword.operator.assignment.tsp"
1398
1179
  }
1399
1180
  },
1400
- "end": "(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1181
+ "end": "(?=>)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1401
1182
  "endCaptures": {
1402
1183
  "0": {
1403
1184
  "name": "keyword.operator.assignment.tsp"
@@ -1449,7 +1230,7 @@
1449
1230
  "name": "entity.name.type.tsp"
1450
1231
  }
1451
1232
  },
1452
- "end": "(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1233
+ "end": "(?=>)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1453
1234
  "name": "meta.type-parameter.typespec",
1454
1235
  "patterns": [
1455
1236
  {
@@ -1470,7 +1251,7 @@
1470
1251
  "name": "keyword.other.tsp"
1471
1252
  }
1472
1253
  },
1473
- "end": "(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1254
+ "end": "(?=>)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1474
1255
  "name": "meta.type-parameter-constraint.typespec",
1475
1256
  "patterns": [
1476
1257
  {
@@ -1485,7 +1266,7 @@
1485
1266
  "name": "keyword.operator.assignment.tsp"
1486
1267
  }
1487
1268
  },
1488
- "end": "(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1269
+ "end": "(?=>)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1489
1270
  "name": "meta.type-parameter-default.typespec",
1490
1271
  "patterns": [
1491
1272
  {
@@ -1523,7 +1304,7 @@
1523
1304
  "name": "keyword.other.tsp"
1524
1305
  }
1525
1306
  },
1526
- "end": "(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1307
+ "end": "(?=>)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1527
1308
  "name": "meta.typeof.typespec",
1528
1309
  "patterns": [
1529
1310
  {
@@ -1538,7 +1319,7 @@
1538
1319
  "name": "punctuation.curlybrace.open.tsp"
1539
1320
  }
1540
1321
  },
1541
- "end": "\\}",
1322
+ "end": "}",
1542
1323
  "endCaptures": {
1543
1324
  "0": {
1544
1325
  "name": "punctuation.curlybrace.close.tsp"
@@ -1576,7 +1357,7 @@
1576
1357
  "name": "entity.name.type.tsp"
1577
1358
  }
1578
1359
  },
1579
- "end": "(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1360
+ "end": "(?<=})|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1580
1361
  "name": "meta.union-statement.typespec",
1581
1362
  "patterns": [
1582
1363
  {
@@ -1588,7 +1369,7 @@
1588
1369
  ]
1589
1370
  },
1590
1371
  "union-variant": {
1591
- "begin": "(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:))",
1372
+ "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:)",
1592
1373
  "beginCaptures": {
1593
1374
  "1": {
1594
1375
  "name": "variable.name.tsp"
@@ -1597,7 +1378,7 @@
1597
1378
  "name": "keyword.operator.type.annotation.tsp"
1598
1379
  }
1599
1380
  },
1600
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1381
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1601
1382
  "name": "meta.union-variant.typespec",
1602
1383
  "patterns": [
1603
1384
  {
@@ -1615,7 +1396,7 @@
1615
1396
  "name": "keyword.other.tsp"
1616
1397
  }
1617
1398
  },
1618
- "end": "(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1399
+ "end": "(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1619
1400
  "name": "meta.using-statement.typespec",
1620
1401
  "patterns": [
1621
1402
  {
@@ -1636,7 +1417,7 @@
1636
1417
  "name": "keyword.other.tsp"
1637
1418
  }
1638
1419
  },
1639
- "end": "(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1420
+ "end": "(?=>)|(?=[,;@)}]|\\bextern\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",
1640
1421
  "name": "meta.valueof.typespec",
1641
1422
  "patterns": [
1642
1423
  {