@openclaw/diffs 2026.10.2 → 2026.10.5-beta.2

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 (134) hide show
  1. package/dist/.setup/{browser.runtime-B8JeyUXz.mjs → browser.runtime-BfvyJ76b.mjs} +7 -11
  2. package/dist/assets/viewer-runtime.js +97 -1316
  3. package/dist/index.js +19 -42
  4. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +2 -4
  5. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  6. package/node_modules/@pierre/diffs/dist/components/CodeView.js +23 -12
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  8. package/node_modules/@pierre/diffs/dist/components/File.d.ts +2 -0
  9. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  10. package/node_modules/@pierre/diffs/dist/components/File.js +6 -0
  11. package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
  12. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +18 -1
  13. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  14. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +47 -15
  15. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  16. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  17. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +11 -11
  18. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  19. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  20. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +18 -17
  21. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  22. package/node_modules/@pierre/diffs/dist/constants.d.ts +1 -3
  23. package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
  24. package/node_modules/@pierre/diffs/dist/constants.js +1 -3
  25. package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
  26. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
  27. package/node_modules/@pierre/diffs/dist/editor/editor.js +16 -3
  28. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
  29. package/node_modules/@pierre/diffs/dist/editor/editor2.js +1 -1
  30. package/node_modules/@pierre/diffs/dist/index.d.ts +2 -2
  31. package/node_modules/@pierre/diffs/dist/index.js +2 -2
  32. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  33. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +47 -11
  34. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  35. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  36. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +20 -13
  37. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  38. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  39. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +30 -11
  40. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  41. package/node_modules/@pierre/diffs/dist/sprite.d.ts +2 -2
  42. package/node_modules/@pierre/diffs/dist/sprite.d.ts.map +1 -1
  43. package/node_modules/@pierre/diffs/dist/sprite.js +57 -0
  44. package/node_modules/@pierre/diffs/dist/sprite.js.map +1 -1
  45. package/node_modules/@pierre/diffs/dist/style.js +1 -1
  46. package/node_modules/@pierre/diffs/dist/types.d.ts +1 -1
  47. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  48. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +5 -4
  49. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -1
  50. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +32 -9
  51. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -1
  52. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  53. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +21 -13
  54. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  55. package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.d.ts +8 -0
  56. package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.d.ts.map +1 -0
  57. package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.js +54 -0
  58. package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.js.map +1 -0
  59. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +13 -10
  60. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -1
  61. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +23 -19
  62. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -1
  63. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +39 -0
  64. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  65. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +39 -0
  66. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  67. package/node_modules/@pierre/diffs/dist/worker/worker.js +39 -0
  68. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  69. package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.d.mts +28 -28
  70. package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.mjs +15 -12
  71. package/node_modules/@pierre/diffs/node_modules/@shikijs/core/package.json +4 -4
  72. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/{engine-compile-Bdn9ihA2.d.mts → engine-compile-CtqiSkRk.d.mts} +5 -0
  73. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
  74. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs +2 -4
  75. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +2 -3
  76. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.mjs +2 -4
  77. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
  78. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.mjs +1 -1
  79. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/string-TLTPtCPs.mjs +115 -0
  80. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/package.json +3 -3
  81. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-oniguruma/package.json +3 -3
  82. package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.d.mts +31 -32
  83. package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.mjs +2 -1
  84. package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/package.json +3 -3
  85. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
  86. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/one-dark-pro.mjs +1 -1
  87. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/red.mjs +1 -1
  88. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
  89. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
  90. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/package.json +3 -3
  91. package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.d.mts +58 -35
  92. package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.mjs +35 -4
  93. package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/package.json +3 -3
  94. package/node_modules/@pierre/diffs/node_modules/@shikijs/types/dist/index.d.mts +76 -76
  95. package/node_modules/@pierre/diffs/node_modules/@shikijs/types/package.json +1 -1
  96. package/node_modules/@pierre/diffs/node_modules/micromark-util-types/index.d.ts +6 -3
  97. package/node_modules/@pierre/diffs/node_modules/micromark-util-types/package.json +2 -36
  98. package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.d.mts +4 -4
  99. package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.d.mts +9 -9
  100. package/node_modules/@pierre/diffs/node_modules/shiki/dist/types.d.mts +3 -3
  101. package/node_modules/@pierre/diffs/node_modules/shiki/package.json +10 -10
  102. package/node_modules/@pierre/diffs/package.json +1 -1
  103. package/node_modules/@shikijs/langs/dist/ada.mjs +1 -1
  104. package/node_modules/@shikijs/langs/dist/ahk.mjs +1 -1
  105. package/node_modules/@shikijs/langs/dist/beancount.mjs +1 -1
  106. package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
  107. package/node_modules/@shikijs/langs/dist/csharp.mjs +1 -1
  108. package/node_modules/@shikijs/langs/dist/css.mjs +1 -1
  109. package/node_modules/@shikijs/langs/dist/dart.mjs +1 -1
  110. package/node_modules/@shikijs/langs/dist/dotenv.mjs +1 -1
  111. package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
  112. package/node_modules/@shikijs/langs/dist/gn.mjs +1 -1
  113. package/node_modules/@shikijs/langs/dist/handlebars.mjs +1 -1
  114. package/node_modules/@shikijs/langs/dist/julia.mjs +1 -1
  115. package/node_modules/@shikijs/langs/dist/latex.mjs +1 -1
  116. package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
  117. package/node_modules/@shikijs/langs/dist/marko.mjs +1 -1
  118. package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
  119. package/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +1 -1
  120. package/node_modules/@shikijs/langs/dist/nextflow.mjs +1 -1
  121. package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
  122. package/node_modules/@shikijs/langs/dist/php.mjs +1 -1
  123. package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
  124. package/node_modules/@shikijs/langs/dist/ruby.mjs +1 -1
  125. package/node_modules/@shikijs/langs/dist/rust.mjs +1 -1
  126. package/node_modules/@shikijs/langs/dist/sql.mjs +1 -1
  127. package/node_modules/@shikijs/langs/dist/svelte.mjs +1 -1
  128. package/node_modules/@shikijs/langs/dist/twig.mjs +3 -3
  129. package/node_modules/@shikijs/langs/dist/typespec.mjs +1 -1
  130. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +76 -76
  131. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +1 -1
  132. package/node_modules/@shikijs/langs/package.json +3 -3
  133. package/package.json +6 -6
  134. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/scanner-DX8LRFGE.mjs +0 -77
@@ -1,15 +1,15 @@
1
- import css from './css.mjs'
2
1
  import javascript from './javascript.mjs'
2
+ import css from './css.mjs'
3
3
  import scss from './scss.mjs'
4
4
  import php from './php.mjs'
