@kong-ui-public/documentation 0.3.42 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/Tableau10-GLA_9iAD-BMurskAd.js +9 -0
  2. package/dist/arc-BSRpyMf3-C5dasNo_.js +86 -0
  3. package/dist/array-CqVTtuYm-fKLgkG2b.js +6 -0
  4. package/dist/astro-mwoSwJnq-CNh-xuM0.js +27 -0
  5. package/dist/blockDiagram-6b2b5046-D02VCbQO-CPmGy0xX.js +1224 -0
  6. package/dist/c-eDnjw9rh-eDnjw9rh.js +87 -0
  7. package/dist/c4Diagram-b947cdbb-gYcL5VzP-DIDY83e1.js +1578 -0
  8. package/dist/channel-DHTQ8Ynn-7OPGex2S.js +5 -0
  9. package/dist/classDiagram-35230388-JdSKLSZv-D2crBRy-.js +217 -0
  10. package/dist/classDiagram-v2-412acd34-DFFRHXE_-B6aCxlD1.js +200 -0
  11. package/dist/clone-p6h9XXNm-3JQ-HRC6.js +8 -0
  12. package/dist/coffee-CRlSxcc3-CY091_1T.js +108 -0
  13. package/dist/cpp-DizfY48B-CA38N4Mn.js +208 -0
  14. package/dist/createText-423428c9-LivTKT7b-BXNfjcdp.js +2964 -0
  15. package/dist/csharp-uGDiXTZn-uGDiXTZn.js +762 -0
  16. package/dist/css-CAzixsid-CEpuX1HY.js +511 -0
  17. package/dist/csv-D4BoHddH-D4BoHddH.js +7 -0
  18. package/dist/diff-Bo5iyMQ2-Bo5iyMQ2.js +7 -0
  19. package/dist/docker-B10O2enb-B10O2enb.js +7 -0
  20. package/dist/documentation.es.js +5 -3130
  21. package/dist/documentation.umd.js +10152 -50
  22. package/dist/edges-d417c7a0-C1ggiwWz-Aj0OUf7e.js +1082 -0
  23. package/dist/erDiagram-0ea73325-mz0Z_-DA-Dr01LsTB.js +924 -0
  24. package/dist/flowDb-d35e309a-CPyxEMIt-lofeyUuw.js +1126 -0
  25. package/dist/flowDiagram-d949d7c1-DqCa0HNN-BK5wNO9Z.js +782 -0
  26. package/dist/flowDiagram-v2-49332944-UMosz1sZ-BG39AuNP.js +17 -0
  27. package/dist/flowchart-elk-definition-27cc417a-D2UKpS6N-r2p34307.js +48387 -0
  28. package/dist/ganttDiagram-5c869e3b-CVBHw4pG-CaG9QXQM.js +2490 -0
  29. package/dist/git-commit-CWf81VOF-DtOZSoIU.js +9 -0
  30. package/dist/git-rebase-sR-yVH_J-D5M2oE9O.js +9 -0
  31. package/dist/gitGraphDiagram-b9d81de9-BGm3fU0n-CbCpf-4j.js +1262 -0
  32. package/dist/go-BCCWZWY1-BCCWZWY1.js +7 -0
  33. package/dist/graph-4FyIWFHN-774TpNLL.js +870 -0
  34. package/dist/graphql-CT32SSoq-1pBWfpcR.js +18 -0
  35. package/dist/haml-8RvrfhLO-Bbc4xoLP.js +19 -0
  36. package/dist/handlebars-Cr5ro0bH-CLcCNLtV.js +15 -0
  37. package/dist/haskell-BfFu8DD8-BmkPJdLL.js +565 -0
  38. package/dist/html-BZB5lEhh-B74zAnWx.js +84 -0
  39. package/dist/html-derivative-0y7sV5Qc-D8-muTWn.js +9 -0
  40. package/dist/index-8fae9850-_CN7MNjP-Cq-s0PmS.js +373 -0
  41. package/dist/index-B-5DuDrq.js +29996 -0
  42. package/dist/infoDiagram-db7b18fc-V446j9uR-GSa8bniv.js +319 -0
  43. package/dist/ini-BsUFIxsI-BsUFIxsI.js +7 -0
  44. package/dist/init-DjUOC4st-C8Nwz6AJ.js +16 -0
  45. package/dist/java-Bk2JzfKB-Bk2JzfKB.js +74 -0
  46. package/dist/javascript-DqVBMyXe-DqVBMyXe.js +705 -0
  47. package/dist/journeyDiagram-d5636530-CFiu7dnV-DJMu6A22.js +803 -0
  48. package/dist/json-B12k4-6m-B12k4-6m.js +31 -0
  49. package/dist/json5-CvqQZK9I-CvqQZK9I.js +23 -0
  50. package/dist/jsonc-v2qGKRJY-v2qGKRJY.js +31 -0
  51. package/dist/jsonl-izxnMeZX-izxnMeZX.js +31 -0
  52. package/dist/jsx-aDp7j9_Z-aDp7j9_Z.js +705 -0
  53. package/dist/kotlin-NOMOielb-NOMOielb.js +7 -0
  54. package/dist/latex-Bw_ghldO-BlUAi6pB.js +339 -0
  55. package/dist/layout-2-aEcfuw-BqqWy5wB.js +1524 -0
  56. package/dist/less-CW2GmQHL-CW2GmQHL.js +165 -0
  57. package/dist/line-nVq5kEiy-DtZd3PHZ.js +34 -0
  58. package/dist/linear-Bz4oRFvQ-C869GXbm.js +447 -0
  59. package/dist/liquid-DJ2rh7oT-FwZwa67Y.js +28 -0
  60. package/dist/lua-5TZ-G8Be-CogscVHC.js +9 -0
  61. package/dist/make-whncTQWE-whncTQWE.js +7 -0
  62. package/dist/markdown-DYKdIx5--DYKdIx5-.js +135 -0
  63. package/dist/material-theme-lighter-BRE1Bis3-BRE1Bis3.js +769 -0
  64. package/dist/material-theme-palenight-Dhz61Tee-Dhz61Tee.js +769 -0
  65. package/dist/mdc-D0DPLwil-BfE3hy8_.js +88 -0
  66. package/dist/mdx-CKDMxEaL-CKDMxEaL.js +7 -0
  67. package/dist/mermaid-BxNM-z-u-BxNM-z-u.js +7 -0
  68. package/dist/mindmap-definition-377f8f1f-C2vFYDMs-B71SGbvx.js +19078 -0
  69. package/dist/nginx-C082G13W-vryM9k1W.js +9 -0
  70. package/dist/objective-c-BVtzkNiv-BVtzkNiv.js +115 -0
  71. package/dist/onig-BonMD2gC-BonMD2gC.js +4 -0
  72. package/dist/ordinal-MUacOSdK-B1MUT0BL.js +65 -0
  73. package/dist/pascal-CrvtytWS-CrvtytWS.js +7 -0
  74. package/dist/path-Crsf9Nsj-SiSjwXsf.js +91 -0
  75. package/dist/perl-D29UPKP6-Dez6-HRy.js +17 -0
  76. package/dist/php-D7Tl-iS7-BtPFrDEt.js +789 -0
  77. package/dist/pieDiagram-b0208e96-DhA_SoTh-CfDd9YdA.js +501 -0
  78. package/dist/plsql-8SPzZKaa-8SPzZKaa.js +7 -0
  79. package/dist/postcss-Cz2vjx_4-Cz2vjx_4.js +7 -0
  80. package/dist/powershell-B0buHCuS-B0buHCuS.js +7 -0
  81. package/dist/proto-6YaU_lta-6YaU_lta.js +7 -0
  82. package/dist/pug-DbFO7359-duYD8LVa.js +21 -0
  83. package/dist/python-BQXev0_W-BQXev0_W.js +524 -0
  84. package/dist/quadrantDiagram-0332be45-C8q96Ohm-DMblaqnx.js +903 -0
  85. package/dist/r-DU7Q70f1-DU7Q70f1.js +7 -0
  86. package/dist/reg-DoGLEyFr-DoGLEyFr.js +7 -0
  87. package/dist/requirementDiagram-bf7890df-D30zCZjB-B_JBC9RM.js +767 -0
  88. package/dist/rst-Bm1i8IkK-C9EaDq6g.js +26 -0
  89. package/dist/ruby-CZZKXaz8-BxaDEkRP.js +102 -0
  90. package/dist/rust-CIl6NRUt-CIl6NRUt.js +7 -0
  91. package/dist/sankeyDiagram-0acdec17-B4vNjMaS-Bauvtonp.js +816 -0
  92. package/dist/sass-LqXmC1Fh-LqXmC1Fh.js +8 -0
  93. package/dist/scss-DjxgF7f7-DGTzny6p.js +98 -0
  94. package/dist/sequenceDiagram-c18d009d-BniqGSPK-DuYYUmiZ.js +2201 -0
  95. package/dist/shellscript-CUUTQKn5-CUUTQKn5.js +7 -0
  96. package/dist/shellsession-BIPXtZci-D6avbCwN.js +9 -0
  97. package/dist/splunk-C0K00wNV-C0K00wNV.js +7 -0
  98. package/dist/sql-DkzN59UV-DkzN59UV.js +27 -0
  99. package/dist/ssh-config-BbWAW6SY-BbWAW6SY.js +7 -0
  100. package/dist/stateDiagram-43596fc0-F0V9suMd-L2Ywe-J_.js +266 -0
  101. package/dist/stateDiagram-v2-2ead4f9c-DUgJH8tF-BVo1q2i1.js +184 -0
  102. package/dist/style.css +1 -1
  103. package/dist/styles-6860f46c-Dflmq0ac-BRNSwis6.js +1089 -0
  104. package/dist/styles-7383a064-Dg7mXkpq-C4bItohl.js +430 -0
  105. package/dist/styles-b2c874b6-HpcOhE4Y-Bj0upXzO.js +960 -0
  106. package/dist/stylus-CAHdVuhm-CAHdVuhm.js +21 -0
  107. package/dist/svelte-DAxjO8Sh-D0e501jC.js +29 -0
  108. package/dist/svgDrawCommon-0ee1b4e9-CNkCfzsJ-Bz_doYLk.js +64 -0
  109. package/dist/swift-x2DVyVjN-Bz5PC9YM.js +550 -0
  110. package/dist/timeline-definition-d977decf-Cl38e_0g-D_Dlqa-R.js +794 -0
  111. package/dist/toml-Dbtbfmwk-Dbtbfmwk.js +75 -0
  112. package/dist/tsx-BmwsDeeh-BmwsDeeh.js +705 -0
  113. package/dist/twig-B_Gr-ODl-Cl9Q0GWo.js +58 -0
  114. package/dist/types/components/DocumentationContent.vue.d.ts +8 -1
  115. package/dist/types/components/DocumentationContent.vue.d.ts.map +1 -1
  116. package/dist/types/components/DocumentationDisplay.vue.d.ts +5 -1
  117. package/dist/types/components/DocumentationDisplay.vue.d.ts.map +1 -1
  118. package/dist/types/components/ProductDocumentModal.vue.d.ts +1 -1
  119. package/dist/types/components/ProductDocumentModal.vue.d.ts.map +1 -1
  120. package/dist/types/composables/useI18n.d.ts +4 -0
  121. package/dist/types/composables/useI18n.d.ts.map +1 -1
  122. package/dist/typescript-AEg-ehu7-AEg-ehu7.js +672 -0
  123. package/dist/v-BuvBsUKm-BuvBsUKm.js +7 -0
  124. package/dist/vb-cqjo5dul-cqjo5dul.js +7 -0
  125. package/dist/viml-h3ATW6He-h3ATW6He.js +7 -0
  126. package/dist/vue-Dz-azHaT-B9qBHMZi.js +71 -0
  127. package/dist/vue-html-DIGKAAs4-BeHSIJcx.js +11 -0
  128. package/dist/wasm-xOGcJ9Ts-xOGcJ9Ts.js +7 -0
  129. package/dist/wgsl-hGLOfCya-hGLOfCya.js +7 -0
  130. package/dist/xml-CfRpfi_B-BH3JRQfc.js +9 -0
  131. package/dist/xsl-BAqhSCYL-BTKPZRNQ.js +9 -0
  132. package/dist/xychartDiagram-e50adddc-JdLmRUgg-HmDalTeo.js +1282 -0
  133. package/dist/yaml-PGla5xPP-HJurM_FJ.js +206 -0
  134. package/package.json +13 -13
  135. package/dist/prism-bash.min-DDo5CyRs-DihCfXgx.js +0 -7
  136. package/dist/prism-css.min-BrrzZC7b-BrrzZC7b.js +0 -7
  137. package/dist/prism-docker.min-DnIEokC3-D0v8IWN_.js +0 -22
  138. package/dist/prism-go.min-C7UmK6TW-C7UmK6TW.js +0 -1
  139. package/dist/prism-http.min-CsU3-jB8-CQ8PCDXl.js +0 -23
  140. package/dist/prism-javascript.min-CEqHqgbm-CEqHqgbm.js +0 -8
  141. package/dist/prism-jq.min-Q555vXZm-Q555vXZm.js +0 -8
  142. package/dist/prism-json.min-B1GJqK1k-B1GJqK1k.js +0 -1
  143. package/dist/prism-log.min-SDopTpKN-SDopTpKN.js +0 -1
  144. package/dist/prism-lua.min-DwRnUVfS-DwRnUVfS.js +0 -1
  145. package/dist/prism-makefile.min-DyutknhE-DyutknhE.js +0 -1
  146. package/dist/prism-markdown.min-B7US-xc7-DB9aF_ZA.js +0 -63
  147. package/dist/prism-python.min-BIfpAh5K-BIfpAh5K.js +0 -1
  148. package/dist/prism-regex.min-f8DNqi8X-f8DNqi8X.js +0 -4
  149. package/dist/prism-rest.min-B6veHRJF-B6veHRJF.js +0 -1
  150. package/dist/prism-rust.min-Cb-Mi-h0-Cb-Mi-h0.js +0 -9
  151. package/dist/prism-scss.min-B0csyGJo-B0csyGJo.js +0 -1
  152. package/dist/prism-sql.min-BHXzX-c_-BHXzX-c_.js +0 -1
  153. package/dist/prism-typescript.min-oSVeWCAd-oSVeWCAd.js +0 -5
  154. package/dist/prism-xml-doc.min-yj0YzRGe-KgTQx-dc.js +0 -7
  155. package/dist/prism-yaml.min-CTetcdKA-C1YzP_OY.js +0 -28