5
5
  import python from './python.mjs'
6
6
  import ruby from './ruby.mjs'
7
7
 
8
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"Twig\",\"fileTypes\":[\"twig\",\"html.twig\"],\"firstLineMatch\":\"<!(?i:DOCTYPE)|<(?i:html)|<\\\\?(?i:php)|\\\\{\\\\{|\\\\{%|\\\\{#\",\"foldingStartMarker\":\"(<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\\\b.*?>|<!--(?!.*--\\\\s*>)|^<!-- #tminclude (?>.*?-->)$|\\\\{%\\\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim))\",\"foldingStopMarker\":\"(</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>|^(?!.*?<!--).*?--\\\\s*>|^<!-- end tminclude -->$|\\\\{%\\\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim))\",\"name\":\"twig\",\"patterns\":[{\"begin\":\"(<)([0-:A-Za-z]++)(?=[^>]*></\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"},{\"include\":\"#embedded-code\"}]},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(?i:DOCTYPE)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\"[^\\\">]*\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\[CDATA\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\s*)(?!--|>)\\\\S(\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"include\":\"#embedded-code\"},{\"begin\":\"(?:^\\\\s+)?(<)((?i:style))\\\\b(?![^>]*/>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.style.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)((?i:style))(>)(?:\\\\s*\\\\n)?\",\"name\":\"source.css.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(?=</(?i:style))\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"(?:^\\\\s+)?(<)((?i:script))\\\\b(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\s*\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.js.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"(//).*?((?=</script)|$\\\\n?)\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\*/|(?=</script)\",\"name\":\"comment.block.js\"},{\"include\":\"#php\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(?i)(?<=\\\\{%\\\\s(?:|include)js\\\\s%})\",\"end\":\"(?i)(?=\\\\{%\\\\send(?:|include)js\\\\s%})\",\"name\":\"source.js.embedded.twig\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?i)(?<=\\\\{%\\\\s(?:|include|includehires)css\\\\s%})\",\"end\":\"(?i)(?=\\\\{%\\\\send(?:|include|includehires)css\\\\s%})\",\"name\":\"source.css.embedded.twig\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(?i)(?<=\\\\{%\\\\s(?:|include|includehires)scss\\\\s%})\",\"end\":\"(?i)(?=\\\\{%\\\\send(?:|include|includehires)scss\\\\s%})\",\"name\":\"source.css.scss.embedded.twig\",\"patterns\":[{\"include\":\"source.css.scss\"}]},{\"begin\":\"(</?)((?i:body|head|html))\\\\b\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|[qs]|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([0-:A-Za-z]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"},{\"include\":\"#twig-verbatim\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"}],\"repository\":{\"embedded-code\":{\"patterns\":[{\"include\":\"#ruby\"},{\"include\":\"#php\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"#python\"}]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([0-9A-Za-z]+|#[0-9]+|#x\\\\h+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"php\":{\"begin\":\"(?=(^\\\\s*)?<\\\\?)\",\"end\":\"(?!(^\\\\s*)?<\\\\?)\",\"patterns\":[{\"include\":\"source.php\"}]},\"python\":{\"begin\":\"^\\\\s*<\\\\?python(?!.*\\\\?>)\",\"end\":\"\\\\?>(?:\\\\s*$\\\\n)?\",\"name\":\"source.python.embedded.html\",\"patterns\":[{\"include\":\"source.python\"}]},\"ruby\":{\"patterns\":[{\"begin\":\"<%+#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.erb\"}},\"end\":\"%>\",\"name\":\"comment.block.erb\"},{\"begin\":\"<%+(?!>)=?\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"}},\"end\":\"-?%>\",\"name\":\"source.ruby.embedded.html\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"match\":\"(#).*?(?=-?%>)\",\"name\":\"comment.line.number-sign.ruby\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"<\\\\?r(?!>)=?\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby.nitro\"}},\"end\":\"-?\\\\?>\",\"name\":\"source.ruby.nitro.embedded.html\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby.nitro\"}},\"match\":\"(#).*?(?=-?\\\\?>)\",\"name\":\"comment.line.number-sign.ruby.nitro\"},{\"include\":\"source.ruby\"}]}]},\"string-double-quoted\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},\"tag-generic-attribute\":{\"match\":\"\\\\b([-:A-Za-z]+)\",\"name\":\"entity.other.attribute-name.html\"},\"tag-id-attribute\":{\"begin\":\"\\\\b(id)\\\\b\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[\\\"'])\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#tag-id-attribute\"},{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"},{\"include\":\"#embedded-code\"}]},\"twig-arrays\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.twig\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.twig\"}},\"name\":\"meta.array.twig\",\"patterns\":[{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"},{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.twig\"}]},\"twig-comment-tag\":{\"begin\":\"\\\\{#-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.twig\"}},\"end\":\"-?#}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.twig\"}},\"name\":\"comment.block.twig\"},\"twig-constants\":{\"patterns\":[{\"match\":\"(?i)(?<=[(,:\\\\[{\\\\s])(?:true|false|null|none)(?=[]),}\\\\s])\",\"name\":\"constant.language.twig\"},{\"match\":\"(?<=[(,:\\\\[{\\\\s]|\\\\.\\\\.|\\\\*\\\\*)[0-9]+(?:\\\\.[0-9]+)?(?=[]),}\\\\s]|\\\\.\\\\.|\\\\*\\\\*)\",\"name\":\"constant.numeric.twig\"}]},\"twig-filters\":{\"captures\":{\"1\":{\"name\":\"support.function.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[]),:|}\\\\s]|\\\\.\\\\.|\\\\*\\\\*)\"},\"twig-filters-ud\":{\"captures\":{\"1\":{\"name\":\"meta.function-call.other.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)\"},\"twig-filters-warg\":{\"begin\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-filters-warg-ud\":{\"begin\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.function-call.other.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-functions\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.twig\"},\"2\":{\"name\":\"support.function.twig\"}},\"match\":\"(?<=is\\\\s)(?:(not)\\\\s+)?(defined|empty|even|iterable|odd|null|same\\\\s+as)\"},\"twig-functions-warg\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"}]},\"twig-hashes\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.begin.twig\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.end.twig\"}},\"name\":\"meta.hash.twig\",\"patterns\":[{\"include\":\"#twig-hashes\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.twig\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.twig\"}]},\"twig-keywords\":{\"match\":\"(?<=\\\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|types|use|with)(?=\\\\s)\",\"name\":\"keyword.control.twig\"},\"twig-macros\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(?:(\\\\.)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*))?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.function-call.twig\"},\"2\":{\"name\":\"punctuation.separator.property.twig\"},\"3\":{\"name\":\"variable.other.property.twig\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-objects\":{\"captures\":{\"1\":{\"name\":\"variable.other.twig\"}},\"match\":\"(?<=[(,:\\\\[{\\\\s])([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(?=[](),.:\\\\[|}\\\\s])\"},\"twig-operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.arithmetic.twig\"}},\"match\":\"(?<=\\\\s)([-+]|//?|%|\\\\*\\\\*?)(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.twig\"}},\"match\":\"(?<=\\\\s)([=~])(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.bitwise.twig\"}},\"match\":\"(?<=\\\\s)(b-(?:and|or|xor))(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.comparison.twig\"}},\"match\":\"(?<=\\\\s)([!=]=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.twig\"}},\"match\":\"(?<=\\\\s)([:?]|\\\\?:|\\\\?\\\\?|and|not|or)(?=\\\\s)\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.other.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ])\\\\.\\\\.(?=[\\\"'0-9A-Z_a-z\\\\x7F-ÿ])\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.other.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z}\\\\x7F-ÿ])\\\\|(?=[A-Z_a-z\\\\x7F-ÿ])\"}]},\"twig-print-tag\":{\"begin\":\"\\\\{\\\\{-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"-?}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.value.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-properties\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"}},\"match\":\"(?<=[0-9A-Z_a-z\\\\x7F-ÿ])(\\\\.)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(?=[]),.:\\\\[|}\\\\s])\"},{\"begin\":\"(?<=[0-9A-Z_a-z\\\\x7F-ÿ])(\\\\.)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.property.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.section.array.begin.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"},\"3\":{\"name\":\"punctuation.section.array.end.twig\"},\"4\":{\"name\":\"punctuation.section.array.begin.twig\"},\"5\":{\"name\":\"variable.other.property.twig\"},\"6\":{\"name\":\"punctuation.section.array.end.twig\"},\"7\":{\"name\":\"punctuation.section.array.begin.twig\"},\"8\":{\"name\":\"variable.other.property.twig\"},\"9\":{\"name\":\"punctuation.section.array.end.twig\"}},\"match\":\"(?<=[]0-9A-Z_a-z\\\\x7F-ÿ])(?:(\\\\[)('[A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*')(])|(\\\\[)(\\\"[A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*\\\")(])|(\\\\[)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(]))\"}]},\"twig-statement-tag\":{\"begin\":\"\\\\{%-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"-?%}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.block.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-keywords\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-strings\":{\"patterns\":[{\"begin\":\"(?:(?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.twig\"}},\"end\":\"(?:(?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.twig\"}},\"name\":\"string.quoted.single.twig\"},{\"begin\":\"(?:(?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.twig\"}},\"end\":\"(?:(?<!\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\))\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.twig\"}},\"name\":\"string.quoted.double.twig\"}]},\"twig-verbatim\":{\"begin\":\"(\\\\{%-?)\\\\s*(verbatim)\\\\s*(-?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.definition.tag.twig\"}},\"contentName\":\"string.unquoted.verbatim.twig\",\"end\":\"(\\\\{%-?)\\\\s*(endverbatim)\\\\s*(-?%})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.definition.tag.twig\"}},\"name\":\"meta.tag.template.verbatim.twig\"}},\"scopeName\":\"text.html.twig\",\"embeddedLangs\":[\"css\",\"javascript\",\"scss\",\"php\",\"python\",\"ruby\"]}"))
8
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"Twig\",\"fileTypes\":[\"twig\",\"html.twig\"],\"firstLineMatch\":\"<!(?i:DOCTYPE)|<(?i:html)|<\\\\?(?i:php)|\\\\{\\\\{|\\\\{%|\\\\{#\",\"foldingStartMarker\":\"(<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\\\b.*?>|<!--(?!.*--\\\\s*>)|^<!-- #tminclude (?>.*?-->)$|\\\\{%\\\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim))\",\"foldingStopMarker\":\"(</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>|^(?!.*?<!--).*?--\\\\s*>|^<!-- end tminclude -->$|\\\\{%\\\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim))\",\"injections\":{\"L:text.html.twig -meta.tag.template -comment.block.twig -string.unquoted.verbatim.twig\":{\"patterns\":[{\"include\":\"#twig-verbatim\"},{\"include\":\"#twig-embedded-blocks\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-injected-statement\"}]}},\"name\":\"twig\",\"patterns\":[{\"include\":\"#twig-verbatim\"},{\"begin\":\"(\\\\{%[-~]?)\\\\s*(js|includejs|javascript)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.section.tag.twig\"}},\"contentName\":\"source.js.embedded.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*end\\\\2\\\\s*([-~]?%})\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.twig\"}},\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(\\\\{%[-~]?)\\\\s*((?:|include|includehires)css)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.section.tag.twig\"}},\"contentName\":\"source.css.embedded.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*end\\\\2\\\\s*([-~]?%})\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.twig\"}},\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(\\\\{%[-~]?)\\\\s*((?:|include|includehires)scss)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.section.tag.twig\"}},\"contentName\":\"source.css.scss.embedded.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*end\\\\2\\\\s*([-~]?%})\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.twig\"}},\"patterns\":[{\"include\":\"source.css.scss\"}]},{\"begin\":\"(<)([-.0-:A-Za-z]++)(?=[^>]*></\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"},{\"include\":\"#embedded-code\"}]},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(?i:DOCTYPE)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\"[^\\\">]*\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\[CDATA\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\s*)(?!--|>)\\\\S(\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"include\":\"#embedded-code\"},{\"begin\":\"(?:^\\\\s+)?(<)((?i:style))\\\\b(?![^>]*/>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.style.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)((?i:style))(>)(?:\\\\s*\\\\n)?\",\"name\":\"source.css.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(?=</(?i:style))\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"(?:^\\\\s+)?(<)((?i:script))\\\\b(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\s*\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.js.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"(//).*?((?=</script)|$\\\\n?)\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\*/|(?=</script)\",\"name\":\"comment.block.js\"},{\"include\":\"#php\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(</?)((?i:body|head|html))\\\\b\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|[qs]|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([-.0-:A-Za-z]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"},{\"include\":\"#twig-verbatim\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"}],\"repository\":{\"embedded-code\":{\"patterns\":[{\"include\":\"#twig-verbatim\"},{\"include\":\"#ruby\"},{\"include\":\"#php\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"#python\"}]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([0-9A-Za-z]+|#[0-9]+|#x\\\\h+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"php\":{\"begin\":\"(?=(^\\\\s*)?<\\\\?)\",\"end\":\"(?!(^\\\\s*)?<\\\\?)\",\"patterns\":[{\"include\":\"source.php\"}]},\"python\":{\"begin\":\"^\\\\s*<\\\\?python(?!.*\\\\?>)\",\"end\":\"\\\\?>(?:\\\\s*$\\\\n)?\",\"name\":\"source.python.embedded.html\",\"patterns\":[{\"include\":\"source.python\"}]},\"ruby\":{\"patterns\":[{\"begin\":\"<%+#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.erb\"}},\"end\":\"%>\",\"name\":\"comment.block.erb\"},{\"begin\":\"<%+(?!>)=?\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"}},\"end\":\"-?%>\",\"name\":\"source.ruby.embedded.html\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"match\":\"(#).*?(?=-?%>)\",\"name\":\"comment.line.number-sign.ruby\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"<\\\\?r(?!>)=?\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby.nitro\"}},\"end\":\"-?\\\\?>\",\"name\":\"source.ruby.nitro.embedded.html\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby.nitro\"}},\"match\":\"(#).*?(?=-?\\\\?>)\",\"name\":\"comment.line.number-sign.ruby.nitro\"},{\"include\":\"source.ruby\"}]}]},\"string-double-quoted\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},\"tag-generic-attribute\":{\"match\":\"\\\\b([-:A-Za-z]+)\",\"name\":\"entity.other.attribute-name.html\"},\"tag-id-attribute\":{\"begin\":\"\\\\b(id)\\\\b\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[\\\"'])\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]}]},\"tag-stuff\":{\"patterns\":[{\"begin\":\"(=)\\\\s*(?=[^\\\"'<=>`\\\\s])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.html\"}},\"contentName\":\"string.unquoted.html\",\"end\":\"(?=[>\\\\s])\",\"patterns\":[{\"include\":\"#embedded-code\"}]},{\"include\":\"#tag-id-attribute\"},{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"},{\"include\":\"#embedded-code\"}]},\"twig-arrays\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.twig\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.twig\"}},\"name\":\"meta.array.twig\",\"patterns\":[{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"},{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.twig\"}]},\"twig-comment-tag\":{\"begin\":\"\\\\{#[-~]?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.twig\"}},\"end\":\"[-~]?#}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.twig\"}},\"name\":\"comment.block.twig\"},\"twig-constants\":{\"patterns\":[{\"match\":\"(?i)(?<=[(,:\\\\[{\\\\s])(?:true|false|null|none)(?=[]),}\\\\s])\",\"name\":\"constant.language.twig\"},{\"match\":\"(?<=[(,:\\\\[{\\\\s]|\\\\.\\\\.|\\\\*\\\\*)[0-9]+(?:\\\\.[0-9]+)?(?=[]),}\\\\s]|\\\\.\\\\.|\\\\*\\\\*)\",\"name\":\"constant.numeric.twig\"}]},\"twig-embedded-blocks\":{\"patterns\":[{\"begin\":\"(\\\\{%[-~]?)\\\\s*(js|includejs|javascript)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.section.tag.twig\"}},\"contentName\":\"source.js.embedded.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*end\\\\2\\\\s*([-~]?%})\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.twig\"}},\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(\\\\{%[-~]?)\\\\s*((?:|include|includehires)css)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.section.tag.twig\"}},\"contentName\":\"source.css.embedded.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*end\\\\2\\\\s*([-~]?%})\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.twig\"}},\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(\\\\{%[-~]?)\\\\s*((?:|include|includehires)scss)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.section.tag.twig\"}},\"contentName\":\"source.css.scss.embedded.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*end\\\\2\\\\s*([-~]?%})\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.twig\"}},\"patterns\":[{\"include\":\"source.css.scss\"}]}]},\"twig-filters\":{\"captures\":{\"1\":{\"name\":\"support.function.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)(default|abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[]),:|}\\\\s]|\\\\.\\\\.|\\\\*\\\\*)\"},\"twig-filters-ud\":{\"captures\":{\"1\":{\"name\":\"meta.function-call.other.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)\"},\"twig-filters-warg\":{\"begin\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-filters-warg-ud\":{\"begin\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ]\\\\||\\\\{%\\\\sfilter\\\\s)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.function-call.other.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-functions\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.twig\"},\"2\":{\"name\":\"support.function.twig\"}},\"match\":\"(?<=is\\\\s)(?:(not)\\\\s+)?(defined|empty|even|iterable|odd|null|same\\\\s+as)\"},\"twig-functions-warg\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"}]},\"twig-hashes\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.begin.twig\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.end.twig\"}},\"name\":\"meta.hash.twig\",\"patterns\":[{\"include\":\"#twig-hashes\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.twig\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.twig\"}]},\"twig-injected-statement\":{\"begin\":\"\\\\{%(?![-~]?\\\\s*end(?:js|javascript|includejs|css|includecss|includehirescss|scss|includescss|includehiresscss)\\\\b)[-~]?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"[-~]?%}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.block.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-keywords\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-keywords\":{\"match\":\"\\\\b(?:(?:end)?(?:apply|autoescape|block|cache|deprecated|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim|with)|as|do|else|elseif|extends|flush|from|import|include|only|types|use)\\\\b\",\"name\":\"keyword.control.twig\"},\"twig-macros\":{\"begin\":\"(?<=[(,:\\\\[{\\\\s])([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(?:(\\\\.)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*))?(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.function-call.twig\"},\"2\":{\"name\":\"punctuation.separator.property.twig\"},\"3\":{\"name\":\"variable.other.property.twig\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-objects\":{\"captures\":{\"1\":{\"name\":\"variable.other.twig\"}},\"match\":\"(?<=[(,:\\\\[{\\\\s])([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(?=[](),.:\\\\[|}\\\\s])\"},\"twig-operators\":{\"patterns\":[{\"match\":\"\\\\?\\\\?|\\\\?:|\\\\?\\\\.|<=>|=>|===|!==\",\"name\":\"keyword.operator.twig\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.arithmetic.twig\"}},\"match\":\"(?<=\\\\s)([-+]|//?|%|\\\\*\\\\*?)(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.twig\"}},\"match\":\"(?<=\\\\s)([=~])(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.bitwise.twig\"}},\"match\":\"(?<=\\\\s)(b-(?:and|or|xor))(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.comparison.twig\"}},\"match\":\"(?<=\\\\s)([!=]=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.twig\"}},\"match\":\"(?<=\\\\s)([:?]|\\\\?:|\\\\?\\\\?|and|not|or)(?=\\\\s)\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.other.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z\\\\x7F-ÿ])\\\\.\\\\.(?=[\\\"'0-9A-Z_a-z\\\\x7F-ÿ])\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.other.twig\"}},\"match\":\"(?<=[]\\\"')0-9A-Z_a-z}\\\\x7F-ÿ])\\\\|(?=[A-Z_a-z\\\\x7F-ÿ])\"}]},\"twig-print-tag\":{\"begin\":\"\\\\{\\\\{[-~]?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"[-~]?}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.value.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-properties\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"}},\"match\":\"(?<=[0-9A-Z_a-z\\\\x7F-ÿ])(\\\\.)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(?=[]),.:\\\\[|}\\\\s])\"},{\"begin\":\"(?<=[0-9A-Z_a-z\\\\x7F-ÿ])(\\\\.)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.property.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.section.array.begin.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"},\"3\":{\"name\":\"punctuation.section.array.end.twig\"},\"4\":{\"name\":\"punctuation.section.array.begin.twig\"},\"5\":{\"name\":\"variable.other.property.twig\"},\"6\":{\"name\":\"punctuation.section.array.end.twig\"},\"7\":{\"name\":\"punctuation.section.array.begin.twig\"},\"8\":{\"name\":\"variable.other.property.twig\"},\"9\":{\"name\":\"punctuation.section.array.end.twig\"}},\"match\":\"(?<=[]0-9A-Z_a-z\\\\x7F-ÿ])(?:(\\\\[)('[A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*')(])|(\\\\[)(\\\"[A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*\\\")(])|(\\\\[)([A-Z_a-z\\\\x7F-ÿ][0-9A-Z_a-z\\\\x7F-ÿ]*)(]))\"}]},\"twig-statement-tag\":{\"begin\":\"\\\\{%[-~]?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"[-~]?%}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.block.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-keywords\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-strings\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.twig\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.twig\"}},\"name\":\"string.quoted.single.twig\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.twig\"}]},{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.twig\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.twig\"}},\"name\":\"string.quoted.double.twig\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.twig\"}]}]},\"twig-verbatim\":{\"begin\":\"(\\\\{%[-~]?)\\\\s*(verbatim)\\\\s*([-~]?%})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.definition.tag.twig\"}},\"contentName\":\"string.unquoted.verbatim.twig\",\"end\":\"(\\\\{%[-~]?)\\\\s*(endverbatim)\\\\s*([-~]?%})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.twig\"},\"2\":{\"name\":\"keyword.control.twig\"},\"3\":{\"name\":\"punctuation.definition.tag.twig\"}},\"name\":\"meta.tag.template.verbatim.twig\"}},\"scopeName\":\"text.html.twig\",\"embeddedLangs\":[\"javascript\",\"css\",\"scss\",\"php\",\"python\",\"ruby\"]}"))
9
9
 