@@ -0,0 +1,705 @@
1
+ const e = Object.freeze({ displayName: "TSX", name: "tsx", patterns: [{ include: "#directives" }, { include: "#statements" }, { include: "#shebang" }], repository: { "access-modifier": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }, "after-operator-block-as-object-literal": { begin: "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", beginCaptures: { 1: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.objectliteral.tsx", patterns: [{ include: "#object-member" }] }, "array-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, patterns: [{ include: "#binding-element" }, { include: "#punctuation-comma" }] }, "array-binding-pattern-const": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, patterns: [{ include: "#binding-element-const" }, { include: "#punctuation-comma" }] }, "array-literal": { begin: "\\s*(\\[)", beginCaptures: { 1: { name: "meta.brace.square.tsx" } }, end: "\\]", endCaptures: { 0: { name: "meta.brace.square.tsx" } }, name: "meta.array.literal.tsx", patterns: [{ include: "#expression" }, { include: "#punctuation-comma" }] }, "arrow-function": { patterns: [{ captures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "variable.parameter.tsx" } }, match: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", name: "meta.arrow.tsx" }, { begin: `(?x) (?:
2
+ (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)
3
+ )? ((?<![})!\\]])\\s*
4
+ (?=
5
+
6
+ (
7
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
8
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
9
+ (
10
+ ([)]\\s*:) |
11
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
12
+ )
13
+ ) |
14
+ (
15
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
16
+ ) |
17
+ # arrow function possible to detect only with => on same line
18
+ (
19
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
20
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
21
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
22
+ \\s*=>
23
+ )
24
+ )
25
+ )`, beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", name: "meta.arrow.tsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { include: "#function-parameters" }, { include: "#arrow-return-type" }, { include: "#possibly-arrow-return-type" }] }, { begin: "=>", beginCaptures: { 0: { name: "storage.type.function.arrow.tsx" } }, end: "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", name: "meta.arrow.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#decl-block" }, { include: "#expression" }] }] }, "arrow-return-type": { begin: "(?<=\\))\\s*(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", name: "meta.return.type.arrow.tsx", patterns: [{ include: "#arrow-return-type-body" }] }, "arrow-return-type-body": { patterns: [{ begin: "(?<=[:])(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, "async-modifier": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.async.tsx" }, "binding-element": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#object-binding-pattern" }, { include: "#array-binding-pattern" }, { include: "#destructuring-variable-rest" }, { include: "#variable-initializer" }] }, "binding-element-const": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#object-binding-pattern-const" }, { include: "#array-binding-pattern-const" }, { include: "#destructuring-variable-rest-const" }, { include: "#variable-initializer" }] }, "boolean-literal": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.true.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.boolean.false.tsx" }] }, brackets: { patterns: [{ begin: "{", end: "}|(?=\\*/)", patterns: [{ include: "#brackets" }] }, { begin: "\\[", end: "\\]|(?=\\*/)", patterns: [{ include: "#brackets" }] }] }, cast: { patterns: [{ include: "#jsx" }] }, "class-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.type.class.tsx" } }, end: "(?<=\\})", name: "meta.class.tsx", patterns: [{ include: "#class-declaration-or-expression-patterns" }] }, "class-declaration-or-expression-patterns": { patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { captures: { 0: { name: "entity.name.type.class.tsx" } }, match: "[_$[:alpha:]][_$[:alnum:]]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, "class-expression": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.type.class.tsx" } }, end: "(?<=\\})", name: "meta.class.tsx", patterns: [{ include: "#class-declaration-or-expression-patterns" }] }, "class-or-interface-body": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, patterns: [{ include: "#comment" }, { include: "#decorator" }, { begin: "(?<=:)\\s*", end: "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { include: "#method-declaration" }, { include: "#indexer-declaration" }, { include: "#field-declaration" }, { include: "#string" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { include: "#access-modifier" }, { include: "#property-accessor" }, { include: "#async-modifier" }, { include: "#after-operator-block-as-object-literal" }, { include: "#decl-block" }, { include: "#expression" }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }] }, "class-or-interface-heritage": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: "(?=\\{)", patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { include: "#type-parameters" }, { include: "#expressionWithoutIdentifiers" }, { captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)" }, { captures: { 1: { name: "entity.other.inherited-class.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)" }, { include: "#expressionPunctuations" }] }, comment: { patterns: [{ begin: "/\\*\\*(?!/)", beginCaptures: { 0: { name: "punctuation.definition.comment.tsx" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.tsx" } }, name: "comment.block.documentation.tsx", patterns: [{ include: "#docblock" }] }, { begin: "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", beginCaptures: { 1: { name: "punctuation.definition.comment.tsx" }, 2: { name: "storage.type.internaldeclaration.tsx" }, 3: { name: "punctuation.decorator.internaldeclaration.tsx" } }, end: "\\*/", endCaptures: { 0: { name: "punctuation.definition.comment.tsx" } }, name: "comment.block.tsx" }, { begin: "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.tsx" }, 2: { name: "comment.line.double-slash.tsx" }, 3: { name: "punctuation.definition.comment.tsx" }, 4: { name: "storage.type.internaldeclaration.tsx" }, 5: { name: "punctuation.decorator.internaldeclaration.tsx" } }, contentName: "comment.line.double-slash.tsx", end: "(?=$)" }] }, "control-statement": { patterns: [{ include: "#switch-statement" }, { include: "#for-loop" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.trycatch.tsx" }, { captures: { 1: { name: "keyword.control.loop.tsx" }, 2: { name: "entity.name.label.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.loop.tsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.control.flow.tsx" } }, end: "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#expression" }] }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.switch.tsx" }, { include: "#if-statement" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.conditional.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.with.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.other.debugger.tsx" }] }, "decl-block": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.block.tsx", patterns: [{ include: "#statements" }] }, declaration: { patterns: [{ include: "#decorator" }, { include: "#var-expr" }, { include: "#function-declaration" }, { include: "#class-declaration" }, { include: "#interface-declaration" }, { include: "#enum-declaration" }, { include: "#namespace-declaration" }, { include: "#type-alias-declaration" }, { include: "#import-equals-declaration" }, { include: "#import-declaration" }, { include: "#export-declaration" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }] }, decorator: { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", beginCaptures: { 0: { name: "punctuation.decorator.tsx" } }, end: "(?=\\s)", name: "meta.decorator.tsx", patterns: [{ include: "#expression" }] }, "destructuring-const": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.tsx", patterns: [{ include: "#object-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.array-binding-pattern-variable.tsx", patterns: [{ include: "#array-binding-pattern-const" }, { include: "#type-annotation" }, { include: "#comment" }] }] }, "destructuring-parameter": { patterns: [{ begin: "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, name: "meta.parameter.object-binding-pattern.tsx", patterns: [{ include: "#parameter-object-binding-element" }] }, { begin: "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, name: "meta.paramter.array-binding-pattern.tsx", patterns: [{ include: "#parameter-binding-element" }, { include: "#punctuation-comma" }] }] }, "destructuring-parameter-rest": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "variable.parameter.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, "destructuring-variable": { patterns: [{ begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.object-binding-pattern-variable.tsx", patterns: [{ include: "#object-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }, { begin: "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", name: "meta.array-binding-pattern-variable.tsx", patterns: [{ include: "#array-binding-pattern" }, { include: "#type-annotation" }, { include: "#comment" }] }] }, "destructuring-variable-rest": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "meta.definition.variable.tsx variable.other.readwrite.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, "destructuring-variable-rest-const": { captures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "meta.definition.variable.tsx variable.other.constant.tsx" } }, match: "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)" }, directives: { begin: "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", beginCaptures: { 1: { name: "punctuation.definition.comment.tsx" } }, end: "(?=$)", name: "comment.line.triple-slash.directive.tsx", patterns: [{ begin: "(<)(reference|amd-dependency|amd-module)", beginCaptures: { 1: { name: "punctuation.definition.tag.directive.tsx" }, 2: { name: "entity.name.tag.directive.tsx" } }, end: "/>", endCaptures: { 0: { name: "punctuation.definition.tag.directive.tsx" } }, name: "meta.tag.tsx", patterns: [{ match: "path|types|no-default-lib|lib|name|resolution-mode", name: "entity.other.attribute-name.directive.tsx" }, { match: "=", name: "keyword.operator.assignment.tsx" }, { include: "#string" }] }] }, docblock: { patterns: [{ captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "constant.language.access-type.jsdoc" } }, match: `(?x)
26
+ ((@)(?:access|api))
27
+ \\s+
28
+ (private|protected|public)
29
+ \\b` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" }, 4: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 5: { name: "constant.other.email.link.underline.jsdoc" }, 6: { name: "punctuation.definition.bracket.angle.end.jsdoc" } }, match: `(?x)
30
+ ((@)author)
31
+ \\s+
32
+ (
33
+ [^@\\s<>*/]
34
+ (?:[^@<>*/]|\\*[^/])*
35
+ )
36
+ (?:
37
+ \\s*
38
+ (<)
39
+ ([^>\\s]+)
40
+ (>)
41
+ )?` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" }, 4: { name: "keyword.operator.control.jsdoc" }, 5: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
42
+ ((@)borrows) \\s+
43
+ ((?:[^@\\s*/]|\\*[^/])+)
44
+ \\s+ (as) \\s+
45
+ ((?:[^@\\s*/]|\\*[^/])+)` }, { begin: "((@)example)\\s+", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=@|\\*/)", name: "meta.example.jsdoc", patterns: [{ match: "^\\s\\*\\s+" }, { begin: "\\G(<)caption(>)", beginCaptures: { 0: { name: "entity.name.tag.inline.jsdoc" }, 1: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.angle.end.jsdoc" } }, contentName: "constant.other.description.jsdoc", end: "(</)caption(>)|(?=\\*/)", endCaptures: { 0: { name: "entity.name.tag.inline.jsdoc" }, 1: { name: "punctuation.definition.bracket.angle.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.angle.end.jsdoc" } } }, { captures: { 0: { name: "source.embedded.tsx" } }, match: "[^\\s@*](?:[^*]|\\*[^/])*" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "constant.language.symbol-type.jsdoc" } }, match: "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.link.underline.jsdoc" }, 4: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
46
+ ((@)see)
47
+ \\s+
48
+ (?:
49
+
50
+ (
51
+ (?=https?://)
52
+ (?:[^\\s*]|\\*[^/])+
53
+ )
54
+ |
55
+
56
+ (
57
+ (?!
58
+
59
+ https?://
60
+ |
61
+
62
+ (?:\\[[^\\[\\]]*\\])?
63
+ {@(?:link|linkcode|linkplain|tutorial)\\b
64
+ )
65
+
66
+ (?:[^@\\s*/]|\\*[^/])+
67
+ )
68
+ )` }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: `(?x)
69
+ ((@)template)
70
+ \\s+
71
+ # One or more valid identifiers
72
+ (
73
+ [A-Za-z_$]
74
+ [\\w$.\\[\\]]*
75
+ (?:
76
+ \\s* , \\s*
77
+ [A-Za-z_$]
78
+ [\\w$.\\[\\]]*
79
+ )*
80
+ )` }, { begin: "(?x)((@)template)\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "([A-Za-z_$][\\w$.\\[\\]]*)", name: "variable.other.jsdoc" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: `(?x)
81
+ (
82
+ (@)
83
+ (?:arg|argument|const|constant|member|namespace|param|var)
84
+ )
85
+ \\s+
86
+ (
87
+ [A-Za-z_$]
88
+ [\\w$.\\[\\]]*
89
+ )` }, { begin: "((@)typedef)\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "(?:[^@\\s*/]|\\*[^/])+", name: "entity.name.type.instance.jsdoc" }] }, { begin: "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }, { match: "([A-Za-z_$][\\w$.\\[\\]]*)", name: "variable.other.jsdoc" }, { captures: { 1: { name: "punctuation.definition.optional-value.begin.bracket.square.jsdoc" }, 2: { name: "keyword.operator.assignment.jsdoc" }, 3: { name: "source.embedded.tsx" }, 4: { name: "punctuation.definition.optional-value.end.bracket.square.jsdoc" }, 5: { name: "invalid.illegal.syntax.jsdoc" } }, match: `(?x)
90
+ (\\[)\\s*
91
+ [\\w$]+
92
+ (?:
93
+ (?:\\[\\])?
94
+ \\.
95
+ [\\w$]+
96
+ )*
97
+ (?:
98
+ \\s*
99
+ (=)
100
+ \\s*
101
+ (
102
+
103
+ (?>
104
+ "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" |
105
+ '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |
106
+ \\[ (?:(?:\\*(?!/))|[^*])*? \\] |
107
+ (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*
108
+ )*
109
+ )
110
+ )?
111
+ \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`, name: "variable.other.jsdoc" }] }, { begin: `(?x)
112
+ (
113
+ (@)
114
+ (?:define|enum|exception|export|extends|lends|implements|modifies
115
+ |namespace|private|protected|returns?|satisfies|suppress|this|throws|type
116
+ |yields?)
117
+ )
118
+ \\s+(?={)`, beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, end: "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", patterns: [{ include: "#jsdoctype" }] }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "entity.name.type.instance.jsdoc" } }, match: `(?x)
119
+ (
120
+ (@)
121
+ (?:alias|augments|callback|constructs|emits|event|fires|exports?
122
+ |extends|external|function|func|host|lends|listens|interface|memberof!?
123
+ |method|module|mixes|mixin|name|requires|see|this|typedef|uses)
124
+ )
125
+ \\s+
126
+ (
127
+ (?:
128
+ [^{}@\\s*] | \\*[^/]
129
+ )+
130
+ )` }, { begin: `((@)(?:default(?:value)?|license|version))\\s+(([''"]))`, beginCaptures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" }, 4: { name: "punctuation.definition.string.begin.jsdoc" } }, contentName: "variable.other.jsdoc", end: "(\\3)|(?=$|\\*/)", endCaptures: { 0: { name: "variable.other.jsdoc" }, 1: { name: "punctuation.definition.string.end.jsdoc" } } }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" }, 3: { name: "variable.other.jsdoc" } }, match: "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)" }, { captures: { 1: { name: "punctuation.definition.block.tag.jsdoc" } }, match: "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", name: "storage.type.class.jsdoc" }, { include: "#inline-tags" }, { captures: { 1: { name: "storage.type.class.jsdoc" }, 2: { name: "punctuation.definition.block.tag.jsdoc" } }, match: "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)" }] }, "enum-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.type.enum.tsx" }, 5: { name: "entity.name.type.enum.tsx" } }, end: "(?<=\\})", name: "meta.enum.declaration.tsx", patterns: [{ include: "#comment" }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, patterns: [{ include: "#comment" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 0: { name: "variable.other.enummember.tsx" } }, end: "(?=,|\\}|$)", patterns: [{ include: "#comment" }, { include: "#variable-initializer" }] }, { begin: "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", end: "(?=,|\\}|$)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#comment" }, { include: "#variable-initializer" }] }, { include: "#punctuation-comma" }] }] }, "export-declaration": { patterns: [{ captures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "keyword.control.as.tsx" }, 3: { name: "storage.type.namespace.tsx" }, 4: { name: "entity.name.type.module.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "keyword.control.type.tsx" }, 3: { name: "keyword.operator.assignment.tsx" }, 4: { name: "keyword.control.default.tsx" } }, end: "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.export.default.tsx", patterns: [{ include: "#interface-declaration" }, { include: "#expression" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "keyword.control.type.tsx" } }, end: "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.export.tsx", patterns: [{ include: "#import-export-declaration" }] }] }, expression: { patterns: [{ include: "#expressionWithoutIdentifiers" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-inside-possibly-arrow-parens": { patterns: [{ include: "#expressionWithoutIdentifiers" }, { include: "#comment" }, { include: "#string" }, { include: "#decorator" }, { include: "#destructuring-parameter" }, { captures: { 1: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)" }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "entity.name.function.tsx variable.language.this.tsx" }, 4: { name: "entity.name.function.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*
131
+ # function assignment |
132
+ (=\\s*(
133
+ ((async\\s+)?(
134
+ (function\\s*[(<*]) |
135
+ (function\\s+) |
136
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
137
+ )) |
138
+ ((async\\s*)?(
139
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
140
+
141
+ (
142
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
143
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
144
+ (
145
+ ([)]\\s*:) |
146
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
147
+ )
148
+ ) |
149
+ (
150
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
151
+ ) |
152
+ # arrow function possible to detect only with => on same line
153
+ (
154
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
155
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
156
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
157
+ \\s*=>
158
+ )
159
+ ))
160
+ )) |
161
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
162
+ (:\\s*(
163
+ (<) |
164
+ ([(]\\s*(
165
+ ([)]) |
166
+ (\\.\\.\\.) |
167
+ ([_$[:alnum:]]+\\s*(
168
+ ([:,?=])|
169
+ ([)]\\s*=>)
170
+ ))
171
+ ))
172
+ )) |
173
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
174
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
175
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
176
+ ((async\\s+)?(
177
+ (function\\s*[(<*]) |
178
+ (function\\s+) |
179
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
180
+ )) |
181
+ ((async\\s*)?(
182
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
183
+
184
+ (
185
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
186
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
187
+ (
188
+ ([)]\\s*:) |
189
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
190
+ )
191
+ ) |
192
+ (
193
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
194
+ ) |
195
+ # arrow function possible to detect only with => on same line
196
+ (
197
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
198
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
199
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
200
+ \\s*=>
201
+ )
202
+ ))
203
+ )))` }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "variable.parameter.tsx variable.language.this.tsx" }, 4: { name: "variable.parameter.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)" }, { include: "#type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.tsx" }, { include: "#identifiers" }, { include: "#expressionPunctuations" }] }, "expression-operators": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.control.flow.tsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", beginCaptures: { 1: { name: "keyword.control.flow.tsx" } }, end: "\\*", endCaptures: { 0: { name: "keyword.generator.asterisk.tsx" } }, patterns: [{ include: "#comment" }] }, { captures: { 1: { name: "keyword.control.flow.tsx" }, 2: { name: "keyword.generator.asterisk.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.delete.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.in.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()", name: "keyword.operator.expression.of.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.instanceof.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.new.tsx" }, { include: "#typeof-operator" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.void.tsx" }, { captures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "keyword.control.satisfies.tsx" } }, end: "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", patterns: [{ include: "#type" }] }, { match: "\\.\\.\\.", name: "keyword.operator.spread.tsx" }, { match: "\\*=|(?<!\\()/=|%=|\\+=|\\-=", name: "keyword.operator.assignment.compound.tsx" }, { match: "\\&=|\\^=|<<=|>>=|>>>=|\\|=", name: "keyword.operator.assignment.compound.bitwise.tsx" }, { match: "<<|>>>|>>", name: "keyword.operator.bitwise.shift.tsx" }, { match: "===|!==|==|!=", name: "keyword.operator.comparison.tsx" }, { match: "<=|>=|<>|<|>", name: "keyword.operator.relational.tsx" }, { captures: { 1: { name: "keyword.operator.logical.tsx" }, 2: { name: "keyword.operator.assignment.compound.tsx" }, 3: { name: "keyword.operator.arithmetic.tsx" } }, match: "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))" }, { match: "\\!|&&|\\|\\||\\?\\?", name: "keyword.operator.logical.tsx" }, { match: "\\&|~|\\^|\\|", name: "keyword.operator.bitwise.tsx" }, { match: "\\=", name: "keyword.operator.assignment.tsx" }, { match: "--", name: "keyword.operator.decrement.tsx" }, { match: "\\+\\+", name: "keyword.operator.increment.tsx" }, { match: "%|\\*|/|-|\\+", name: "keyword.operator.arithmetic.tsx" }, { begin: "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", end: "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", endCaptures: { 1: { name: "keyword.operator.assignment.compound.tsx" }, 2: { name: "keyword.operator.arithmetic.tsx" } }, patterns: [{ include: "#comment" }] }, { captures: { 1: { name: "keyword.operator.assignment.compound.tsx" }, 2: { name: "keyword.operator.arithmetic.tsx" } }, match: "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))" }] }, expressionPunctuations: { patterns: [{ include: "#punctuation-comma" }, { include: "#punctuation-accessor" }] }, expressionWithoutIdentifiers: { patterns: [{ include: "#jsx" }, { include: "#string" }, { include: "#regex" }, { include: "#comment" }, { include: "#function-expression" }, { include: "#class-expression" }, { include: "#arrow-function" }, { include: "#paren-expression-possibly-arrow" }, { include: "#cast" }, { include: "#ternary-expression" }, { include: "#new-expr" }, { include: "#instanceof-expr" }, { include: "#object-literal" }, { include: "#expression-operators" }, { include: "#function-call" }, { include: "#literal" }, { include: "#support-objects" }, { include: "#paren-expression" }] }, "field-declaration": { begin: `(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
204
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
205
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
206
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
207
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
208
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
209
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
210
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
211
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
212
+ )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`, beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: `(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
213
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
214
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
215
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
216
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
217
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
218
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
219
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
220
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
221
+ )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`, name: "meta.field.declaration.tsx", patterns: [{ include: "#variable-initializer" }, { include: "#type-annotation" }, { include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { include: "#comment" }, { captures: { 1: { name: "meta.definition.property.tsx entity.name.function.tsx" }, 2: { name: "keyword.operator.optional.tsx" }, 3: { name: "keyword.operator.definiteassignment.tsx" } }, match: `(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*
222
+ # function assignment |
223
+ (=\\s*(
224
+ ((async\\s+)?(
225
+ (function\\s*[(<*]) |
226
+ (function\\s+) |
227
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
228
+ )) |
229
+ ((async\\s*)?(
230
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
231
+
232
+ (
233
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
234
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
235
+ (
236
+ ([)]\\s*:) |
237
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
238
+ )
239
+ ) |
240
+ (
241
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
242
+ ) |
243
+ # arrow function possible to detect only with => on same line
244
+ (
245
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
246
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
247
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
248
+ \\s*=>
249
+ )
250
+ ))
251
+ )) |
252
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
253
+ (:\\s*(
254
+ (<) |
255
+ ([(]\\s*(
256
+ ([)]) |
257
+ (\\.\\.\\.) |
258
+ ([_$[:alnum:]]+\\s*(
259
+ ([:,?=])|
260
+ ([)]\\s*=>)
261
+ ))
262
+ ))
263
+ )) |
264
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
265
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
266
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
267
+ ((async\\s+)?(
268
+ (function\\s*[(<*]) |
269
+ (function\\s+) |
270
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
271
+ )) |
272
+ ((async\\s*)?(
273
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
274
+
275
+ (
276
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
277
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
278
+ (
279
+ ([)]\\s*:) |
280
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
281
+ )
282
+ ) |
283
+ (
284
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
285
+ ) |
286
+ # arrow function possible to detect only with => on same line
287
+ (
288
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
289
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
290
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
291
+ \\s*=>
292
+ )
293
+ ))
294
+ )))` }, { match: "\\#?[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.property.tsx variable.object.property.tsx" }, { match: "\\?", name: "keyword.operator.optional.tsx" }, { match: "\\!", name: "keyword.operator.definiteassignment.tsx" }] }, "for-loop": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", beginCaptures: { 0: { name: "keyword.control.loop.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#comment" }, { match: "await", name: "keyword.control.loop.tsx" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#var-expr" }, { include: "#expression" }, { include: "#punctuation-semicolon" }] }] }, "function-body": { patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { include: "#function-parameters" }, { include: "#return-type" }, { include: "#type-function-return-type" }, { include: "#decl-block" }, { match: "\\*", name: "keyword.generator.asterisk.tsx" }] }, "function-call": { patterns: [{ begin: "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", end: "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", end: "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", name: "meta.function-call.tsx", patterns: [{ include: "#function-call-target" }] }, { include: "#comment" }, { include: "#function-call-optionals" }, { include: "#type-arguments" }, { include: "#paren-expression" }] }, { begin: "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", end: "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", end: "(?=(<\\s*[\\{\\[\\(]\\s*$))", name: "meta.function-call.tsx", patterns: [{ include: "#function-call-target" }] }, { include: "#comment" }, { include: "#function-call-optionals" }, { include: "#type-arguments" }] }] }, "function-call-optionals": { patterns: [{ match: "\\?\\.", name: "meta.function-call.tsx punctuation.accessor.optional.tsx" }, { match: "\\!", name: "meta.function-call.tsx keyword.operator.definiteassignment.tsx" }] }, "function-call-target": { patterns: [{ include: "#support-function-call-identifiers" }, { match: "(\\#?[_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.function.tsx" }] }, "function-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.async.tsx" }, 4: { name: "storage.type.function.tsx" }, 5: { name: "keyword.generator.asterisk.tsx" }, 6: { name: "meta.definition.function.tsx entity.name.function.tsx" } }, end: "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", name: "meta.function.tsx", patterns: [{ include: "#function-name" }, { include: "#function-body" }] }, "function-expression": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "storage.type.function.tsx" }, 3: { name: "keyword.generator.asterisk.tsx" }, 4: { name: "meta.definition.function.tsx entity.name.function.tsx" } }, end: "(?=;)|(?<=\\})", name: "meta.function.expression.tsx", patterns: [{ include: "#function-name" }, { include: "#single-line-comment-consuming-line-ending" }, { include: "#function-body" }] }, "function-name": { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.function.tsx entity.name.function.tsx" }, "function-parameters": { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.parameters.begin.tsx" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.parameters.end.tsx" } }, name: "meta.parameters.tsx", patterns: [{ include: "#function-parameters-body" }] }, "function-parameters-body": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#decorator" }, { include: "#destructuring-parameter" }, { include: "#parameter-name" }, { include: "#parameter-type-annotation" }, { include: "#variable-initializer" }, { match: ",", name: "punctuation.separator.parameter.tsx" }] }, identifiers: { patterns: [{ include: "#object-identifiers" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "entity.name.function.tsx" } }, match: `(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(
295
+ ((async\\s+)?(
296
+ (function\\s*[(<*]) |
297
+ (function\\s+) |
298
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
299
+ )) |
300
+ ((async\\s*)?(
301
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
302
+
303
+ (
304
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
305
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
306
+ (
307
+ ([)]\\s*:) |
308
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
309
+ )
310
+ ) |
311
+ (
312
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
313
+ ) |
314
+ # arrow function possible to detect only with => on same line
315
+ (
316
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
317
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
318
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
319
+ \\s*=>
320
+ )
321
+ ))
322
+ ))` }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.constant.property.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.property.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)" }, { match: "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", name: "variable.other.constant.tsx" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "variable.other.readwrite.tsx" }] }, "if-statement": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", end: "(?=;|$|\\})", patterns: [{ include: "#comment" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.conditional.tsx" }, 2: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression" }] }, { begin: "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "keyword.other.tsx" } }, name: "string.regexp.tsx", patterns: [{ include: "#regexp" }] }, { include: "#statements" }] }] }, "import-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "keyword.control.import.tsx" }, 4: { name: "keyword.control.type.tsx" } }, end: "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", name: "meta.import.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#string" }, { begin: `(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`, end: "\\bfrom\\b", endCaptures: { 0: { name: "keyword.control.from.tsx" } }, patterns: [{ include: "#import-export-declaration" }] }, { include: "#import-export-declaration" }] }, "import-equals-declaration": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "keyword.control.import.tsx" }, 4: { name: "keyword.control.type.tsx" }, 5: { name: "variable.other.readwrite.alias.tsx" }, 6: { name: "keyword.operator.assignment.tsx" }, 7: { name: "keyword.control.require.tsx" }, 8: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, name: "meta.import-equals.external.tsx", patterns: [{ include: "#comment" }, { include: "#string" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "keyword.control.import.tsx" }, 4: { name: "keyword.control.type.tsx" }, 5: { name: "variable.other.readwrite.alias.tsx" }, 6: { name: "keyword.operator.assignment.tsx" } }, end: "(?=;|$|^)", name: "meta.import-equals.internal.tsx", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "variable.other.readwrite.tsx" }] }] }, "import-export-assert-clause": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)", beginCaptures: { 1: { name: "keyword.control.with.tsx" }, 2: { name: "keyword.control.assert.tsx" }, 3: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, patterns: [{ include: "#comment" }, { include: "#string" }, { match: "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object-literal.key.tsx" }, { match: ":", name: "punctuation.separator.key-value.tsx" }] }, "import-export-block": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.block.tsx", patterns: [{ include: "#import-export-clause" }] }, "import-export-clause": { patterns: [{ include: "#comment" }, { captures: { 1: { name: "keyword.control.type.tsx" }, 2: { name: "keyword.control.default.tsx" }, 3: { name: "constant.language.import-export-all.tsx" }, 4: { name: "variable.other.readwrite.tsx" }, 5: { name: "keyword.control.as.tsx" }, 6: { name: "keyword.control.default.tsx" }, 7: { name: "variable.other.readwrite.alias.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))" }, { include: "#punctuation-comma" }, { match: "\\*", name: "constant.language.import-export-all.tsx" }, { match: "\\b(default)\\b", name: "keyword.control.default.tsx" }, { captures: { 1: { name: "keyword.control.type.tsx" }, 2: { name: "variable.other.readwrite.alias.tsx" } }, match: "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)" }] }, "import-export-declaration": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#import-export-block" }, { match: "\\bfrom\\b", name: "keyword.control.from.tsx" }, { include: "#import-export-assert-clause" }, { include: "#import-export-clause" }] }, "indexer-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "meta.brace.square.tsx" }, 3: { name: "variable.parameter.tsx" } }, end: "(\\])\\s*(\\?\\s*)?|$", endCaptures: { 1: { name: "meta.brace.square.tsx" }, 2: { name: "keyword.operator.optional.tsx" } }, name: "meta.indexer.declaration.tsx", patterns: [{ include: "#type-annotation" }] }, "indexer-mapped-type-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", beginCaptures: { 1: { name: "keyword.operator.type.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "meta.brace.square.tsx" }, 4: { name: "entity.name.type.tsx" }, 5: { name: "keyword.operator.expression.in.tsx" } }, end: "(\\])([+-])?\\s*(\\?\\s*)?|$", endCaptures: { 1: { name: "meta.brace.square.tsx" }, 2: { name: "keyword.operator.type.modifier.tsx" }, 3: { name: "keyword.operator.optional.tsx" } }, name: "meta.indexer.mappedtype.declaration.tsx", patterns: [{ captures: { 1: { name: "keyword.control.as.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+" }, { include: "#type" }] }, "inline-tags": { patterns: [{ captures: { 1: { name: "punctuation.definition.bracket.square.begin.jsdoc" }, 2: { name: "punctuation.definition.bracket.square.end.jsdoc" } }, match: "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", name: "constant.other.description.jsdoc" }, { begin: "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", beginCaptures: { 1: { name: "punctuation.definition.bracket.curly.begin.jsdoc" }, 2: { name: "storage.type.class.jsdoc" }, 3: { name: "punctuation.definition.inline.tag.jsdoc" } }, end: "}|(?=\\*/)", endCaptures: { 0: { name: "punctuation.definition.bracket.curly.end.jsdoc" } }, name: "entity.name.type.instance.jsdoc", patterns: [{ captures: { 1: { name: "variable.other.link.underline.jsdoc" }, 2: { name: "punctuation.separator.pipe.jsdoc" } }, match: "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?" }, { captures: { 1: { name: "variable.other.description.jsdoc" }, 2: { name: "punctuation.separator.pipe.jsdoc" } }, match: "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?" }] }] }, "instanceof-expr": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.expression.instanceof.tsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", patterns: [{ include: "#type" }] }, "interface-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.type.interface.tsx" } }, end: "(?<=\\})", name: "meta.interface.tsx", patterns: [{ include: "#comment" }, { include: "#class-or-interface-heritage" }, { captures: { 0: { name: "entity.name.type.interface.tsx" } }, match: "[_$[:alpha:]][_$[:alnum:]]*" }, { include: "#type-parameters" }, { include: "#class-or-interface-body" }] }, jsdoctype: { patterns: [{ begin: "\\G({)", beginCaptures: { 0: { name: "entity.name.type.instance.jsdoc" }, 1: { name: "punctuation.definition.bracket.curly.begin.jsdoc" } }, contentName: "entity.name.type.instance.jsdoc", end: "((}))\\s*|(?=\\*/)", endCaptures: { 1: { name: "entity.name.type.instance.jsdoc" }, 2: { name: "punctuation.definition.bracket.curly.end.jsdoc" } }, patterns: [{ include: "#brackets" }] }] }, jsx: { patterns: [{ include: "#jsx-tag-without-attributes-in-expression" }, { include: "#jsx-tag-in-expression" }] }, "jsx-children": { patterns: [{ include: "#jsx-tag-without-attributes" }, { include: "#jsx-tag" }, { include: "#jsx-evaluated-code" }, { include: "#jsx-entities" }] }, "jsx-entities": { patterns: [{ captures: { 1: { name: "punctuation.definition.entity.tsx" }, 3: { name: "punctuation.definition.entity.tsx" } }, match: "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", name: "constant.character.entity.tsx" }] }, "jsx-evaluated-code": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.section.embedded.begin.tsx" } }, contentName: "meta.embedded.expression.tsx", end: "\\}", endCaptures: { 0: { name: "punctuation.section.embedded.end.tsx" } }, patterns: [{ include: "#expression" }] }, "jsx-string-double-quoted": { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.tsx" } }, name: "string.quoted.double.tsx", patterns: [{ include: "#jsx-entities" }] }, "jsx-string-single-quoted": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.tsx" } }, name: "string.quoted.single.tsx", patterns: [{ include: "#jsx-entities" }] }, "jsx-tag": { begin: "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", end: "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", endCaptures: { 1: { name: "punctuation.definition.tag.end.tsx" }, 2: { name: "punctuation.definition.tag.begin.tsx" }, 3: { name: "entity.name.tag.namespace.tsx" }, 4: { name: "punctuation.separator.namespace.tsx" }, 5: { name: "entity.name.tag.tsx" }, 6: { name: "support.class.component.tsx" }, 7: { name: "punctuation.definition.tag.end.tsx" } }, name: "meta.tag.tsx", patterns: [{ begin: "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.tsx" }, 2: { name: "entity.name.tag.namespace.tsx" }, 3: { name: "punctuation.separator.namespace.tsx" }, 4: { name: "entity.name.tag.tsx" }, 5: { name: "support.class.component.tsx" } }, end: "(?=[/]?>)", patterns: [{ include: "#comment" }, { include: "#type-arguments" }, { include: "#jsx-tag-attributes" }] }, { begin: "(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.end.tsx" } }, contentName: "meta.jsx.children.tsx", end: "(?=</)", patterns: [{ include: "#jsx-children" }] }] }, "jsx-tag-attribute-assignment": { match: `=(?=\\s*(?:'|"|{|/\\*|//|\\n))`, name: "keyword.operator.assignment.tsx" }, "jsx-tag-attribute-name": { captures: { 1: { name: "entity.other.attribute-name.namespace.tsx" }, 2: { name: "punctuation.separator.namespace.tsx" }, 3: { name: "entity.other.attribute-name.tsx" } }, match: `(?x)
323
+ \\s*
324
+ (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?
325
+ ([_$[:alpha:]][-_$[:alnum:]]*)
326
+ (?=\\s|=|/?>|/\\*|//)` }, "jsx-tag-attributes": { begin: "\\s+", end: "(?=[/]?>)", name: "meta.tag.attributes.tsx", patterns: [{ include: "#comment" }, { include: "#jsx-tag-attribute-name" }, { include: "#jsx-tag-attribute-assignment" }, { include: "#jsx-string-double-quoted" }, { include: "#jsx-string-single-quoted" }, { include: "#jsx-evaluated-code" }, { include: "#jsx-tag-attributes-illegal" }] }, "jsx-tag-attributes-illegal": { match: "\\S+", name: "invalid.illegal.attribute.tsx" }, "jsx-tag-in-expression": { begin: `(?x)
327
+ (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*
328
+ (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,))
329
+ (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))`, end: "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", patterns: [{ include: "#jsx-tag" }] }, "jsx-tag-without-attributes": { begin: "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", beginCaptures: { 1: { name: "punctuation.definition.tag.begin.tsx" }, 2: { name: "entity.name.tag.namespace.tsx" }, 3: { name: "punctuation.separator.namespace.tsx" }, 4: { name: "entity.name.tag.tsx" }, 5: { name: "support.class.component.tsx" }, 6: { name: "punctuation.definition.tag.end.tsx" } }, contentName: "meta.jsx.children.tsx", end: "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", endCaptures: { 1: { name: "punctuation.definition.tag.begin.tsx" }, 2: { name: "entity.name.tag.namespace.tsx" }, 3: { name: "punctuation.separator.namespace.tsx" }, 4: { name: "entity.name.tag.tsx" }, 5: { name: "support.class.component.tsx" }, 6: { name: "punctuation.definition.tag.end.tsx" } }, name: "meta.tag.without-attributes.tsx", patterns: [{ include: "#jsx-children" }] }, "jsx-tag-without-attributes-in-expression": { begin: "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", end: "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", patterns: [{ include: "#jsx-tag-without-attributes" }] }, label: { patterns: [{ begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", beginCaptures: { 1: { name: "entity.name.label.tsx" }, 2: { name: "punctuation.separator.label.tsx" } }, end: "(?<=\\})", patterns: [{ include: "#decl-block" }] }, { captures: { 1: { name: "entity.name.label.tsx" }, 2: { name: "punctuation.separator.label.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)" }] }, literal: { patterns: [{ include: "#numeric-literal" }, { include: "#boolean-literal" }, { include: "#null-literal" }, { include: "#undefined-literal" }, { include: "#numericConstant-literal" }, { include: "#array-literal" }, { include: "#this-literal" }, { include: "#super-literal" }] }, "method-declaration": { patterns: [{ begin: "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.modifier.async.tsx" }, 5: { name: "storage.type.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }, { begin: "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.modifier.async.tsx" }, 5: { name: "keyword.operator.new.tsx" }, 6: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }, { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
330
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
331
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
332
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
333
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
334
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
335
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
336
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
337
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
338
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.modifier.tsx" }, 4: { name: "storage.modifier.async.tsx" }, 5: { name: "storage.type.property.tsx" }, 6: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }] }] }, "method-declaration-name": { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
339
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
340
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
341
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
342
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
343
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
344
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
345
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
346
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
347
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`, end: "(?=\\(|\\<)", patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "meta.definition.method.tsx entity.name.function.tsx" }, { match: "\\?", name: "keyword.operator.optional.tsx" }] }, "namespace-declaration": { begin: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.namespace.tsx" } }, end: "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.namespace.declaration.tsx", patterns: [{ include: "#comment" }, { include: "#string" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.type.module.tsx" }, { include: "#punctuation-accessor" }, { include: "#decl-block" }] }, "new-expr": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.new.tsx" } }, end: "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", name: "new.expr.tsx", patterns: [{ include: "#expression" }] }, "null-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.null.tsx" }, "numeric-literal": { patterns: [{ captures: { 1: { name: "storage.type.numeric.bigint.tsx" } }, match: "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", name: "constant.numeric.hex.tsx" }, { captures: { 1: { name: "storage.type.numeric.bigint.tsx" } }, match: "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", name: "constant.numeric.binary.tsx" }, { captures: { 1: { name: "storage.type.numeric.bigint.tsx" } }, match: "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", name: "constant.numeric.octal.tsx" }, { captures: { 0: { name: "constant.numeric.decimal.tsx" }, 1: { name: "meta.delimiter.decimal.period.tsx" }, 2: { name: "storage.type.numeric.bigint.tsx" }, 3: { name: "meta.delimiter.decimal.period.tsx" }, 4: { name: "storage.type.numeric.bigint.tsx" }, 5: { name: "meta.delimiter.decimal.period.tsx" }, 6: { name: "storage.type.numeric.bigint.tsx" }, 7: { name: "storage.type.numeric.bigint.tsx" }, 8: { name: "meta.delimiter.decimal.period.tsx" }, 9: { name: "storage.type.numeric.bigint.tsx" }, 10: { name: "meta.delimiter.decimal.period.tsx" }, 11: { name: "storage.type.numeric.bigint.tsx" }, 12: { name: "meta.delimiter.decimal.period.tsx" }, 13: { name: "storage.type.numeric.bigint.tsx" }, 14: { name: "storage.type.numeric.bigint.tsx" } }, match: `(?x)
348
+ (?<!\\$)(?:
349
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
350
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
351
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
352
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
353
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
354
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
355
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
356
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
357
+ )(?!\\$)` }] }, "numericConstant-literal": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.nan.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.infinity.tsx" }] }, "object-binding-element": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
358
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
359
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
360
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
361
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
362
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
363
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
364
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
365
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
366
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#binding-element" }] }, { include: "#object-binding-pattern" }, { include: "#destructuring-variable-rest" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "object-binding-element-const": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
367
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
368
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
369
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
370
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
371
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
372
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
373
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
374
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
375
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#binding-element-const" }] }, { include: "#object-binding-pattern-const" }, { include: "#destructuring-variable-rest-const" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "object-binding-element-propertyName": { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
376
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
377
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
378
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
379
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
380
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
381
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
382
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
383
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
384
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(:)", endCaptures: { 0: { name: "punctuation.destructuring.tsx" } }, patterns: [{ include: "#string" }, { include: "#array-literal" }, { include: "#numeric-literal" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "variable.object.property.tsx" }] }, "object-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, patterns: [{ include: "#object-binding-element" }] }, "object-binding-pattern-const": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, patterns: [{ include: "#object-binding-element-const" }] }, "object-identifiers": { patterns: [{ match: "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))", name: "support.class.tsx" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "variable.other.constant.object.property.tsx" }, 4: { name: "variable.other.object.property.tsx" } }, match: `(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:
385
+ (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |
386
+ (\\#?[_$[:alpha:]][_$[:alnum:]]*)
387
+ )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)` }, { captures: { 1: { name: "variable.other.constant.object.tsx" }, 2: { name: "variable.other.object.tsx" } }, match: `(?x)(?:
388
+ ([[:upper:]][_$[:digit:][:upper:]]*) |
389
+ ([_$[:alpha:]][_$[:alnum:]]*)
390
+ )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)` }] }, "object-literal": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.objectliteral.tsx", patterns: [{ include: "#object-member" }] }, "object-literal-method-declaration": { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
391
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
392
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
393
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
394
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
395
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
396
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
397
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
398
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
399
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "storage.type.property.tsx" }, 3: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\}|;|,)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#method-declaration-name" }, { include: "#function-body" }, { begin: `(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
400
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
401
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
402
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
403
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
404
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
405
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
406
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
407
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
408
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`, beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "storage.type.property.tsx" }, 3: { name: "keyword.generator.asterisk.tsx" } }, end: "(?=\\(|\\<)", patterns: [{ include: "#method-declaration-name" }] }] }, "object-member": { patterns: [{ include: "#comment" }, { include: "#object-literal-method-declaration" }, { begin: "(?=\\[)", end: "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", name: "meta.object.member.tsx meta.object-literal.key.tsx", patterns: [{ include: "#comment" }, { include: "#array-literal" }] }, { begin: "(?=[\\'\\\"\\`])", end: "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", name: "meta.object.member.tsx meta.object-literal.key.tsx", patterns: [{ include: "#comment" }, { include: "#string" }] }, { begin: `(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
409
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
410
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
411
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
412
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
413
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
414
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
415
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
416
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
417
+ )(?!\\$)))`, end: "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", name: "meta.object.member.tsx meta.object-literal.key.tsx", patterns: [{ include: "#comment" }, { include: "#numeric-literal" }] }, { begin: "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", end: "(?=\\}|;|,)|(?<=\\})", name: "meta.method.declaration.tsx", patterns: [{ include: "#function-body" }] }, { captures: { 0: { name: "meta.object-literal.key.tsx" }, 1: { name: "constant.numeric.decimal.tsx" } }, match: "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.tsx" }, { captures: { 0: { name: "meta.object-literal.key.tsx" }, 1: { name: "entity.name.function.tsx" } }, match: `(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(
418
+ ((async\\s+)?(
419
+ (function\\s*[(<*]) |
420
+ (function\\s+) |
421
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
422
+ )) |
423
+ ((async\\s*)?(
424
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
425
+
426
+ (
427
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
428
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
429
+ (
430
+ ([)]\\s*:) |
431
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
432
+ )
433
+ ) |
434
+ (
435
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
436
+ ) |
437
+ # arrow function possible to detect only with => on same line
438
+ (
439
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
440
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
441
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
442
+ \\s*=>
443
+ )
444
+ ))
445
+ )))`, name: "meta.object.member.tsx" }, { captures: { 0: { name: "meta.object-literal.key.tsx" } }, match: "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", name: "meta.object.member.tsx" }, { begin: "\\.\\.\\.", beginCaptures: { 0: { name: "keyword.operator.spread.tsx" } }, end: "(?=,|\\})", name: "meta.object.member.tsx", patterns: [{ include: "#expression" }] }, { captures: { 1: { name: "variable.other.readwrite.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.tsx" }, { captures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", name: "meta.object.member.tsx" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", beginCaptures: { 1: { name: "keyword.control.as.tsx" }, 2: { name: "keyword.control.satisfies.tsx" } }, end: "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", name: "meta.object.member.tsx", patterns: [{ include: "#type" }] }, { begin: "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", end: "(?=,|\\}|$|\\/\\/|\\/\\*)", name: "meta.object.member.tsx", patterns: [{ include: "#expression" }] }, { begin: ":", beginCaptures: { 0: { name: "meta.object-literal.key.tsx punctuation.separator.key-value.tsx" } }, end: "(?=,|\\})", name: "meta.object.member.tsx", patterns: [{ begin: "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#type-parameters" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }] }, { begin: "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" }, 2: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }, { begin: "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\>)", patterns: [{ include: "#type-parameters" }] }, { begin: "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }, { include: "#possibly-arrow-return-type" }, { include: "#expression" }] }, { include: "#punctuation-comma" }, { include: "#decl-block" }] }, "parameter-array-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\[)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.array.tsx" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.array.tsx" } }, patterns: [{ include: "#parameter-binding-element" }, { include: "#punctuation-comma" }] }, "parameter-binding-element": { patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#numeric-literal" }, { include: "#regex" }, { include: "#parameter-object-binding-pattern" }, { include: "#parameter-array-binding-pattern" }, { include: "#destructuring-parameter-rest" }, { include: "#variable-initializer" }] }, "parameter-name": { patterns: [{ captures: { 1: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)" }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "entity.name.function.tsx variable.language.this.tsx" }, 4: { name: "entity.name.function.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*
446
+ # function assignment |
447
+ (=\\s*(
448
+ ((async\\s+)?(
449
+ (function\\s*[(<*]) |
450
+ (function\\s+) |
451
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
452
+ )) |
453
+ ((async\\s*)?(
454
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
455
+
456
+ (
457
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
458
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
459
+ (
460
+ ([)]\\s*:) |
461
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
462
+ )
463
+ ) |
464
+ (
465
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
466
+ ) |
467
+ # arrow function possible to detect only with => on same line
468
+ (
469
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
470
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
471
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
472
+ \\s*=>
473
+ )
474
+ ))
475
+ )) |
476
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
477
+ (:\\s*(
478
+ (<) |
479
+ ([(]\\s*(
480
+ ([)]) |
481
+ (\\.\\.\\.) |
482
+ ([_$[:alnum:]]+\\s*(
483
+ ([:,?=])|
484
+ ([)]\\s*=>)
485
+ ))
486
+ ))
487
+ )) |
488
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
489
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
490
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
491
+ ((async\\s+)?(
492
+ (function\\s*[(<*]) |
493
+ (function\\s+) |
494
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
495
+ )) |
496
+ ((async\\s*)?(
497
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
498
+
499
+ (
500
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
501
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
502
+ (
503
+ ([)]\\s*:) |
504
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
505
+ )
506
+ ) |
507
+ (
508
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
509
+ ) |
510
+ # arrow function possible to detect only with => on same line
511
+ (
512
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
513
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
514
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
515
+ \\s*=>
516
+ )
517
+ ))
518
+ )))` }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "variable.parameter.tsx variable.language.this.tsx" }, 4: { name: "variable.parameter.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)" }] }, "parameter-object-binding-element": { patterns: [{ include: "#comment" }, { begin: `(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:
519
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
520
+ (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|
521
+ (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
522
+ (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|
523
+ (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|
524
+ (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|
525
+ (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|
526
+ (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))
527
+ )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`, end: "(?=,|\\})", patterns: [{ include: "#object-binding-element-propertyName" }, { include: "#parameter-binding-element" }, { include: "#paren-expression" }] }, { include: "#parameter-object-binding-pattern" }, { include: "#destructuring-parameter-rest" }, { include: "#variable-initializer" }, { include: "#punctuation-comma" }] }, "parameter-object-binding-pattern": { begin: "(?:(\\.\\.\\.)\\s*)?(\\{)", beginCaptures: { 1: { name: "keyword.operator.rest.tsx" }, 2: { name: "punctuation.definition.binding-pattern.object.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.binding-pattern.object.tsx" } }, patterns: [{ include: "#parameter-object-binding-element" }] }, "parameter-type-annotation": { patterns: [{ begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?=[,)])|(?==[^>])", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }] }, "paren-expression": { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression" }] }, "paren-expression-possibly-arrow": { patterns: [{ begin: "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#paren-expression-possibly-arrow-with-typeparameters" }] }, { begin: "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", beginCaptures: { 1: { name: "storage.modifier.async.tsx" } }, end: "(?<=\\))", patterns: [{ include: "#paren-expression-possibly-arrow-with-typeparameters" }] }, { include: "#possibly-arrow-return-type" }] }, "paren-expression-possibly-arrow-with-typeparameters": { patterns: [{ include: "#type-parameters" }, { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, patterns: [{ include: "#expression-inside-possibly-arrow-parens" }] }] }, "possibly-arrow-return-type": { begin: "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", beginCaptures: { 1: { name: "meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx" } }, contentName: "meta.arrow.tsx meta.return.type.arrow.tsx", end: "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", patterns: [{ include: "#arrow-return-type-body" }] }, "property-accessor": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.type.property.tsx" }, "punctuation-accessor": { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" } }, match: "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, "punctuation-comma": { match: ",", name: "punctuation.separator.comma.tsx" }, "punctuation-semicolon": { match: ";", name: "punctuation.terminator.statement.tsx" }, "qstring-double": { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: '(")|((?:[^\\\\\\n])$)', endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "invalid.illegal.newline.tsx" } }, name: "string.quoted.double.tsx", patterns: [{ include: "#string-character-escape" }] }, "qstring-single": { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "(\\')|((?:[^\\\\\\n])$)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "invalid.illegal.newline.tsx" } }, name: "string.quoted.single.tsx", patterns: [{ include: "#string-character-escape" }] }, regex: { patterns: [{ begin: "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 1: { name: "punctuation.definition.string.begin.tsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "keyword.other.tsx" } }, name: "string.regexp.tsx", patterns: [{ include: "#regexp" }] }, { begin: "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", beginCaptures: { 0: { name: "punctuation.definition.string.begin.tsx" } }, end: "(/)([dgimsuy]*)", endCaptures: { 1: { name: "punctuation.definition.string.end.tsx" }, 2: { name: "keyword.other.tsx" } }, name: "string.regexp.tsx", patterns: [{ include: "#regexp" }] }] }, "regex-character-class": { patterns: [{ match: "\\\\[wWsSdDtrnvf]|\\.", name: "constant.other.character-class.regexp" }, { match: "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})", name: "constant.character.numeric.regexp" }, { match: "\\\\c[A-Z]", name: "constant.character.control.regexp" }, { match: "\\\\.", name: "constant.character.escape.backslash.regexp" }] }, regexp: { patterns: [{ match: "\\\\[bB]|\\^|\\$", name: "keyword.control.anchor.regexp" }, { captures: { 0: { name: "keyword.other.back-reference.regexp" }, 1: { name: "variable.other.regexp" } }, match: "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>" }, { match: "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", name: "keyword.operator.quantifier.regexp" }, { match: "\\|", name: "keyword.operator.or.regexp" }, { begin: "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", beginCaptures: { 1: { name: "punctuation.definition.group.regexp" }, 2: { name: "punctuation.definition.group.assertion.regexp" }, 3: { name: "meta.assertion.look-ahead.regexp" }, 4: { name: "meta.assertion.negative-look-ahead.regexp" }, 5: { name: "meta.assertion.look-behind.regexp" }, 6: { name: "meta.assertion.negative-look-behind.regexp" } }, end: "(\\))", endCaptures: { 1: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.assertion.regexp", patterns: [{ include: "#regexp" }] }, { begin: "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", beginCaptures: { 0: { name: "punctuation.definition.group.regexp" }, 1: { name: "punctuation.definition.group.no-capture.regexp" }, 2: { name: "variable.other.regexp" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.regexp" } }, name: "meta.group.regexp", patterns: [{ include: "#regexp" }] }, { begin: "(\\[)(\\^)?", beginCaptures: { 1: { name: "punctuation.definition.character-class.regexp" }, 2: { name: "keyword.operator.negation.regexp" } }, end: "(\\])", endCaptures: { 1: { name: "punctuation.definition.character-class.regexp" } }, name: "constant.other.character-class.set.regexp", patterns: [{ captures: { 1: { name: "constant.character.numeric.regexp" }, 2: { name: "constant.character.control.regexp" }, 3: { name: "constant.character.escape.backslash.regexp" }, 4: { name: "constant.character.numeric.regexp" }, 5: { name: "constant.character.control.regexp" }, 6: { name: "constant.character.escape.backslash.regexp" } }, match: "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", name: "constant.other.character-class.range.regexp" }, { include: "#regex-character-class" }] }, { include: "#regex-character-class" }] }, "return-type": { patterns: [{ begin: "(?<=\\))\\s*(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])(?=$|^|[{};,]|//)", name: "meta.return.type.tsx", patterns: [{ include: "#return-type-core" }] }, { begin: "(?<=\\))\\s*(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", name: "meta.return.type.tsx", patterns: [{ include: "#return-type-core" }] }] }, "return-type-core": { patterns: [{ include: "#comment" }, { begin: "(?<=[:|&])(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, shebang: { captures: { 1: { name: "punctuation.definition.comment.tsx" } }, match: "\\A(#!).*(?=$)", name: "comment.line.shebang.tsx" }, "single-line-comment-consuming-line-ending": { begin: "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.tsx" }, 2: { name: "comment.line.double-slash.tsx" }, 3: { name: "punctuation.definition.comment.tsx" }, 4: { name: "storage.type.internaldeclaration.tsx" }, 5: { name: "punctuation.decorator.internaldeclaration.tsx" } }, contentName: "comment.line.double-slash.tsx", end: "(?=^)" }, statements: { patterns: [{ include: "#declaration" }, { include: "#control-statement" }, { include: "#after-operator-block-as-object-literal" }, { include: "#decl-block" }, { include: "#label" }, { include: "#expression" }, { include: "#punctuation-semicolon" }, { include: "#string" }, { include: "#comment" }] }, string: { patterns: [{ include: "#qstring-single" }, { include: "#qstring-double" }, { include: "#template" }] }, "string-character-escape": { match: "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)", name: "constant.character.escape.tsx" }, "super-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)", name: "variable.language.super.tsx" }, "support-function-call-identifiers": { patterns: [{ include: "#literal" }, { include: "#support-objects" }, { include: "#object-identifiers" }, { include: "#punctuation-accessor" }, { match: "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))", name: "keyword.operator.expression.import.tsx" }] }, "support-objects": { patterns: [{ match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)", name: "variable.language.arguments.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)", name: "support.class.promise.tsx" }, { captures: { 1: { name: "keyword.control.import.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" }, 4: { name: "support.variable.property.importmeta.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)" }, { captures: { 1: { name: "keyword.operator.new.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" }, 4: { name: "support.variable.property.target.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)" }, { captures: { 1: { name: "punctuation.accessor.tsx" }, 2: { name: "punctuation.accessor.optional.tsx" }, 3: { name: "support.variable.property.tsx" }, 4: { name: "support.constant.tsx" } }, match: `(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:
528
+ (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())
529
+ |
530
+ (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))` }, { captures: { 1: { name: "support.type.object.module.tsx" }, 2: { name: "support.type.object.module.tsx" }, 3: { name: "punctuation.accessor.tsx" }, 4: { name: "punctuation.accessor.optional.tsx" }, 5: { name: "support.type.object.module.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)" }] }, "switch-statement": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "switch-statement.expr.tsx", patterns: [{ include: "#comment" }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", beginCaptures: { 1: { name: "keyword.control.switch.tsx" }, 2: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, name: "switch-expression.expr.tsx", patterns: [{ include: "#expression" }] }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "(?=\\})", name: "switch-block.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.control.switch.tsx" } }, end: "(?=:)", name: "case-clause.expr.tsx", patterns: [{ include: "#expression" }] }, { begin: "(:)\\s*(\\{)", beginCaptures: { 1: { name: "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" }, 2: { name: "meta.block.tsx punctuation.definition.block.tsx" } }, contentName: "meta.block.tsx", end: "\\}", endCaptures: { 0: { name: "meta.block.tsx punctuation.definition.block.tsx" } }, patterns: [{ include: "#statements" }] }, { captures: { 0: { name: "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" } }, match: "(:)" }, { include: "#statements" }] }] }, template: { patterns: [{ include: "#template-call" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?(`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.tsx" }, 2: { name: "string.template.tsx punctuation.definition.string.template.begin.tsx" } }, contentName: "string.template.tsx", end: "`", endCaptures: { 0: { name: "string.template.tsx punctuation.definition.string.template.end.tsx" } }, patterns: [{ include: "#template-substitution-element" }, { include: "#string-character-escape" }] }] }, "template-call": { patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", end: "(?=`)", patterns: [{ begin: "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", end: "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", patterns: [{ include: "#support-function-call-identifiers" }, { match: "([_$[:alpha:]][_$[:alnum:]]*)", name: "entity.name.function.tagged-template.tsx" }] }, { include: "#type-arguments" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.tsx" } }, end: "(?=`)", patterns: [{ include: "#type-arguments" }] }] }, "template-substitution-element": { begin: "\\$\\{", beginCaptures: { 0: { name: "punctuation.definition.template-expression.begin.tsx" } }, contentName: "meta.embedded.line.tsx", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.template-expression.end.tsx" } }, name: "meta.template.expression.tsx", patterns: [{ include: "#expression" }] }, "template-type": { patterns: [{ include: "#template-call" }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)?(`)", beginCaptures: { 1: { name: "entity.name.function.tagged-template.tsx" }, 2: { name: "string.template.tsx punctuation.definition.string.template.begin.tsx" } }, contentName: "string.template.tsx", end: "`", endCaptures: { 0: { name: "string.template.tsx punctuation.definition.string.template.end.tsx" } }, patterns: [{ include: "#template-type-substitution-element" }, { include: "#string-character-escape" }] }] }, "template-type-substitution-element": { begin: "\\$\\{", beginCaptures: { 0: { name: "punctuation.definition.template-expression.begin.tsx" } }, contentName: "meta.embedded.line.tsx", end: "\\}", endCaptures: { 0: { name: "punctuation.definition.template-expression.end.tsx" } }, name: "meta.template.expression.tsx", patterns: [{ include: "#type" }] }, "ternary-expression": { begin: "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", beginCaptures: { 1: { name: "keyword.operator.ternary.tsx" } }, end: "\\s*(:)", endCaptures: { 1: { name: "keyword.operator.ternary.tsx" } }, patterns: [{ include: "#expression" }] }, "this-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)", name: "variable.language.this.tsx" }, type: { patterns: [{ include: "#comment" }, { include: "#type-string" }, { include: "#numeric-literal" }, { include: "#type-primitive" }, { include: "#type-builtin-literals" }, { include: "#type-parameters" }, { include: "#type-tuple" }, { include: "#type-object" }, { include: "#type-operators" }, { include: "#type-conditional" }, { include: "#type-fn-type-parameters" }, { include: "#type-paren-or-function-parameters" }, { include: "#type-function-return-type" }, { captures: { 1: { name: "storage.modifier.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*" }, { include: "#type-name" }] }, "type-alias-declaration": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.type.tsx" }, 4: { name: "entity.name.type.alias.tsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", name: "meta.type.declaration.tsx", patterns: [{ include: "#comment" }, { include: "#type-parameters" }, { begin: "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" }, 2: { name: "keyword.control.intrinsic.tsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }, { begin: "(=)\\s*", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type" }] }] }, "type-annotation": { patterns: [{ begin: "(:)(?=\\s*\\S)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }, { begin: "(:)", beginCaptures: { 1: { name: "keyword.operator.type.annotation.tsx" } }, end: "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", name: "meta.type.annotation.tsx", patterns: [{ include: "#type" }] }] }, "type-arguments": { begin: "\\<", beginCaptures: { 0: { name: "punctuation.definition.typeparameters.begin.tsx" } }, end: "\\>", endCaptures: { 0: { name: "punctuation.definition.typeparameters.end.tsx" } }, name: "meta.type.parameters.tsx", patterns: [{ include: "#type-arguments-body" }] }, "type-arguments-body": { patterns: [{ captures: { 0: { name: "keyword.operator.type.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "type-builtin-literals": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.builtin.tsx" }, "type-conditional": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", beginCaptures: { 1: { name: "storage.modifier.tsx" } }, end: "(?<=:)", patterns: [{ begin: "\\?", beginCaptures: { 0: { name: "keyword.operator.ternary.tsx" } }, end: ":", endCaptures: { 0: { name: "keyword.operator.ternary.tsx" } }, patterns: [{ include: "#type" }] }, { include: "#type" }] }] }, "type-fn-type-parameters": { patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", beginCaptures: { 1: { name: "meta.type.constructor.tsx storage.modifier.tsx" }, 2: { name: "meta.type.constructor.tsx keyword.control.new.tsx" } }, end: "(?<=>)", patterns: [{ include: "#comment" }, { include: "#type-parameters" }] }, { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", beginCaptures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.control.new.tsx" } }, end: "(?<=\\))", name: "meta.type.constructor.tsx", patterns: [{ include: "#function-parameters" }] }, { begin: `(?x)(
531
+ (?=
532
+ [(]\\s*(
533
+ ([)]) |
534
+ (\\.\\.\\.) |
535
+ ([_$[:alnum:]]+\\s*(
536
+ ([:,?=])|
537
+ ([)]\\s*=>)
538
+ ))
539
+ )
540
+ )
541
+ )`, end: "(?<=\\))", name: "meta.type.function.tsx", patterns: [{ include: "#function-parameters" }] }] }, "type-function-return-type": { patterns: [{ begin: "(=>)(?=\\s*\\S)", beginCaptures: { 1: { name: "storage.type.function.arrow.tsx" } }, end: "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", name: "meta.type.function.return.tsx", patterns: [{ include: "#type-function-return-type-core" }] }, { begin: "=>", beginCaptures: { 0: { name: "storage.type.function.arrow.tsx" } }, end: "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", name: "meta.type.function.return.tsx", patterns: [{ include: "#type-function-return-type-core" }] }] }, "type-function-return-type-core": { patterns: [{ include: "#comment" }, { begin: "(?<==>)(?=\\s*\\{)", end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { include: "#type-predicate-operator" }, { include: "#type" }] }, "type-infer": { patterns: [{ captures: { 1: { name: "keyword.operator.expression.infer.tsx" }, 2: { name: "entity.name.type.tsx" }, 3: { name: "keyword.operator.expression.extends.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", name: "meta.type.infer.tsx" }] }, "type-name": { patterns: [{ begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" }, 4: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" } }, contentName: "meta.type.parameters.tsx", end: "(>)", endCaptures: { 1: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" } }, patterns: [{ include: "#type-arguments-body" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", beginCaptures: { 1: { name: "entity.name.type.tsx" }, 2: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" } }, contentName: "meta.type.parameters.tsx", end: "(>)", endCaptures: { 1: { name: "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" } }, patterns: [{ include: "#type-arguments-body" }] }, { captures: { 1: { name: "entity.name.type.module.tsx" }, 2: { name: "punctuation.accessor.tsx" }, 3: { name: "punctuation.accessor.optional.tsx" } }, match: "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))" }, { match: "[_$[:alpha:]][_$[:alnum:]]*", name: "entity.name.type.tsx" }] }, "type-object": { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.block.tsx" } }, name: "meta.object.type.tsx", patterns: [{ include: "#comment" }, { include: "#method-declaration" }, { include: "#indexer-declaration" }, { include: "#indexer-mapped-type-declaration" }, { include: "#field-declaration" }, { include: "#type-annotation" }, { begin: "\\.\\.\\.", beginCaptures: { 0: { name: "keyword.operator.spread.tsx" } }, end: "(?=\\}|;|,|$)|(?<=\\})", patterns: [{ include: "#type" }] }, { include: "#punctuation-comma" }, { include: "#punctuation-semicolon" }, { include: "#type" }] }, "type-operators": { patterns: [{ include: "#typeof-operator" }, { include: "#type-infer" }, { begin: "([&|])(?=\\s*\\{)", beginCaptures: { 0: { name: "keyword.operator.type.tsx" } }, end: "(?<=\\})", patterns: [{ include: "#type-object" }] }, { begin: "[&|]", beginCaptures: { 0: { name: "keyword.operator.type.tsx" } }, end: "(?=\\S)" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.keyof.tsx" }, { match: "(\\?|\\:)", name: "keyword.operator.ternary.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()", name: "keyword.operator.expression.import.tsx" }] }, "type-parameters": { begin: "(<)", beginCaptures: { 1: { name: "punctuation.definition.typeparameters.begin.tsx" } }, end: "(>)", endCaptures: { 1: { name: "punctuation.definition.typeparameters.end.tsx" } }, name: "meta.type.parameters.tsx", patterns: [{ include: "#comment" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "storage.modifier.tsx" }, { include: "#type" }, { include: "#punctuation-comma" }, { match: "(=)(?!>)", name: "keyword.operator.assignment.tsx" }] }, "type-paren-or-function-parameters": { begin: "\\(", beginCaptures: { 0: { name: "meta.brace.round.tsx" } }, end: "\\)", endCaptures: { 0: { name: "meta.brace.round.tsx" } }, name: "meta.type.paren.cover.tsx", patterns: [{ captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "entity.name.function.tsx variable.language.this.tsx" }, 4: { name: "entity.name.function.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: `(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(
542
+ (<) |
543
+ ([(]\\s*(
544
+ ([)]) |
545
+ (\\.\\.\\.) |
546
+ ([_$[:alnum:]]+\\s*(
547
+ ([:,?=])|
548
+ ([)]\\s*=>)
549
+ ))
550
+ ))
551
+ )) |
552
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
553
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))` }, { captures: { 1: { name: "storage.modifier.tsx" }, 2: { name: "keyword.operator.rest.tsx" }, 3: { name: "variable.parameter.tsx variable.language.this.tsx" }, 4: { name: "variable.parameter.tsx" }, 5: { name: "keyword.operator.optional.tsx" } }, match: "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)" }, { include: "#type-annotation" }, { match: ",", name: "punctuation.separator.parameter.tsx" }, { include: "#type" }] }, "type-predicate-operator": { patterns: [{ captures: { 1: { name: "keyword.operator.type.asserts.tsx" }, 2: { name: "variable.parameter.tsx variable.language.this.tsx" }, 3: { name: "variable.parameter.tsx" }, 4: { name: "keyword.operator.expression.is.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { captures: { 1: { name: "keyword.operator.type.asserts.tsx" }, 2: { name: "variable.parameter.tsx variable.language.this.tsx" }, 3: { name: "variable.parameter.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.type.asserts.tsx" }, { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "keyword.operator.expression.is.tsx" }] }, "type-primitive": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "support.type.primitive.tsx" }, "type-string": { patterns: [{ include: "#qstring-single" }, { include: "#qstring-double" }, { include: "#template-type" }] }, "type-tuple": { begin: "\\[", beginCaptures: { 0: { name: "meta.brace.square.tsx" } }, end: "\\]", endCaptures: { 0: { name: "meta.brace.square.tsx" } }, name: "meta.type.tuple.tsx", patterns: [{ match: "\\.\\.\\.", name: "keyword.operator.rest.tsx" }, { captures: { 1: { name: "entity.name.label.tsx" }, 2: { name: "keyword.operator.optional.tsx" }, 3: { name: "punctuation.separator.label.tsx" } }, match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)" }, { include: "#type" }, { include: "#punctuation-comma" }] }, "typeof-operator": { begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", beginCaptures: { 0: { name: "keyword.operator.expression.typeof.tsx" } }, end: "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", patterns: [{ include: "#type-arguments" }, { include: "#expression" }] }, "undefined-literal": { match: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", name: "constant.language.undefined.tsx" }, "var-expr": { patterns: [{ begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?=\\S)" }, { include: "#destructuring-variable" }, { include: "#var-single-variable" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*(?=$|\\/\\/)", beginCaptures: { 1: { name: "punctuation.separator.comma.tsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#destructuring-variable" }, { include: "#var-single-variable" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }, { begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?=\\S)" }, { include: "#destructuring-const" }, { include: "#var-single-const" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*(?=$|\\/\\/)", beginCaptures: { 1: { name: "punctuation.separator.comma.tsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#destructuring-const" }, { include: "#var-single-const" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }, { begin: "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", name: "meta.var.expr.tsx", patterns: [{ begin: "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", beginCaptures: { 1: { name: "keyword.control.export.tsx" }, 2: { name: "storage.modifier.tsx" }, 3: { name: "storage.type.tsx" } }, end: "(?=\\S)" }, { include: "#var-single-const" }, { include: "#variable-initializer" }, { include: "#comment" }, { begin: "(,)\\s*((?!\\S)|(?=\\/\\/))", beginCaptures: { 1: { name: "punctuation.separator.comma.tsx" } }, end: "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", patterns: [{ include: "#single-line-comment-consuming-line-ending" }, { include: "#comment" }, { include: "#var-single-const" }, { include: "#punctuation-comma" }] }, { include: "#punctuation-comma" }] }] }, "var-single-const": { patterns: [{ begin: `(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*
554
+ # function assignment |
555
+ (=\\s*(
556
+ ((async\\s+)?(
557
+ (function\\s*[(<*]) |
558
+ (function\\s+) |
559
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
560
+ )) |
561
+ ((async\\s*)?(
562
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
563
+
564
+ (
565
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
566
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
567
+ (
568
+ ([)]\\s*:) |
569
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
570
+ )
571
+ ) |
572
+ (
573
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
574
+ ) |
575
+ # arrow function possible to detect only with => on same line
576
+ (
577
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
578
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
579
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
580
+ \\s*=>
581
+ )
582
+ ))
583
+ )) |
584
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
585
+ (:\\s*(
586
+ (<) |
587
+ ([(]\\s*(
588
+ ([)]) |
589
+ (\\.\\.\\.) |
590
+ ([_$[:alnum:]]+\\s*(
591
+ ([:,?=])|
592
+ ([)]\\s*=>)
593
+ ))
594
+ ))
595
+ )) |
596
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
597
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
598
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
599
+ ((async\\s+)?(
600
+ (function\\s*[(<*]) |
601
+ (function\\s+) |
602
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
603
+ )) |
604
+ ((async\\s*)?(
605
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
606
+
607
+ (
608
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
609
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
610
+ (
611
+ ([)]\\s*:) |
612
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
613
+ )
614
+ ) |
615
+ (
616
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
617
+ ) |
618
+ # arrow function possible to detect only with => on same line
619
+ (
620
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
621
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
622
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
623
+ \\s*=>
624
+ )
625
+ ))
626
+ )))`, beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable": { patterns: [{ begin: `(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*
627
+ # function assignment |
628
+ (=\\s*(
629
+ ((async\\s+)?(
630
+ (function\\s*[(<*]) |
631
+ (function\\s+) |
632
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
633
+ )) |
634
+ ((async\\s*)?(
635
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
636
+
637
+ (
638
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
639
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
640
+ (
641
+ ([)]\\s*:) |
642
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
643
+ )
644
+ ) |
645
+ (
646
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
647
+ ) |
648
+ # arrow function possible to detect only with => on same line
649
+ (
650
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
651
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
652
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
653
+ \\s*=>
654
+ )
655
+ ))
656
+ )) |
657
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
658
+ (:\\s*(
659
+ (<) |
660
+ ([(]\\s*(
661
+ ([)]) |
662
+ (\\.\\.\\.) |
663
+ ([_$[:alnum:]]+\\s*(
664
+ ([:,?=])|
665
+ ([)]\\s*=>)
666
+ ))
667
+ ))
668
+ )) |
669
+ (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |
670
+ (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |
671
+ (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(
672
+ ((async\\s+)?(
673
+ (function\\s*[(<*]) |
674
+ (function\\s+) |
675
+ ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)
676
+ )) |
677
+ ((async\\s*)?(
678
+ ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |
679
+
680
+ (
681
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
682
+ [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*
683
+ (
684
+ ([)]\\s*:) |
685
+ ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)
686
+ )
687
+ ) |
688
+ (
689
+ [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]
690
+ ) |
691
+ # arrow function possible to detect only with => on same line
692
+ (
693
+ (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?
694
+ \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\)
695
+ (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?
696
+ \\s*=>
697
+ )
698
+ ))
699
+ )))`, beginCaptures: { 1: { name: "meta.definition.variable.tsx entity.name.function.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.constant.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }, { begin: "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", beginCaptures: { 1: { name: "meta.definition.variable.tsx variable.other.readwrite.tsx" }, 2: { name: "keyword.operator.definiteassignment.tsx" } }, end: "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", name: "meta.var-single-variable.expr.tsx", patterns: [{ include: "#var-single-variable-type-annotation" }] }] }, "var-single-variable-type-annotation": { patterns: [{ include: "#type-annotation" }, { include: "#string" }, { include: "#comment" }] }, "variable-initializer": { patterns: [{ begin: "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", patterns: [{ include: "#expression" }] }, { begin: "(?<!=|!)(=)(?!=)", beginCaptures: { 1: { name: "keyword.operator.assignment.tsx" } }, end: "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", patterns: [{ include: "#expression" }] }] } }, scopeName: "source.tsx" });
700
+ var n = [
701
+ e
702
+ ];
703
+ export {
704
+ n as default
705
+ };