10
10
  export default [
11
- ...css,
12
11
  ...javascript,
12
+ ...css,
13
13
  ...scss,
14
14
  ...php,
15
15
  ...python,
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"TypeSpec\",\"fileTypes\":[\"tsp\"],\"name\":\"typespec\",\"patterns\":[{\"include\":\"#statement\"}],\"repository\":{\"alias-id\":{\"begin\":\"(=)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.alias-id.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"alias-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(alias)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.alias-statement.typespec\",\"patterns\":[{\"include\":\"#alias-id\"},{\"include\":\"#type-parameters\"}]},\"augment-decorator-statement\":{\"begin\":\"((@@)\\\\b[$_[:alpha:]](?:[$_[:alnum:]]|\\\\.[$_[:alpha:]])*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"end\":\"(?=([$_`[:alpha:]]))|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.augment-decorator-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#parenthesized-expression\"}]},\"block-comment\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.block.tsp\"},\"boolean-literal\":{\"match\":\"\\\\b(true|false)\\\\b\",\"name\":\"constant.language.tsp\"},\"callExpression\":{\"begin\":\"\\\\b([$_[:alpha:]](?:[$_[:alnum:]]|\\\\.[$_[:alpha:]])*)\\\\b\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tsp\"},\"2\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.callExpression.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"const-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(const)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"variable.name.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.const-statement.typespec\",\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"((@)\\\\b[$_[:alpha:]](?:[$_[:alnum:]]|\\\\.[$_[:alpha:]])*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"end\":\"(?=([$_`[:alpha:]]))|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.decorator.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#parenthesized-expression\"}]},\"decorator-declaration-statement\":{\"begin\":\"(?:(internal)\\\\s+)?(?:(extern)\\\\s+)?\\\\b(dec)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"keyword.other.tsp\"},\"4\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.decorator-declaration-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"}]},\"directive\":{\"begin\":\"\\\\s*(#)\\\\b([$_[:alpha:]][$_[:alnum:]]*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.name.tsp\"},\"2\":{\"name\":\"keyword.directive.name.tsp\"}},\"end\":\"$|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.directive.typespec\",\"patterns\":[{\"include\":\"#string-literal\"},{\"include\":\"#identifier-expression\"}]},\"doc-comment\":{\"begin\":\"/\\\\*\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.tsp\"}},\"end\":\"\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"comment.block.tsp\"}},\"name\":\"comment.block.tsp\",\"patterns\":[{\"include\":\"#doc-comment-block\"}]},\"doc-comment-block\":{\"patterns\":[{\"include\":\"#doc-comment-param\"},{\"include\":\"#doc-comment-return-tag\"},{\"include\":\"#doc-comment-unknown-tag\"}]},\"doc-comment-param\":{\"captures\":{\"1\":{\"name\":\"keyword.tag.tspdoc\"},\"2\":{\"name\":\"keyword.tag.tspdoc\"},\"3\":{\"name\":\"variable.name.tsp\"}},\"match\":\"((@)(?:param|template|prop))\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\b\",\"name\":\"comment.block.tsp\"},\"doc-comment-return-tag\":{\"captures\":{\"1\":{\"name\":\"keyword.tag.tspdoc\"},\"2\":{\"name\":\"keyword.tag.tspdoc\"}},\"match\":\"((@)returns)\\\\b\",\"name\":\"comment.block.tsp\"},\"doc-comment-unknown-tag\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"match\":\"((@)(?:\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`))\\\\b\",\"name\":\"comment.block.tsp\"},\"enum-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.enum-body.typespec\",\"patterns\":[{\"include\":\"#enum-member\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#punctuation-comma\"}]},\"enum-member\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(:?)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.enum-member.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-annotation\"}]},\"enum-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(enum)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.enum-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#enum-body\"}]},\"escape-character\":{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.tsp\"},\"expression\":{\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#valueof\"},{\"include\":\"#typeof\"},{\"include\":\"#type-arguments\"},{\"include\":\"#object-literal\"},{\"include\":\"#tuple-literal\"},{\"include\":\"#tuple-expression\"},{\"include\":\"#model-expression\"},{\"include\":\"#callExpression\"},{\"include\":\"#identifier-expression\"}]},\"function-declaration-statement\":{\"begin\":\"(?:(internal)\\\\s+)?(?:(extern)\\\\s+)?\\\\b(fn)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"keyword.other.tsp\"},\"4\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.function-declaration-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"},{\"include\":\"#type-annotation\"}]},\"identifier-expression\":{\"match\":\"\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`\",\"name\":\"entity.name.type.tsp\"},\"import-statement\":{\"begin\":\"\\\\b(import)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.import-statement.typespec\",\"patterns\":[{\"include\":\"#token\"}]},\"interface-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.interface-body.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#interface-member\"},{\"include\":\"#punctuation-semicolon\"}]},\"interface-heritage\":{\"begin\":\"\\\\b(extends)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\{)|(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))\",\"name\":\"meta.interface-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"interface-member\":{\"begin\":\"(?:\\\\b(op)\\\\b\\\\s+)?(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.interface-member.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-signature\"}]},\"interface-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(interface)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.interface-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#interface-heritage\"},{\"include\":\"#interface-body\"},{\"include\":\"#expression\"}]},\"line-comment\":{\"match\":\"//.*$\",\"name\":\"comment.line.double-slash.tsp\"},\"model-expression\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.model-expression.typespec\",\"patterns\":[{\"include\":\"#model-property\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-semicolon\"}]},\"model-heritage\":{\"begin\":\"\\\\b(extends|is)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\{)|(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))\",\"name\":\"meta.model-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"model-property\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)|(\\\"(?:[^\\\"\\\\\\\\]|\\\\\\\\.)*\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"string.quoted.double.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.model-property.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-annotation\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"model-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(model)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.model-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#model-heritage\"},{\"include\":\"#expression\"}]},\"namespace-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.namespace-body.typespec\",\"patterns\":[{\"include\":\"#statement\"}]},\"namespace-name\":{\"begin\":\"(?=([$_`[:alpha:]]))\",\"end\":\"((?=\\\\{)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))\",\"name\":\"meta.namespace-name.typespec\",\"patterns\":[{\"include\":\"#identifier-expression\"},{\"include\":\"#punctuation-accessor\"}]},\"namespace-statement\":{\"begin\":\"\\\\b(namespace)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))\",\"name\":\"meta.namespace-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#namespace-name\"},{\"include\":\"#namespace-body\"}]},\"numeric-literal\":{\"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(?!\\\\.))(?!\\\\$)\",\"name\":\"constant.numeric.tsp\"},\"object-literal\":{\"begin\":\"#\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.hashcurlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.object-literal.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#object-literal-property\"},{\"include\":\"#directive\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-comma\"}]},\"object-literal-property\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.object-literal-property.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"}]},\"operation-heritage\":{\"begin\":\"\\\\b(is)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.operation-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"operation-parameters\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.operation-parameters.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#decorator\"},{\"include\":\"#model-property\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-comma\"}]},\"operation-signature\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"include\":\"#operation-heritage\"},{\"include\":\"#operation-parameters\"},{\"include\":\"#type-annotation\"}]},\"operation-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(op)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.operation-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-signature\"}]},\"operator-assignment\":{\"match\":\"=\",\"name\":\"keyword.operator.assignment.tsp\"},\"parenthesized-expression\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.parenthesized-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"punctuation-accessor\":{\"match\":\"\\\\.\",\"name\":\"punctuation.accessor.tsp\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.comma.tsp\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.tsp\"},\"scalar-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.scalar-body.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#scalar-constructor\"},{\"include\":\"#punctuation-semicolon\"}]},\"scalar-constructor\":{\"begin\":\"\\\\b(init)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-constructor.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"}]},\"scalar-extends\":{\"begin\":\"\\\\b(extends)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-extends.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"scalar-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(scalar)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#scalar-extends\"},{\"include\":\"#scalar-body\"}]},\"spread-operator\":{\"begin\":\"\\\\.\\\\.\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.spread-operator.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"statement\":{\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#augment-decorator-statement\"},{\"include\":\"#decorator\"},{\"include\":\"#model-statement\"},{\"include\":\"#scalar-statement\"},{\"include\":\"#union-statement\"},{\"include\":\"#interface-statement\"},{\"include\":\"#enum-statement\"},{\"include\":\"#alias-statement\"},{\"include\":\"#const-statement\"},{\"include\":\"#namespace-statement\"},{\"include\":\"#operation-statement\"},{\"include\":\"#import-statement\"},{\"include\":\"#using-statement\"},{\"include\":\"#decorator-declaration-statement\"},{\"include\":\"#function-declaration-statement\"},{\"include\":\"#punctuation-semicolon\"}]},\"string-literal\":{\"begin\":\"\\\"\",\"end\":\"\\\"|$\",\"name\":\"string.quoted.double.tsp\",\"patterns\":[{\"include\":\"#template-expression\"},{\"include\":\"#escape-character\"}]},\"template-expression\":{\"begin\":\"\\\\$\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.tsp\"}},\"name\":\"meta.template-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"token\":{\"patterns\":[{\"include\":\"#doc-comment\"},{\"include\":\"#line-comment\"},{\"include\":\"#block-comment\"},{\"include\":\"#triple-quoted-string-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#numeric-literal\"}]},\"triple-quoted-string-literal\":{\"begin\":\"\\\"\\\"\\\"\",\"end\":\"\\\"\\\"\\\"\",\"name\":\"string.quoted.triple.tsp\",\"patterns\":[{\"include\":\"#template-expression\"},{\"include\":\"#escape-character\"}]},\"tuple-expression\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.tsp\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.tsp\"}},\"name\":\"meta.tuple-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"tuple-literal\":{\"begin\":\"#\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.hashsquarebracket.open.tsp\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.tsp\"}},\"name\":\"meta.tuple-literal.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-annotation\":{\"begin\":\"\\\\s*(\\\\??)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.optional.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[),;=@}]|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-annotation.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-argument\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsp\"},\"2\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"name\":\"meta.type-argument.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-arguments\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsp\"}},\"name\":\"meta.type-arguments.typespec\",\"patterns\":[{\"include\":\"#type-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-parameter\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-parameter.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameter-constraint\"},{\"include\":\"#type-parameter-default\"}]},\"type-parameter-constraint\":{\"begin\":\"extends\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-parameter-constraint.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-parameter-default\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-parameter-default.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-parameters\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsp\"}},\"name\":\"meta.type-parameters.typespec\",\"patterns\":[{\"include\":\"#type-parameter\"},{\"include\":\"#punctuation-comma\"}]},\"typeof\":{\"begin\":\"\\\\b(typeof)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.typeof.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"union-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.union-body.typespec\",\"patterns\":[{\"include\":\"#union-variant\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"union-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(union)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.union-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#union-body\"}]},\"union-variant\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.union-variant.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"}]},\"using-statement\":{\"begin\":\"\\\\b(using)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.using-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#identifier-expression\"},{\"include\":\"#punctuation-accessor\"}]},\"valueof\":{\"begin\":\"\\\\b(valueof)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)\",\"name\":\"meta.valueof.typespec\",\"patterns\":[{\"include\":\"#expression\"}]}},\"scopeName\":\"source.tsp\",\"aliases\":[\"tsp\"]}"))
1
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"TypeSpec\",\"fileTypes\":[\"tsp\"],\"name\":\"typespec\",\"patterns\":[{\"include\":\"#statement\"}],\"repository\":{\"alias-id\":{\"begin\":\"(=)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.alias-id.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"alias-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(alias)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.alias-statement.typespec\",\"patterns\":[{\"include\":\"#alias-id\"},{\"include\":\"#type-parameters\"}]},\"augment-decorator-statement\":{\"begin\":\"((@@)\\\\b[$_[:alpha:]](?:[$_[:alnum:]]|\\\\.[$_[:alpha:]])*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"end\":\"(?=([$_`[:alpha:]]))|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.augment-decorator-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#parenthesized-expression\"}]},\"block-comment\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.block.tsp\"},\"boolean-literal\":{\"match\":\"\\\\b(true|false)\\\\b\",\"name\":\"constant.language.tsp\"},\"callExpression\":{\"begin\":\"\\\\b([$_[:alpha:]](?:[$_[:alnum:]]|\\\\.[$_[:alpha:]])*)\\\\b\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tsp\"},\"2\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.callExpression.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"const-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(const)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"variable.name.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.const-statement.typespec\",\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"((@)\\\\b[$_[:alpha:]](?:[$_[:alnum:]]|\\\\.[$_[:alpha:]])*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"end\":\"(?=([$_`[:alpha:]]))|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.decorator.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#parenthesized-expression\"}]},\"decorator-declaration-statement\":{\"begin\":\"(?:(internal)\\\\s+)?(?:(extern)\\\\s+)?\\\\b(dec)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"keyword.other.tsp\"},\"4\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.decorator-declaration-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"}]},\"directive\":{\"begin\":\"\\\\s*(#)\\\\b([$_[:alpha:]][$_[:alnum:]]*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.name.tsp\"},\"2\":{\"name\":\"keyword.directive.name.tsp\"}},\"end\":\"$|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.directive.typespec\",\"patterns\":[{\"include\":\"#string-literal\"},{\"include\":\"#identifier-expression\"}]},\"doc-comment\":{\"begin\":\"/\\\\*\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.tsp\"}},\"end\":\"\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"comment.block.tsp\"}},\"name\":\"comment.block.tsp\",\"patterns\":[{\"include\":\"#doc-comment-block\"}]},\"doc-comment-block\":{\"patterns\":[{\"include\":\"#doc-comment-param\"},{\"include\":\"#doc-comment-return-tag\"},{\"include\":\"#doc-comment-unknown-tag\"}]},\"doc-comment-param\":{\"captures\":{\"1\":{\"name\":\"keyword.tag.tspdoc\"},\"2\":{\"name\":\"keyword.tag.tspdoc\"},\"3\":{\"name\":\"variable.name.tsp\"}},\"match\":\"((@)(?:param|template|prop))\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\b\",\"name\":\"comment.block.tsp\"},\"doc-comment-return-tag\":{\"captures\":{\"1\":{\"name\":\"keyword.tag.tspdoc\"},\"2\":{\"name\":\"keyword.tag.tspdoc\"}},\"match\":\"((@)returns)\\\\b\",\"name\":\"comment.block.tsp\"},\"doc-comment-unknown-tag\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"match\":\"((@)(?:\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`))\\\\b\",\"name\":\"comment.block.tsp\"},\"enum-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.enum-body.typespec\",\"patterns\":[{\"include\":\"#enum-member\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#punctuation-comma\"}]},\"enum-expression\":{\"begin\":\"\\\\b(enum)\\\\b(?:\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.enum-expression.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#enum-body\"}]},\"enum-member\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(:?)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.enum-member.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-annotation\"}]},\"enum-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(enum)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.enum-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#enum-body\"}]},\"escape-character\":{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.tsp\"},\"expression\":{\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#valueof\"},{\"include\":\"#typeof\"},{\"include\":\"#type-arguments\"},{\"include\":\"#object-literal\"},{\"include\":\"#tuple-literal\"},{\"include\":\"#tuple-expression\"},{\"include\":\"#model-expression-keyword\"},{\"include\":\"#scalar-expression\"},{\"include\":\"#enum-expression\"},{\"include\":\"#union-expression\"},{\"include\":\"#model-expression\"},{\"include\":\"#callExpression\"},{\"include\":\"#identifier-expression\"}]},\"function-declaration-statement\":{\"begin\":\"(?:(internal)\\\\s+)?(?:(extern)\\\\s+)?\\\\b(fn)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"keyword.other.tsp\"},\"4\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.function-declaration-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"},{\"include\":\"#type-annotation\"}]},\"identifier-expression\":{\"match\":\"\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`\",\"name\":\"entity.name.type.tsp\"},\"import-statement\":{\"begin\":\"\\\\b(import)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.import-statement.typespec\",\"patterns\":[{\"include\":\"#token\"}]},\"interface-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.interface-body.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#interface-member\"},{\"include\":\"#punctuation-semicolon\"}]},\"interface-heritage\":{\"begin\":\"\\\\b(extends)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\{)|(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b))\",\"name\":\"meta.interface-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"interface-member\":{\"begin\":\"(?:\\\\b(op)\\\\b\\\\s+)?(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.interface-member.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-signature\"}]},\"interface-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(interface)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.interface-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#interface-heritage\"},{\"include\":\"#interface-body\"},{\"include\":\"#expression\"}]},\"line-comment\":{\"match\":\"//.*$\",\"name\":\"comment.line.double-slash.tsp\"},\"model-expression\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.model-expression.typespec\",\"patterns\":[{\"include\":\"#model-property\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-semicolon\"}]},\"model-expression-keyword\":{\"begin\":\"\\\\b(model)\\\\b(?:\\\\s+(?!(?:extend|i)s\\\\b)(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.model-expression-keyword.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#model-heritage\"},{\"include\":\"#expression\"}]},\"model-heritage\":{\"begin\":\"\\\\b(extends|is)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\{)|(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b))\",\"name\":\"meta.model-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"model-property\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)|(\\\"(?:[^\\\"\\\\\\\\]|\\\\\\\\.)*\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"string.quoted.double.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.model-property.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-annotation\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"model-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(model)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.model-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#model-heritage\"},{\"include\":\"#expression\"}]},\"namespace-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.namespace-body.typespec\",\"patterns\":[{\"include\":\"#statement\"}]},\"namespace-name\":{\"begin\":\"(?=([$_`[:alpha:]]))\",\"end\":\"((?=\\\\{)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b))\",\"name\":\"meta.namespace-name.typespec\",\"patterns\":[{\"include\":\"#identifier-expression\"},{\"include\":\"#punctuation-accessor\"}]},\"namespace-statement\":{\"begin\":\"\\\\b(namespace)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b))\",\"name\":\"meta.namespace-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#namespace-name\"},{\"include\":\"#namespace-body\"}]},\"numeric-literal\":{\"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(?!\\\\.))(?!\\\\$)\",\"name\":\"constant.numeric.tsp\"},\"object-literal\":{\"begin\":\"#\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.hashcurlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.object-literal.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#object-literal-property\"},{\"include\":\"#directive\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-comma\"}]},\"object-literal-property\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.object-literal-property.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"}]},\"operation-heritage\":{\"begin\":\"\\\\b(is)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.operation-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"operation-parameters\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.operation-parameters.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#decorator\"},{\"include\":\"#model-property\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-comma\"}]},\"operation-signature\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"include\":\"#operation-heritage\"},{\"include\":\"#operation-parameters\"},{\"include\":\"#type-annotation\"}]},\"operation-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(op)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.operation-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-signature\"}]},\"operator-assignment\":{\"match\":\"=\",\"name\":\"keyword.operator.assignment.tsp\"},\"parenthesized-expression\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.parenthesized-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"punctuation-accessor\":{\"match\":\"\\\\.\",\"name\":\"punctuation.accessor.tsp\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.comma.tsp\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.tsp\"},\"scalar-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.scalar-body.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#scalar-constructor\"},{\"include\":\"#punctuation-semicolon\"}]},\"scalar-constructor\":{\"begin\":\"\\\\b(init)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-constructor.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"}]},\"scalar-expression\":{\"begin\":\"\\\\b(scalar)\\\\b(?:\\\\s+(?!extends\\\\b)(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-expression.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#scalar-extends\"},{\"include\":\"#scalar-body\"}]},\"scalar-extends\":{\"begin\":\"\\\\b(extends)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-extends.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"scalar-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(scalar)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.scalar-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#scalar-extends\"},{\"include\":\"#scalar-body\"}]},\"spread-operator\":{\"begin\":\"\\\\.\\\\.\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.spread-operator.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"statement\":{\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#augment-decorator-statement\"},{\"include\":\"#decorator\"},{\"include\":\"#model-statement\"},{\"include\":\"#scalar-statement\"},{\"include\":\"#union-statement\"},{\"include\":\"#interface-statement\"},{\"include\":\"#enum-statement\"},{\"include\":\"#alias-statement\"},{\"include\":\"#const-statement\"},{\"include\":\"#namespace-statement\"},{\"include\":\"#operation-statement\"},{\"include\":\"#import-statement\"},{\"include\":\"#using-statement\"},{\"include\":\"#decorator-declaration-statement\"},{\"include\":\"#function-declaration-statement\"},{\"include\":\"#punctuation-semicolon\"}]},\"string-literal\":{\"begin\":\"\\\"\",\"end\":\"\\\"|$\",\"name\":\"string.quoted.double.tsp\",\"patterns\":[{\"include\":\"#template-expression\"},{\"include\":\"#escape-character\"}]},\"template-expression\":{\"begin\":\"\\\\$\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.tsp\"}},\"name\":\"meta.template-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"token\":{\"patterns\":[{\"include\":\"#doc-comment\"},{\"include\":\"#line-comment\"},{\"include\":\"#block-comment\"},{\"include\":\"#triple-quoted-string-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#numeric-literal\"}]},\"triple-quoted-string-literal\":{\"begin\":\"\\\"\\\"\\\"\",\"end\":\"\\\"\\\"\\\"\",\"name\":\"string.quoted.triple.tsp\",\"patterns\":[{\"include\":\"#template-expression\"},{\"include\":\"#escape-character\"}]},\"tuple-expression\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.tsp\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.tsp\"}},\"name\":\"meta.tuple-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"tuple-literal\":{\"begin\":\"#\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.hashsquarebracket.open.tsp\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.tsp\"}},\"name\":\"meta.tuple-literal.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-annotation\":{\"begin\":\"\\\\s*(\\\\??)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.optional.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[),;=@}]|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-annotation.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-argument\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsp\"},\"2\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"name\":\"meta.type-argument.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-arguments\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsp\"}},\"name\":\"meta.type-arguments.typespec\",\"patterns\":[{\"include\":\"#type-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-parameter\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-parameter.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameter-constraint\"},{\"include\":\"#type-parameter-default\"}]},\"type-parameter-constraint\":{\"begin\":\"extends\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-parameter-constraint.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-parameter-default\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.type-parameter-default.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-parameters\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsp\"}},\"name\":\"meta.type-parameters.typespec\",\"patterns\":[{\"include\":\"#type-parameter\"},{\"include\":\"#punctuation-comma\"}]},\"typeof\":{\"begin\":\"\\\\b(typeof)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.typeof.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"union-body\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.union-body.typespec\",\"patterns\":[{\"include\":\"#union-variant\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"union-expression\":{\"begin\":\"\\\\b(union)\\\\b(?:\\\\s+(?!extends\\\\b)(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.union-expression.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#union-extends\"},{\"include\":\"#union-body\"}]},\"union-extends\":{\"begin\":\"\\\\b(extends)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\{)|(?=[);@}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b))\",\"name\":\"meta.union-extends.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"union-statement\":{\"begin\":\"(?:(internal)\\\\s+)?\\\\b(union)\\\\b\\\\s+(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=})|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.union-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#union-extends\"},{\"include\":\"#union-body\"}]},\"union-variant\":{\"begin\":\"(\\\\b[$_[:alpha:]][$_[:alnum:]]*\\\\b|`(?:[^\\\\\\\\`]|\\\\\\\\.)*`)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.union-variant.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"}]},\"using-statement\":{\"begin\":\"\\\\b(using)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.using-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#identifier-expression\"},{\"include\":\"#punctuation-accessor\"}]},\"valueof\":{\"begin\":\"\\\\b(valueof)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=[,;@]|#[a-z]|[)}]|\\\\b(?:extern|internal)\\\\b|\\\\b(?:namespace|op|using|import|alias|interface|dec|fn)\\\\b)\",\"name\":\"meta.valueof.typespec\",\"patterns\":[{\"include\":\"#expression\"}]}},\"scopeName\":\"source.tsp\",\"aliases\":[\"tsp\"]}"))
2
2
 
3
3
  export default [
4
4
  lang