@elice/material-exercise 1.220803.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 (836) hide show
  1. package/README.md +41 -0
  2. package/cjs/components/index.d.ts +2 -0
  3. package/cjs/components/material-exercise/MaterialExercise.d.ts +6 -0
  4. package/cjs/components/material-exercise/MaterialExercise.js +170 -0
  5. package/cjs/components/material-exercise/MaterialExercise.styled.d.ts +36 -0
  6. package/cjs/components/material-exercise/MaterialExercise.styled.js +89 -0
  7. package/cjs/components/material-exercise/context/ExerciseIntlProvider.d.ts +12 -0
  8. package/cjs/components/material-exercise/context/ExerciseIntlProvider.js +52 -0
  9. package/cjs/components/material-exercise/context/ExerciseProvider.d.ts +11 -0
  10. package/cjs/components/material-exercise/context/ExerciseProvider.js +166 -0
  11. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.d.ts +15 -0
  12. package/cjs/components/material-exercise/context/ExerciseProviderNoImage.js +62 -0
  13. package/cjs/components/material-exercise/context/context.d.ts +7 -0
  14. package/cjs/components/material-exercise/context/context.js +13 -0
  15. package/cjs/components/material-exercise/context/index.d.ts +7 -0
  16. package/cjs/components/material-exercise/context/locales/noImage.en.json.js +5 -0
  17. package/cjs/components/material-exercise/context/locales/noImage.ko.json.js +5 -0
  18. package/cjs/components/material-exercise/context/recoil.d.ts +144 -0
  19. package/cjs/components/material-exercise/context/recoil.js +637 -0
  20. package/cjs/components/material-exercise/context/recoilTypes.d.ts +95 -0
  21. package/cjs/components/material-exercise/context/recoilTypes.js +29 -0
  22. package/cjs/components/material-exercise/context/subjects.d.ts +13 -0
  23. package/cjs/components/material-exercise/context/subjects.js +25 -0
  24. package/cjs/components/material-exercise/context/types.d.ts +96 -0
  25. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +7 -0
  26. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +150 -0
  27. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +10 -0
  28. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +41 -0
  29. package/cjs/components/material-exercise/exercise-code-history/index.d.ts +2 -0
  30. package/cjs/components/material-exercise/exercise-file/ExerciseFile.d.ts +8 -0
  31. package/cjs/components/material-exercise/exercise-file/ExerciseFile.js +92 -0
  32. package/cjs/components/material-exercise/exercise-file/index.d.ts +1 -0
  33. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.d.ts +6 -0
  34. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +337 -0
  35. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.d.ts +6 -0
  36. package/cjs/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +43 -0
  37. package/cjs/components/material-exercise/exercise-file-editor/ExerciseMobileFileEditor.d.ts +8 -0
  38. package/cjs/components/material-exercise/exercise-file-editor/index.d.ts +1 -0
  39. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.d.ts +3 -0
  40. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +79 -0
  41. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.d.ts +3 -0
  42. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +90 -0
  43. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +3 -0
  44. package/cjs/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +21 -0
  45. package/cjs/components/material-exercise/exercise-file-tabs/index.d.ts +2 -0
  46. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +5 -0
  47. package/cjs/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +5 -0
  48. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.d.ts +5 -0
  49. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +381 -0
  50. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +3 -0
  51. package/cjs/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +21 -0
  52. package/cjs/components/material-exercise/exercise-file-tree/index.d.ts +2 -0
  53. package/cjs/components/material-exercise/exercise-file-tree/locales/en.json.js +5 -0
  54. package/cjs/components/material-exercise/exercise-file-tree/locales/ko.json.js +5 -0
  55. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.d.ts +3 -0
  56. package/cjs/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +50 -0
  57. package/cjs/components/material-exercise/exercise-file-viewer/index.d.ts +1 -0
  58. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +3 -0
  59. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +47 -0
  60. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +3 -0
  61. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +137 -0
  62. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.d.ts +3 -0
  63. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +120 -0
  64. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.d.ts +3 -0
  65. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuReset.js +98 -0
  66. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.d.ts +3 -0
  67. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +231 -0
  68. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.d.ts +13 -0
  69. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +61 -0
  70. package/cjs/components/material-exercise/exercise-menu/index.d.ts +1 -0
  71. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +5 -0
  72. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +5 -0
  73. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.d.ts +3 -0
  74. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +48 -0
  75. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +3 -0
  76. package/cjs/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +16 -0
  77. package/cjs/components/material-exercise/exercise-multilang-dropdown/index.d.ts +2 -0
  78. package/cjs/components/material-exercise/exercise-multilang-dropdown/types.d.ts +39 -0
  79. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.d.ts +3 -0
  80. package/cjs/components/material-exercise/exercise-preview/ExercisePreview.js +118 -0
  81. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.d.ts +5 -0
  82. package/cjs/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +47 -0
  83. package/cjs/components/material-exercise/exercise-preview/index.d.ts +1 -0
  84. package/cjs/components/material-exercise/exercise-preview/locales/en.json.js +5 -0
  85. package/cjs/components/material-exercise/exercise-preview/locales/ko.json.js +5 -0
  86. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.d.ts +5 -0
  87. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +130 -0
  88. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.d.ts +3 -0
  89. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +31 -0
  90. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.d.ts +3 -0
  91. package/cjs/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +113 -0
  92. package/cjs/components/material-exercise/exercise-rightpane/index.d.ts +1 -0
  93. package/cjs/components/material-exercise/exercise-rightpane/locales/en.json.js +5 -0
  94. package/cjs/components/material-exercise/exercise-rightpane/locales/ko.json.js +5 -0
  95. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.d.ts +7 -0
  96. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.js +33 -0
  97. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.d.ts +9 -0
  98. package/cjs/components/material-exercise/exercise-room/ExerciseRoom.styled.js +44 -0
  99. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.d.ts +8 -0
  100. package/cjs/components/material-exercise/exercise-room/ExerciseRoomDetail.js +500 -0
  101. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.d.ts +7 -0
  102. package/cjs/components/material-exercise/exercise-room/ExerciseRoomList.js +195 -0
  103. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.d.ts +2 -0
  104. package/cjs/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +36 -0
  105. package/cjs/components/material-exercise/exercise-room/helpers/index.d.ts +1 -0
  106. package/cjs/components/material-exercise/exercise-room/index.d.ts +2 -0
  107. package/cjs/components/material-exercise/exercise-room/locales/en.json.js +5 -0
  108. package/cjs/components/material-exercise/exercise-room/locales/ko.json.js +5 -0
  109. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.d.ts +6 -0
  110. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +549 -0
  111. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.d.ts +17 -0
  112. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +13 -0
  113. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.d.ts +3 -0
  114. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +46 -0
  115. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +3 -0
  116. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +112 -0
  117. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +3 -0
  118. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +269 -0
  119. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.d.ts +3 -0
  120. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +187 -0
  121. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.d.ts +5 -0
  122. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +25 -0
  123. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.d.ts +3 -0
  124. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +65 -0
  125. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.d.ts +3 -0
  126. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +81 -0
  127. package/cjs/components/material-exercise/exercise-runner/index.d.ts +1 -0
  128. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +5 -0
  129. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +5 -0
  130. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +6 -0
  131. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +341 -0
  132. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.d.ts +9 -0
  133. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +45 -0
  134. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.d.ts +6 -0
  135. package/cjs/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +119 -0
  136. package/cjs/components/material-exercise/exercise-submit-history/index.d.ts +2 -0
  137. package/cjs/components/material-exercise/index.d.ts +3 -0
  138. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.d.ts +10 -0
  139. package/cjs/components/shared/exercise-menu-button/ExerciseMenuButton.js +52 -0
  140. package/cjs/components/shared/exercise-menu-button/index.d.ts +2 -0
  141. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.d.ts +3 -0
  142. package/cjs/components/shared/exercise-shimmer/ExerciseFileShimmer.js +55 -0
  143. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.d.ts +6 -0
  144. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +37 -0
  145. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.d.ts +3 -0
  146. package/cjs/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +25 -0
  147. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.d.ts +6 -0
  148. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +40 -0
  149. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.d.ts +3 -0
  150. package/cjs/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +31 -0
  151. package/cjs/components/shared/exercise-shimmer/index.d.ts +5 -0
  152. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.d.ts +3 -0
  153. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +16 -0
  154. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +8 -0
  155. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +16 -0
  156. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +8 -0
  157. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.js +23 -0
  158. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.d.ts +6 -0
  159. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +29 -0
  160. package/cjs/components/shared/exercise-version-list/index.d.ts +2 -0
  161. package/cjs/components/shared/file-icon/FileIcon.d.ts +10 -0
  162. package/cjs/components/shared/file-icon/FileIcon.js +47 -0
  163. package/cjs/components/shared/file-icon/index.d.ts +2 -0
  164. package/cjs/components/shared/file-tabs/FileTab.d.ts +10 -0
  165. package/cjs/components/shared/file-tabs/FileTab.js +125 -0
  166. package/cjs/components/shared/file-tabs/FileTab.styled.d.ts +12 -0
  167. package/cjs/components/shared/file-tabs/FileTab.styled.js +52 -0
  168. package/cjs/components/shared/file-tabs/FileTabs.d.ts +15 -0
  169. package/cjs/components/shared/file-tabs/FileTabs.js +113 -0
  170. package/cjs/components/shared/file-tabs/FileTabs.styled.d.ts +6 -0
  171. package/cjs/components/shared/file-tabs/FileTabs.styled.js +25 -0
  172. package/cjs/components/shared/file-tabs/index.d.ts +2 -0
  173. package/cjs/components/shared/file-tabs/util.d.ts +10 -0
  174. package/cjs/components/shared/file-tabs/util.js +32 -0
  175. package/cjs/components/shared/file-tree/FileTree.d.ts +69 -0
  176. package/cjs/components/shared/file-tree/FileTree.js +45 -0
  177. package/cjs/components/shared/file-tree/FileTreeConfig.d.ts +13 -0
  178. package/cjs/components/shared/file-tree/FileTreeConfig.js +64 -0
  179. package/cjs/components/shared/file-tree/FileTreeList.d.ts +13 -0
  180. package/cjs/components/shared/file-tree/FileTreeList.js +135 -0
  181. package/cjs/components/shared/file-tree/FileTreeListItemContent.d.ts +9 -0
  182. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +250 -0
  183. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +37 -0
  184. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +105 -0
  185. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.d.ts +15 -0
  186. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +303 -0
  187. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +3 -0
  188. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +25 -0
  189. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.d.ts +10 -0
  190. package/cjs/components/shared/file-tree/FileTreeListItemContentMenu.js +309 -0
  191. package/cjs/components/shared/file-tree/FileTreeListItems.d.ts +8 -0
  192. package/cjs/components/shared/file-tree/FileTreeListItems.js +210 -0
  193. package/cjs/components/shared/file-tree/FileTreeListItems.styled.d.ts +2 -0
  194. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +19 -0
  195. package/cjs/components/shared/file-tree/FileTreeToolbar.d.ts +6 -0
  196. package/cjs/components/shared/file-tree/FileTreeToolbar.js +128 -0
  197. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.d.ts +1 -0
  198. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +16 -0
  199. package/cjs/components/shared/file-tree/context/FileTreeContext.d.ts +127 -0
  200. package/cjs/components/shared/file-tree/context/FileTreeContext.js +202 -0
  201. package/cjs/components/shared/file-tree/context/index.d.ts +1 -0
  202. package/cjs/components/shared/file-tree/index.d.ts +15 -0
  203. package/cjs/components/shared/file-tree/interface/index.d.ts +47 -0
  204. package/cjs/components/shared/file-tree/locales/en.json.js +5 -0
  205. package/cjs/components/shared/file-tree/locales/ko.json.js +5 -0
  206. package/cjs/components/shared/file-tree/utils/fileTreeFiles.d.ts +2 -0
  207. package/cjs/components/shared/file-tree/utils/fileTreeFiles.js +41 -0
  208. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.d.ts +68 -0
  209. package/cjs/components/shared/file-tree/utils/fileTreeGenerator.js +250 -0
  210. package/cjs/components/shared/file-tree/utils/fileTreeInput.d.ts +4 -0
  211. package/cjs/components/shared/file-tree/utils/fileTreeInput.js +13 -0
  212. package/cjs/components/shared/file-tree/utils/fileTreeItem.d.ts +5 -0
  213. package/cjs/components/shared/file-tree/utils/fileTreeItem.js +14 -0
  214. package/cjs/components/shared/file-tree/utils/fileTreePath.d.ts +11 -0
  215. package/cjs/components/shared/file-tree/utils/fileTreePath.js +18 -0
  216. package/cjs/components/shared/file-tree/utils/index.d.ts +5 -0
  217. package/cjs/components/shared/file-viewer/FileViewer.d.ts +8 -0
  218. package/cjs/components/shared/file-viewer/FileViewer.js +169 -0
  219. package/cjs/components/shared/file-viewer/FileViewerCsv.d.ts +4 -0
  220. package/cjs/components/shared/file-viewer/FileViewerCsv.js +46 -0
  221. package/cjs/components/shared/file-viewer/FileViewerImage.d.ts +4 -0
  222. package/cjs/components/shared/file-viewer/FileViewerImage.js +39 -0
  223. package/cjs/components/shared/file-viewer/FileViewerIpynb.d.ts +4 -0
  224. package/cjs/components/shared/file-viewer/FileViewerIpynb.js +45 -0
  225. package/cjs/components/shared/file-viewer/FileViewerNonViewable.d.ts +7 -0
  226. package/cjs/components/shared/file-viewer/FileViewerNonViewable.js +132 -0
  227. package/cjs/components/shared/file-viewer/FileViewerText.d.ts +4 -0
  228. package/cjs/components/shared/file-viewer/FileViewerText.js +56 -0
  229. package/cjs/components/shared/file-viewer/index.d.ts +2 -0
  230. package/cjs/components/shared/file-viewer/locales/en.json.js +5 -0
  231. package/cjs/components/shared/file-viewer/locales/ko.json.js +5 -0
  232. package/cjs/components/shared/file-viewer/locales/nonViewable.en.json.js +5 -0
  233. package/cjs/components/shared/file-viewer/locales/nonViewable.ko.json.js +5 -0
  234. package/cjs/components/shared/material-modal/MaterialModal.d.ts +8 -0
  235. package/cjs/components/shared/material-modal/MaterialModal.js +41 -0
  236. package/cjs/components/shared/material-modal/MaterialModal.styled.d.ts +7 -0
  237. package/cjs/components/shared/material-modal/MaterialModal.styled.js +33 -0
  238. package/cjs/components/shared/material-modal/index.d.ts +1 -0
  239. package/cjs/components/shared/monaco-editor/MonacoEditor.d.ts +86 -0
  240. package/cjs/components/shared/monaco-editor/MonacoEditor.js +381 -0
  241. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.d.ts +3 -0
  242. package/cjs/components/shared/monaco-editor/MonacoEditorLazy.js +25 -0
  243. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.d.ts +9 -0
  244. package/cjs/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +311 -0
  245. package/cjs/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +13 -0
  246. package/cjs/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +13 -0
  247. package/cjs/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +13 -0
  248. package/cjs/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +14 -0
  249. package/cjs/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +13 -0
  250. package/cjs/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +13 -0
  251. package/cjs/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +13 -0
  252. package/cjs/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +13 -0
  253. package/cjs/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +13 -0
  254. package/cjs/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +13 -0
  255. package/cjs/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +13 -0
  256. package/cjs/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +14 -0
  257. package/cjs/components/shared/monaco-editor/constants/grammars/index.d.ts +10 -0
  258. package/cjs/components/shared/monaco-editor/constants/grammars/index.js +163 -0
  259. package/cjs/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +13 -0
  260. package/cjs/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +13 -0
  261. package/cjs/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +13 -0
  262. package/cjs/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +12 -0
  263. package/cjs/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +13 -0
  264. package/cjs/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +14 -0
  265. package/cjs/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +13 -0
  266. package/cjs/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +13 -0
  267. package/cjs/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +13 -0
  268. package/cjs/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +14 -0
  269. package/cjs/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +13 -0
  270. package/cjs/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +13 -0
  271. package/cjs/components/shared/monaco-editor/constants/index.d.ts +2 -0
  272. package/cjs/components/shared/monaco-editor/constants/monaco/index.d.ts +1 -0
  273. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.d.ts +29 -0
  274. package/cjs/components/shared/monaco-editor/constants/monaco/preferences.js +48 -0
  275. package/cjs/components/shared/monaco-editor/constants/themes/abyss.json.js +11 -0
  276. package/cjs/components/shared/monaco-editor/constants/themes/elice.json.js +13 -0
  277. package/cjs/components/shared/monaco-editor/constants/themes/index.d.ts +7 -0
  278. package/cjs/components/shared/monaco-editor/constants/themes/index.js +87 -0
  279. package/cjs/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +12 -0
  280. package/cjs/components/shared/monaco-editor/constants/themes/monokai.json.js +11 -0
  281. package/cjs/components/shared/monaco-editor/constants/themes/quietlight.json.js +11 -0
  282. package/cjs/components/shared/monaco-editor/constants/themes/red.json.js +11 -0
  283. package/cjs/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +11 -0
  284. package/cjs/components/shared/monaco-editor/constants/themes/solarized-light.json.js +11 -0
  285. package/cjs/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +11 -0
  286. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +12 -0
  287. package/cjs/components/shared/monaco-editor/constants/themes/vs-dark.json.js +13 -0
  288. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +13 -0
  289. package/cjs/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +10 -0
  290. package/cjs/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +13 -0
  291. package/cjs/components/shared/monaco-editor/constants/themes/vs-light.json.js +13 -0
  292. package/cjs/components/shared/monaco-editor/editor-hooks/index.d.ts +6 -0
  293. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.d.ts +10 -0
  294. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +38 -0
  295. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.d.ts +12 -0
  296. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +46 -0
  297. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.d.ts +12 -0
  298. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +35 -0
  299. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.d.ts +20 -0
  300. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +179 -0
  301. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.d.ts +9 -0
  302. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +47 -0
  303. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.d.ts +6 -0
  304. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +31 -0
  305. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.d.ts +3 -0
  306. package/cjs/components/shared/monaco-editor/editor-languages/css/formatter.js +37 -0
  307. package/cjs/components/shared/monaco-editor/editor-languages/css/index.d.ts +9 -0
  308. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +54 -0
  309. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.d.ts +3 -0
  310. package/cjs/components/shared/monaco-editor/editor-languages/html/formatter.js +37 -0
  311. package/cjs/components/shared/monaco-editor/editor-languages/html/index.d.ts +9 -0
  312. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +52 -0
  313. package/cjs/components/shared/monaco-editor/editor-languages/index.d.ts +1 -0
  314. package/cjs/components/shared/monaco-editor/editor-languages/index.js +13 -0
  315. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.d.ts +7 -0
  316. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +12 -0
  317. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.d.ts +5 -0
  318. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +14 -0
  319. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/index.d.ts +3 -0
  320. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.d.ts +5 -0
  321. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +14 -0
  322. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.d.ts +5 -0
  323. package/cjs/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +14 -0
  324. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.d.ts +3 -0
  325. package/cjs/components/shared/monaco-editor/editor-languages/typescript/formatter.js +37 -0
  326. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.d.ts +25 -0
  327. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +123 -0
  328. package/cjs/components/shared/monaco-editor/hooks/index.d.ts +1 -0
  329. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.d.ts +8 -0
  330. package/cjs/components/shared/monaco-editor/hooks/useEditorOptions.js +86 -0
  331. package/cjs/components/shared/monaco-editor/index.d.ts +6 -0
  332. package/cjs/components/shared/monaco-editor/locales/en.json.js +5 -0
  333. package/cjs/components/shared/monaco-editor/locales/ko.json.js +5 -0
  334. package/cjs/components/shared/monaco-editor/utils/grammar/index.d.ts +4 -0
  335. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +62 -0
  336. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.d.ts +4 -0
  337. package/cjs/components/shared/monaco-editor/utils/grammar/onigasm.js +19 -0
  338. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.d.ts +9 -0
  339. package/cjs/components/shared/monaco-editor/utils/grammar/textmate.js +89 -0
  340. package/cjs/components/shared/monaco-editor/utils/index.d.ts +2 -0
  341. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.d.ts +4 -0
  342. package/cjs/components/shared/monaco-editor/utils/monacoLanguage.js +77 -0
  343. package/cjs/components/shared/monaco-editor/utils/monacoPreference.d.ts +5 -0
  344. package/cjs/components/shared/monaco-editor/utils/monacoPreference.js +26 -0
  345. package/cjs/components/shared/monaco-editor/utils/prettier/config.d.ts +9 -0
  346. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +26 -0
  347. package/cjs/components/shared/monaco-editor/utils/prettier/index.d.ts +17 -0
  348. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +32 -0
  349. package/cjs/components/shared/monaco-editor/utils/remoteMarker/OnDisposed.d.ts +4 -0
  350. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteCursor.d.ts +49 -0
  351. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteCursor.js +97 -0
  352. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorManager.d.ts +48 -0
  353. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorManager.js +119 -0
  354. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorWidget.d.ts +29 -0
  355. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorWidget.js +181 -0
  356. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteSelection.d.ts +112 -0
  357. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteSelection.js +222 -0
  358. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteSelectionManager.d.ts +102 -0
  359. package/cjs/components/shared/monaco-editor/utils/remoteMarker/RemoteSelectionManager.js +154 -0
  360. package/cjs/components/shared/monaco-editor/utils/remoteMarker/index.d.ts +3 -0
  361. package/cjs/components/shared/monaco-editor/utils/remoteMarker/styles.d.ts +2 -0
  362. package/cjs/components/shared/monaco-editor/utils/remoteMarker/styles.js +19 -0
  363. package/cjs/components/shared/monaco-editor/utils/theme/convert.d.ts +22 -0
  364. package/cjs/components/shared/monaco-editor/utils/theme/convert.js +89 -0
  365. package/cjs/components/shared/monaco-editor/utils/theme/index.d.ts +4 -0
  366. package/cjs/components/shared/monaco-editor/utils/theme/index.js +18 -0
  367. package/cjs/components/shared/no-vnc/NoVnc.d.ts +19 -0
  368. package/cjs/components/shared/no-vnc/NoVnc.js +279 -0
  369. package/cjs/components/shared/no-vnc/NoVncLazy.d.ts +3 -0
  370. package/cjs/components/shared/no-vnc/NoVncLazy.js +20 -0
  371. package/cjs/components/shared/no-vnc/index.d.ts +1 -0
  372. package/cjs/components/shared/preview-container/PreviewContainer.d.ts +9 -0
  373. package/cjs/components/shared/preview-container/PreviewContainer.js +37 -0
  374. package/cjs/components/shared/preview-container/index.d.ts +2 -0
  375. package/cjs/components/shared/web-browser/WebBrowser.d.ts +11 -0
  376. package/cjs/components/shared/web-browser/WebBrowser.js +170 -0
  377. package/cjs/components/shared/web-browser/index.d.ts +1 -0
  378. package/cjs/components/shared/xterm/Xterm.d.ts +32 -0
  379. package/cjs/components/shared/xterm/Xterm.js +236 -0
  380. package/cjs/components/shared/xterm/XtermLazy.d.ts +3 -0
  381. package/cjs/components/shared/xterm/XtermLazy.js +20 -0
  382. package/cjs/components/shared/xterm/index.d.ts +1 -0
  383. package/cjs/components/shared/xterm/locales/en.json.js +5 -0
  384. package/cjs/components/shared/xterm/locales/ko.json.js +5 -0
  385. package/cjs/components/shared/xterm/utils/index.d.ts +5 -0
  386. package/cjs/components/shared/xterm/utils/index.js +14 -0
  387. package/cjs/constants/arduino.d.ts +35 -0
  388. package/cjs/constants/arduino.js +75 -0
  389. package/cjs/constants/index.d.ts +1 -0
  390. package/cjs/constants/shortcutKeyMap.d.ts +27 -0
  391. package/cjs/constants/shortcutKeyMap.js +76 -0
  392. package/cjs/constants/stylesheets.d.ts +29 -0
  393. package/cjs/constants/stylesheets.js +44 -0
  394. package/cjs/hooks/index.d.ts +7 -0
  395. package/cjs/hooks/useArduino.d.ts +14 -0
  396. package/cjs/hooks/useArduino.js +529 -0
  397. package/cjs/hooks/useExerciseFile.d.ts +8 -0
  398. package/cjs/hooks/useExerciseFile.js +48 -0
  399. package/cjs/hooks/useExericseShortcut.d.ts +5 -0
  400. package/cjs/hooks/useExericseShortcut.js +24 -0
  401. package/cjs/hooks/useMaterialExerciseFileUrl.d.ts +10 -0
  402. package/cjs/hooks/useMaterialExerciseFileUrl.js +61 -0
  403. package/cjs/hooks/useRunnerRoomWebSocket.d.ts +19 -0
  404. package/cjs/hooks/useRunnerRoomWebSocket.js +161 -0
  405. package/cjs/hooks/useStdioWebSocket.d.ts +35 -0
  406. package/cjs/hooks/useStdioWebSocket.js +217 -0
  407. package/cjs/hooks/useUsercodeEditWebSocket.d.ts +57 -0
  408. package/cjs/hooks/useUsercodeEditWebSocket.js +606 -0
  409. package/cjs/hooks/useUsercodeHistory.d.ts +9 -0
  410. package/cjs/hooks/useUsercodeHistory.js +133 -0
  411. package/cjs/index.d.ts +1 -0
  412. package/cjs/index.js +25 -0
  413. package/cjs/typings/arduino.d.ts +77 -0
  414. package/cjs/utils/arduino.d.ts +46 -0
  415. package/cjs/utils/arduino.js +86 -0
  416. package/cjs/utils/exerciseFile.d.ts +14 -0
  417. package/cjs/utils/exerciseFile.js +65 -0
  418. package/cjs/utils/index.d.ts +1 -0
  419. package/es/components/index.d.ts +2 -0
  420. package/es/components/material-exercise/MaterialExercise.d.ts +6 -0
  421. package/es/components/material-exercise/MaterialExercise.js +164 -0
  422. package/es/components/material-exercise/MaterialExercise.styled.d.ts +36 -0
  423. package/es/components/material-exercise/MaterialExercise.styled.js +68 -0
  424. package/es/components/material-exercise/context/ExerciseIntlProvider.d.ts +12 -0
  425. package/es/components/material-exercise/context/ExerciseIntlProvider.js +43 -0
  426. package/es/components/material-exercise/context/ExerciseProvider.d.ts +11 -0
  427. package/es/components/material-exercise/context/ExerciseProvider.js +159 -0
  428. package/es/components/material-exercise/context/ExerciseProviderNoImage.d.ts +15 -0
  429. package/es/components/material-exercise/context/ExerciseProviderNoImage.js +55 -0
  430. package/es/components/material-exercise/context/context.d.ts +7 -0
  431. package/es/components/material-exercise/context/context.js +5 -0
  432. package/es/components/material-exercise/context/index.d.ts +7 -0
  433. package/es/components/material-exercise/context/locales/noImage.en.json.js +3 -0
  434. package/es/components/material-exercise/context/locales/noImage.ko.json.js +3 -0
  435. package/es/components/material-exercise/context/recoil.d.ts +144 -0
  436. package/es/components/material-exercise/context/recoil.js +600 -0
  437. package/es/components/material-exercise/context/recoilTypes.d.ts +95 -0
  438. package/es/components/material-exercise/context/recoilTypes.js +27 -0
  439. package/es/components/material-exercise/context/subjects.d.ts +13 -0
  440. package/es/components/material-exercise/context/subjects.js +19 -0
  441. package/es/components/material-exercise/context/types.d.ts +96 -0
  442. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.d.ts +7 -0
  443. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +143 -0
  444. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +10 -0
  445. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +26 -0
  446. package/es/components/material-exercise/exercise-code-history/index.d.ts +2 -0
  447. package/es/components/material-exercise/exercise-file/ExerciseFile.d.ts +8 -0
  448. package/es/components/material-exercise/exercise-file/ExerciseFile.js +85 -0
  449. package/es/components/material-exercise/exercise-file/index.d.ts +1 -0
  450. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.d.ts +6 -0
  451. package/es/components/material-exercise/exercise-file-editor/ExerciseFileEditor.js +331 -0
  452. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.d.ts +6 -0
  453. package/es/components/material-exercise/exercise-file-editor/ExerciseFileReadOnlyBanner.js +36 -0
  454. package/es/components/material-exercise/exercise-file-editor/ExerciseMobileFileEditor.d.ts +8 -0
  455. package/es/components/material-exercise/exercise-file-editor/index.d.ts +1 -0
  456. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.d.ts +3 -0
  457. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabs.js +70 -0
  458. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.d.ts +3 -0
  459. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsFileTreeButton.js +83 -0
  460. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.d.ts +3 -0
  461. package/es/components/material-exercise/exercise-file-tabs/ExerciseFileTabsLazy.js +15 -0
  462. package/es/components/material-exercise/exercise-file-tabs/index.d.ts +2 -0
  463. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.en.json.js +3 -0
  464. package/es/components/material-exercise/exercise-file-tabs/locales/fileTreeButton.ko.json.js +3 -0
  465. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.d.ts +5 -0
  466. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTree.js +372 -0
  467. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.d.ts +3 -0
  468. package/es/components/material-exercise/exercise-file-tree/ExerciseFileTreeLazy.js +15 -0
  469. package/es/components/material-exercise/exercise-file-tree/index.d.ts +2 -0
  470. package/es/components/material-exercise/exercise-file-tree/locales/en.json.js +3 -0
  471. package/es/components/material-exercise/exercise-file-tree/locales/ko.json.js +3 -0
  472. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.d.ts +3 -0
  473. package/es/components/material-exercise/exercise-file-viewer/ExerciseFileViewer.js +44 -0
  474. package/es/components/material-exercise/exercise-file-viewer/index.d.ts +1 -0
  475. package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +3 -0
  476. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +40 -0
  477. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +3 -0
  478. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +131 -0
  479. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.d.ts +3 -0
  480. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +114 -0
  481. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.d.ts +3 -0
  482. package/es/components/material-exercise/exercise-menu/ExerciseMenuReset.js +92 -0
  483. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.d.ts +3 -0
  484. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.js +225 -0
  485. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.d.ts +13 -0
  486. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +42 -0
  487. package/es/components/material-exercise/exercise-menu/index.d.ts +1 -0
  488. package/es/components/material-exercise/exercise-menu/locales/en.json.js +3 -0
  489. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +3 -0
  490. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.d.ts +3 -0
  491. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdown.js +42 -0
  492. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.d.ts +3 -0
  493. package/es/components/material-exercise/exercise-multilang-dropdown/ExerciseMultilangDropdownLazy.js +10 -0
  494. package/es/components/material-exercise/exercise-multilang-dropdown/index.d.ts +2 -0
  495. package/es/components/material-exercise/exercise-multilang-dropdown/types.d.ts +39 -0
  496. package/es/components/material-exercise/exercise-preview/ExercisePreview.d.ts +3 -0
  497. package/es/components/material-exercise/exercise-preview/ExercisePreview.js +111 -0
  498. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.d.ts +5 -0
  499. package/es/components/material-exercise/exercise-preview/ExercisePreviewDisplayModeButton.js +41 -0
  500. package/es/components/material-exercise/exercise-preview/index.d.ts +1 -0
  501. package/es/components/material-exercise/exercise-preview/locales/en.json.js +3 -0
  502. package/es/components/material-exercise/exercise-preview/locales/ko.json.js +3 -0
  503. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.d.ts +5 -0
  504. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpane.js +123 -0
  505. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.d.ts +3 -0
  506. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEditorPerference.js +25 -0
  507. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.d.ts +3 -0
  508. package/es/components/material-exercise/exercise-rightpane/ExerciseRightpaneEnvironment.js +106 -0
  509. package/es/components/material-exercise/exercise-rightpane/index.d.ts +1 -0
  510. package/es/components/material-exercise/exercise-rightpane/locales/en.json.js +3 -0
  511. package/es/components/material-exercise/exercise-rightpane/locales/ko.json.js +3 -0
  512. package/es/components/material-exercise/exercise-room/ExerciseRoom.d.ts +7 -0
  513. package/es/components/material-exercise/exercise-room/ExerciseRoom.js +27 -0
  514. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.d.ts +9 -0
  515. package/es/components/material-exercise/exercise-room/ExerciseRoom.styled.js +30 -0
  516. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.d.ts +8 -0
  517. package/es/components/material-exercise/exercise-room/ExerciseRoomDetail.js +492 -0
  518. package/es/components/material-exercise/exercise-room/ExerciseRoomList.d.ts +7 -0
  519. package/es/components/material-exercise/exercise-room/ExerciseRoomList.js +188 -0
  520. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.d.ts +2 -0
  521. package/es/components/material-exercise/exercise-room/helpers/exerciseRoomPermissionStringConvertor.js +32 -0
  522. package/es/components/material-exercise/exercise-room/helpers/index.d.ts +1 -0
  523. package/es/components/material-exercise/exercise-room/index.d.ts +2 -0
  524. package/es/components/material-exercise/exercise-room/locales/en.json.js +3 -0
  525. package/es/components/material-exercise/exercise-room/locales/ko.json.js +3 -0
  526. package/es/components/material-exercise/exercise-runner/ExerciseRunner.d.ts +6 -0
  527. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +542 -0
  528. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.d.ts +17 -0
  529. package/es/components/material-exercise/exercise-runner/ExerciseRunnerContext.js +5 -0
  530. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.d.ts +3 -0
  531. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +39 -0
  532. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +3 -0
  533. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +105 -0
  534. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +3 -0
  535. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +262 -0
  536. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.d.ts +3 -0
  537. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerRunningInfo.js +180 -0
  538. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.d.ts +5 -0
  539. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusIndicator.js +19 -0
  540. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.d.ts +3 -0
  541. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerStatusMessage.js +58 -0
  542. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.d.ts +3 -0
  543. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerTimer.js +74 -0
  544. package/es/components/material-exercise/exercise-runner/index.d.ts +1 -0
  545. package/es/components/material-exercise/exercise-runner/locales/en.json.js +3 -0
  546. package/es/components/material-exercise/exercise-runner/locales/ko.json.js +3 -0
  547. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.d.ts +6 -0
  548. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.js +332 -0
  549. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.d.ts +9 -0
  550. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistory.styled.js +30 -0
  551. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.d.ts +6 -0
  552. package/es/components/material-exercise/exercise-submit-history/ExerciseSubmitHistoryOutput.js +112 -0
  553. package/es/components/material-exercise/exercise-submit-history/index.d.ts +2 -0
  554. package/es/components/material-exercise/index.d.ts +3 -0
  555. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.d.ts +10 -0
  556. package/es/components/shared/exercise-menu-button/ExerciseMenuButton.js +45 -0
  557. package/es/components/shared/exercise-menu-button/index.d.ts +2 -0
  558. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.d.ts +3 -0
  559. package/es/components/shared/exercise-shimmer/ExerciseFileShimmer.js +48 -0
  560. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.d.ts +6 -0
  561. package/es/components/shared/exercise-shimmer/ExerciseFileTabShimmer.js +30 -0
  562. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.d.ts +3 -0
  563. package/es/components/shared/exercise-shimmer/ExerciseFileTabsShimmer.js +18 -0
  564. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.d.ts +6 -0
  565. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListItemShimmer.js +33 -0
  566. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.d.ts +3 -0
  567. package/es/components/shared/exercise-shimmer/ExerciseFileTreeListShimmer.js +24 -0
  568. package/es/components/shared/exercise-shimmer/index.d.ts +5 -0
  569. package/es/components/shared/exercise-version-list/ExerciseVersionList.d.ts +3 -0
  570. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +10 -0
  571. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +8 -0
  572. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +8 -0
  573. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +8 -0
  574. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.js +17 -0
  575. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.d.ts +6 -0
  576. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.styled.js +18 -0
  577. package/es/components/shared/exercise-version-list/index.d.ts +2 -0
  578. package/es/components/shared/file-icon/FileIcon.d.ts +10 -0
  579. package/es/components/shared/file-icon/FileIcon.js +41 -0
  580. package/es/components/shared/file-icon/index.d.ts +2 -0
  581. package/es/components/shared/file-tabs/FileTab.d.ts +10 -0
  582. package/es/components/shared/file-tabs/FileTab.js +119 -0
  583. package/es/components/shared/file-tabs/FileTab.styled.d.ts +12 -0
  584. package/es/components/shared/file-tabs/FileTab.styled.js +38 -0
  585. package/es/components/shared/file-tabs/FileTabs.d.ts +15 -0
  586. package/es/components/shared/file-tabs/FileTabs.js +106 -0
  587. package/es/components/shared/file-tabs/FileTabs.styled.d.ts +6 -0
  588. package/es/components/shared/file-tabs/FileTabs.styled.js +16 -0
  589. package/es/components/shared/file-tabs/index.d.ts +2 -0
  590. package/es/components/shared/file-tabs/util.d.ts +10 -0
  591. package/es/components/shared/file-tabs/util.js +28 -0
  592. package/es/components/shared/file-tree/FileTree.d.ts +69 -0
  593. package/es/components/shared/file-tree/FileTree.js +38 -0
  594. package/es/components/shared/file-tree/FileTreeConfig.d.ts +13 -0
  595. package/es/components/shared/file-tree/FileTreeConfig.js +56 -0
  596. package/es/components/shared/file-tree/FileTreeList.d.ts +13 -0
  597. package/es/components/shared/file-tree/FileTreeList.js +127 -0
  598. package/es/components/shared/file-tree/FileTreeListItemContent.d.ts +9 -0
  599. package/es/components/shared/file-tree/FileTreeListItemContent.js +244 -0
  600. package/es/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +37 -0
  601. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +89 -0
  602. package/es/components/shared/file-tree/FileTreeListItemContentInput.d.ts +15 -0
  603. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +297 -0
  604. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +3 -0
  605. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +16 -0
  606. package/es/components/shared/file-tree/FileTreeListItemContentMenu.d.ts +10 -0
  607. package/es/components/shared/file-tree/FileTreeListItemContentMenu.js +303 -0
  608. package/es/components/shared/file-tree/FileTreeListItems.d.ts +8 -0
  609. package/es/components/shared/file-tree/FileTreeListItems.js +204 -0
  610. package/es/components/shared/file-tree/FileTreeListItems.styled.d.ts +2 -0
  611. package/es/components/shared/file-tree/FileTreeListItems.styled.js +10 -0
  612. package/es/components/shared/file-tree/FileTreeToolbar.d.ts +6 -0
  613. package/es/components/shared/file-tree/FileTreeToolbar.js +122 -0
  614. package/es/components/shared/file-tree/FileTreeToolbar.styled.d.ts +1 -0
  615. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +8 -0
  616. package/es/components/shared/file-tree/context/FileTreeContext.d.ts +127 -0
  617. package/es/components/shared/file-tree/context/FileTreeContext.js +192 -0
  618. package/es/components/shared/file-tree/context/index.d.ts +1 -0
  619. package/es/components/shared/file-tree/index.d.ts +15 -0
  620. package/es/components/shared/file-tree/interface/index.d.ts +47 -0
  621. package/es/components/shared/file-tree/locales/en.json.js +3 -0
  622. package/es/components/shared/file-tree/locales/ko.json.js +3 -0
  623. package/es/components/shared/file-tree/utils/fileTreeFiles.d.ts +2 -0
  624. package/es/components/shared/file-tree/utils/fileTreeFiles.js +32 -0
  625. package/es/components/shared/file-tree/utils/fileTreeGenerator.d.ts +68 -0
  626. package/es/components/shared/file-tree/utils/fileTreeGenerator.js +243 -0
  627. package/es/components/shared/file-tree/utils/fileTreeInput.d.ts +4 -0
  628. package/es/components/shared/file-tree/utils/fileTreeInput.js +9 -0
  629. package/es/components/shared/file-tree/utils/fileTreeItem.d.ts +5 -0
  630. package/es/components/shared/file-tree/utils/fileTreeItem.js +10 -0
  631. package/es/components/shared/file-tree/utils/fileTreePath.d.ts +11 -0
  632. package/es/components/shared/file-tree/utils/fileTreePath.js +14 -0
  633. package/es/components/shared/file-tree/utils/index.d.ts +5 -0
  634. package/es/components/shared/file-viewer/FileViewer.d.ts +8 -0
  635. package/es/components/shared/file-viewer/FileViewer.js +158 -0
  636. package/es/components/shared/file-viewer/FileViewerCsv.d.ts +4 -0
  637. package/es/components/shared/file-viewer/FileViewerCsv.js +39 -0
  638. package/es/components/shared/file-viewer/FileViewerImage.d.ts +4 -0
  639. package/es/components/shared/file-viewer/FileViewerImage.js +32 -0
  640. package/es/components/shared/file-viewer/FileViewerIpynb.d.ts +4 -0
  641. package/es/components/shared/file-viewer/FileViewerIpynb.js +37 -0
  642. package/es/components/shared/file-viewer/FileViewerNonViewable.d.ts +7 -0
  643. package/es/components/shared/file-viewer/FileViewerNonViewable.js +124 -0
  644. package/es/components/shared/file-viewer/FileViewerText.d.ts +4 -0
  645. package/es/components/shared/file-viewer/FileViewerText.js +50 -0
  646. package/es/components/shared/file-viewer/index.d.ts +2 -0
  647. package/es/components/shared/file-viewer/locales/en.json.js +3 -0
  648. package/es/components/shared/file-viewer/locales/ko.json.js +3 -0
  649. package/es/components/shared/file-viewer/locales/nonViewable.en.json.js +3 -0
  650. package/es/components/shared/file-viewer/locales/nonViewable.ko.json.js +3 -0
  651. package/es/components/shared/material-modal/MaterialModal.d.ts +8 -0
  652. package/es/components/shared/material-modal/MaterialModal.js +35 -0
  653. package/es/components/shared/material-modal/MaterialModal.styled.d.ts +7 -0
  654. package/es/components/shared/material-modal/MaterialModal.styled.js +21 -0
  655. package/es/components/shared/material-modal/index.d.ts +1 -0
  656. package/es/components/shared/monaco-editor/MonacoEditor.d.ts +86 -0
  657. package/es/components/shared/monaco-editor/MonacoEditor.js +355 -0
  658. package/es/components/shared/monaco-editor/MonacoEditorLazy.d.ts +3 -0
  659. package/es/components/shared/monaco-editor/MonacoEditorLazy.js +17 -0
  660. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.d.ts +9 -0
  661. package/es/components/shared/monaco-editor/MonacoEditorPerferenceForm.js +304 -0
  662. package/es/components/shared/monaco-editor/constants/grammars/JSON.tmLanguage.json.js +3 -0
  663. package/es/components/shared/monaco-editor/constants/grammars/MagicPython.tmLanguage.json.js +3 -0
  664. package/es/components/shared/monaco-editor/constants/grammars/TypeScriptReact.tmLanguage.json.js +3 -0
  665. package/es/components/shared/monaco-editor/constants/grammars/asp-vb-net.tmlanguage.json.js +3 -0
  666. package/es/components/shared/monaco-editor/constants/grammars/c.tmLanguage.json.js +3 -0
  667. package/es/components/shared/monaco-editor/constants/grammars/cpp.tmLanguage.json.js +3 -0
  668. package/es/components/shared/monaco-editor/constants/grammars/csharp.tmLanguage.json.js +3 -0
  669. package/es/components/shared/monaco-editor/constants/grammars/css.tmLanguage.json.js +3 -0
  670. package/es/components/shared/monaco-editor/constants/grammars/dart.tmLanguage.json.js +3 -0
  671. package/es/components/shared/monaco-editor/constants/grammars/fsharp.tmLanguage.json.js +3 -0
  672. package/es/components/shared/monaco-editor/constants/grammars/go.tmLanguage.json.js +3 -0
  673. package/es/components/shared/monaco-editor/constants/grammars/html.tmLanguage.json.js +3 -0
  674. package/es/components/shared/monaco-editor/constants/grammars/index.d.ts +10 -0
  675. package/es/components/shared/monaco-editor/constants/grammars/index.js +159 -0
  676. package/es/components/shared/monaco-editor/constants/grammars/java.tmLanguage.json.js +3 -0
  677. package/es/components/shared/monaco-editor/constants/grammars/lua.tmLanguage.json.js +3 -0
  678. package/es/components/shared/monaco-editor/constants/grammars/objective-c.tmLanguage.json.js +3 -0
  679. package/es/components/shared/monaco-editor/constants/grammars/php.tmLanguage.json.js +3 -0
  680. package/es/components/shared/monaco-editor/constants/grammars/r.tmLanguage.json.js +3 -0
  681. package/es/components/shared/monaco-editor/constants/grammars/ruby.tmLanguage.json.js +3 -0
  682. package/es/components/shared/monaco-editor/constants/grammars/rust.tmLanguage.json.js +3 -0
  683. package/es/components/shared/monaco-editor/constants/grammars/scss.tmLanguage.json.js +3 -0
  684. package/es/components/shared/monaco-editor/constants/grammars/sql.tmLanguage.json.js +3 -0
  685. package/es/components/shared/monaco-editor/constants/grammars/swift.tmLanguage.json.js +3 -0
  686. package/es/components/shared/monaco-editor/constants/grammars/xml.tmLanguage.json.js +3 -0
  687. package/es/components/shared/monaco-editor/constants/grammars/yaml.tmLanguage.json.js +3 -0
  688. package/es/components/shared/monaco-editor/constants/index.d.ts +2 -0
  689. package/es/components/shared/monaco-editor/constants/monaco/index.d.ts +1 -0
  690. package/es/components/shared/monaco-editor/constants/monaco/preferences.d.ts +29 -0
  691. package/es/components/shared/monaco-editor/constants/monaco/preferences.js +40 -0
  692. package/es/components/shared/monaco-editor/constants/themes/abyss.json.js +3 -0
  693. package/es/components/shared/monaco-editor/constants/themes/elice.json.js +3 -0
  694. package/es/components/shared/monaco-editor/constants/themes/index.d.ts +7 -0
  695. package/es/components/shared/monaco-editor/constants/themes/index.js +83 -0
  696. package/es/components/shared/monaco-editor/constants/themes/kimbie-dark.json.js +3 -0
  697. package/es/components/shared/monaco-editor/constants/themes/monokai.json.js +3 -0
  698. package/es/components/shared/monaco-editor/constants/themes/quietlight.json.js +3 -0
  699. package/es/components/shared/monaco-editor/constants/themes/red.json.js +3 -0
  700. package/es/components/shared/monaco-editor/constants/themes/solarized-dark.json.js +3 -0
  701. package/es/components/shared/monaco-editor/constants/themes/solarized-light.json.js +3 -0
  702. package/es/components/shared/monaco-editor/constants/themes/tomorrow-night-blue.json.js +3 -0
  703. package/es/components/shared/monaco-editor/constants/themes/vs-dark-plus.json.js +3 -0
  704. package/es/components/shared/monaco-editor/constants/themes/vs-dark.json.js +3 -0
  705. package/es/components/shared/monaco-editor/constants/themes/vs-hc-black.json.js +3 -0
  706. package/es/components/shared/monaco-editor/constants/themes/vs-hc-light.json.js +3 -0
  707. package/es/components/shared/monaco-editor/constants/themes/vs-light-plus.json.js +3 -0
  708. package/es/components/shared/monaco-editor/constants/themes/vs-light.json.js +3 -0
  709. package/es/components/shared/monaco-editor/editor-hooks/index.d.ts +6 -0
  710. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.d.ts +10 -0
  711. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventChange.js +34 -0
  712. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.d.ts +12 -0
  713. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventCursor.js +42 -0
  714. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.d.ts +12 -0
  715. package/es/components/shared/monaco-editor/editor-hooks/useMonacoEventScroll.js +31 -0
  716. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.d.ts +20 -0
  717. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +175 -0
  718. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.d.ts +9 -0
  719. package/es/components/shared/monaco-editor/editor-hooks/useMonacoOptions.js +43 -0
  720. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.d.ts +6 -0
  721. package/es/components/shared/monaco-editor/editor-hooks/useMonacoTheme.js +27 -0
  722. package/es/components/shared/monaco-editor/editor-languages/css/formatter.d.ts +3 -0
  723. package/es/components/shared/monaco-editor/editor-languages/css/formatter.js +17 -0
  724. package/es/components/shared/monaco-editor/editor-languages/css/index.d.ts +9 -0
  725. package/es/components/shared/monaco-editor/editor-languages/css/index.js +28 -0
  726. package/es/components/shared/monaco-editor/editor-languages/html/formatter.d.ts +3 -0
  727. package/es/components/shared/monaco-editor/editor-languages/html/formatter.js +17 -0
  728. package/es/components/shared/monaco-editor/editor-languages/html/index.d.ts +9 -0
  729. package/es/components/shared/monaco-editor/editor-languages/html/index.js +26 -0
  730. package/es/components/shared/monaco-editor/editor-languages/index.d.ts +1 -0
  731. package/es/components/shared/monaco-editor/editor-languages/index.js +11 -0
  732. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.d.ts +7 -0
  733. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/_helper.js +8 -0
  734. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.d.ts +5 -0
  735. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/express.js +12 -0
  736. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/index.d.ts +3 -0
  737. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.d.ts +5 -0
  738. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/propTypes.js +12 -0
  739. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.d.ts +5 -0
  740. package/es/components/shared/monaco-editor/editor-languages/typescript/dts/react.js +12 -0
  741. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.d.ts +3 -0
  742. package/es/components/shared/monaco-editor/editor-languages/typescript/formatter.js +17 -0
  743. package/es/components/shared/monaco-editor/editor-languages/typescript/index.d.ts +25 -0
  744. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +94 -0
  745. package/es/components/shared/monaco-editor/hooks/index.d.ts +1 -0
  746. package/es/components/shared/monaco-editor/hooks/useEditorOptions.d.ts +8 -0
  747. package/es/components/shared/monaco-editor/hooks/useEditorOptions.js +82 -0
  748. package/es/components/shared/monaco-editor/index.d.ts +6 -0
  749. package/es/components/shared/monaco-editor/locales/en.json.js +3 -0
  750. package/es/components/shared/monaco-editor/locales/ko.json.js +3 -0
  751. package/es/components/shared/monaco-editor/utils/grammar/index.d.ts +4 -0
  752. package/es/components/shared/monaco-editor/utils/grammar/index.js +60 -0
  753. package/es/components/shared/monaco-editor/utils/grammar/onigasm.d.ts +4 -0
  754. package/es/components/shared/monaco-editor/utils/grammar/onigasm.js +15 -0
  755. package/es/components/shared/monaco-editor/utils/grammar/textmate.d.ts +9 -0
  756. package/es/components/shared/monaco-editor/utils/grammar/textmate.js +65 -0
  757. package/es/components/shared/monaco-editor/utils/index.d.ts +2 -0
  758. package/es/components/shared/monaco-editor/utils/monacoLanguage.d.ts +4 -0
  759. package/es/components/shared/monaco-editor/utils/monacoLanguage.js +53 -0
  760. package/es/components/shared/monaco-editor/utils/monacoPreference.d.ts +5 -0
  761. package/es/components/shared/monaco-editor/utils/monacoPreference.js +22 -0
  762. package/es/components/shared/monaco-editor/utils/prettier/config.d.ts +9 -0
  763. package/es/components/shared/monaco-editor/utils/prettier/config.js +22 -0
  764. package/es/components/shared/monaco-editor/utils/prettier/index.d.ts +17 -0
  765. package/es/components/shared/monaco-editor/utils/prettier/index.js +12 -0
  766. package/es/components/shared/monaco-editor/utils/remoteMarker/OnDisposed.d.ts +4 -0
  767. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteCursor.d.ts +49 -0
  768. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteCursor.js +93 -0
  769. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorManager.d.ts +48 -0
  770. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorManager.js +115 -0
  771. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorWidget.d.ts +29 -0
  772. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteCursorWidget.js +177 -0
  773. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteSelection.d.ts +112 -0
  774. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteSelection.js +198 -0
  775. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteSelectionManager.d.ts +102 -0
  776. package/es/components/shared/monaco-editor/utils/remoteMarker/RemoteSelectionManager.js +150 -0
  777. package/es/components/shared/monaco-editor/utils/remoteMarker/index.d.ts +3 -0
  778. package/es/components/shared/monaco-editor/utils/remoteMarker/styles.d.ts +2 -0
  779. package/es/components/shared/monaco-editor/utils/remoteMarker/styles.js +14 -0
  780. package/es/components/shared/monaco-editor/utils/theme/convert.d.ts +22 -0
  781. package/es/components/shared/monaco-editor/utils/theme/convert.js +81 -0
  782. package/es/components/shared/monaco-editor/utils/theme/index.d.ts +4 -0
  783. package/es/components/shared/monaco-editor/utils/theme/index.js +14 -0
  784. package/es/components/shared/no-vnc/NoVnc.d.ts +19 -0
  785. package/es/components/shared/no-vnc/NoVnc.js +265 -0
  786. package/es/components/shared/no-vnc/NoVncLazy.d.ts +3 -0
  787. package/es/components/shared/no-vnc/NoVncLazy.js +12 -0
  788. package/es/components/shared/no-vnc/index.d.ts +1 -0
  789. package/es/components/shared/preview-container/PreviewContainer.d.ts +9 -0
  790. package/es/components/shared/preview-container/PreviewContainer.js +26 -0
  791. package/es/components/shared/preview-container/index.d.ts +2 -0
  792. package/es/components/shared/web-browser/WebBrowser.d.ts +11 -0
  793. package/es/components/shared/web-browser/WebBrowser.js +163 -0
  794. package/es/components/shared/web-browser/index.d.ts +1 -0
  795. package/es/components/shared/xterm/Xterm.d.ts +32 -0
  796. package/es/components/shared/xterm/Xterm.js +229 -0
  797. package/es/components/shared/xterm/XtermLazy.d.ts +3 -0
  798. package/es/components/shared/xterm/XtermLazy.js +12 -0
  799. package/es/components/shared/xterm/index.d.ts +1 -0
  800. package/es/components/shared/xterm/locales/en.json.js +3 -0
  801. package/es/components/shared/xterm/locales/ko.json.js +3 -0
  802. package/es/components/shared/xterm/utils/index.d.ts +5 -0
  803. package/es/components/shared/xterm/utils/index.js +10 -0
  804. package/es/constants/arduino.d.ts +35 -0
  805. package/es/constants/arduino.js +62 -0
  806. package/es/constants/index.d.ts +1 -0
  807. package/es/constants/shortcutKeyMap.d.ts +27 -0
  808. package/es/constants/shortcutKeyMap.js +74 -0
  809. package/es/constants/stylesheets.d.ts +29 -0
  810. package/es/constants/stylesheets.js +36 -0
  811. package/es/hooks/index.d.ts +7 -0
  812. package/es/hooks/useArduino.d.ts +14 -0
  813. package/es/hooks/useArduino.js +521 -0
  814. package/es/hooks/useExerciseFile.d.ts +8 -0
  815. package/es/hooks/useExerciseFile.js +43 -0
  816. package/es/hooks/useExericseShortcut.d.ts +5 -0
  817. package/es/hooks/useExericseShortcut.js +20 -0
  818. package/es/hooks/useMaterialExerciseFileUrl.d.ts +10 -0
  819. package/es/hooks/useMaterialExerciseFileUrl.js +53 -0
  820. package/es/hooks/useRunnerRoomWebSocket.d.ts +19 -0
  821. package/es/hooks/useRunnerRoomWebSocket.js +157 -0
  822. package/es/hooks/useStdioWebSocket.d.ts +35 -0
  823. package/es/hooks/useStdioWebSocket.js +213 -0
  824. package/es/hooks/useUsercodeEditWebSocket.d.ts +57 -0
  825. package/es/hooks/useUsercodeEditWebSocket.js +597 -0
  826. package/es/hooks/useUsercodeHistory.d.ts +9 -0
  827. package/es/hooks/useUsercodeHistory.js +129 -0
  828. package/es/index.d.ts +1 -0
  829. package/es/index.js +7 -0
  830. package/es/typings/arduino.d.ts +77 -0
  831. package/es/utils/arduino.d.ts +46 -0
  832. package/es/utils/arduino.js +77 -0
  833. package/es/utils/exerciseFile.d.ts +14 -0
  834. package/es/utils/exerciseFile.js +60 -0
  835. package/es/utils/index.d.ts +1 -0
  836. package/package.json +142 -0
@@ -0,0 +1,3 @@
1
+ const information_for_contributors=["This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."];const version="https://github.com/microsoft/TypeScript-TmLanguage/commit/0dfae8cc4807fecfbf8f1add095d9817df824c95";const name="TypeScriptReact";const scopeName="source.tsx";const patterns=[{include:"#directives"},{include:"#statements"},{include:"#shebang"}];const repository={shebang:{name:"comment.line.shebang.tsx",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.tsx"}}},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"}]},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"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{name:"keyword.control.trycatch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.control.loop.tsx"},"2":{name:"entity.name.label.tsx"}}},{name:"keyword.control.loop.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"0":{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#expression"}]},{name:"keyword.control.switch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#if-statement"},{name:"keyword.control.conditional.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.with.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.other.debugger.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},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"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)",captures:{"1":{name:"entity.name.label.tsx"},"2":{name:"punctuation.separator.label.tsx"}}}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},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"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},decorator:{name:"meta.decorator.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{"0":{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",patterns:[{include:"#expression"}]},"var-expr":{patterns:[{name:"meta.var.expr.tsx",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",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*((?!\\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"}]},{name:"meta.var.expr.tsx",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",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*((?!\\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"}]}]},"var-single-variable":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.tsx entity.name.function.tsx"},"2":{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",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+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",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+))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-const":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"destructuring-variable":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-const":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[: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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[: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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{"0":{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"variable.object.property.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},"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"}]},"destructuring-variable-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}}},"destructuring-variable-rest-const":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"meta.definition.variable.tsx variable.other.constant.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"}]},"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"}]},"parameter-name":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{"1":{name:"storage.modifier.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",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*(\\??)",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"}}}]},"destructuring-parameter":{patterns:[{name:"meta.parameter.object-binding-pattern.tsx",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"}},patterns:[{include:"#parameter-object-binding-element"}]},{name:"meta.paramter.array-binding-pattern.tsx",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"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{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"}]},"destructuring-parameter-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"variable.parameter.tsx"}}},"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-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"}]},"field-declaration":{name:"meta.field.declaration.tsx",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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[: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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{match:"(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"meta.definition.property.tsx entity.name.function.tsx"},"2":{name:"keyword.operator.optional.tsx"},"3":{name:"keyword.operator.definiteassignment.tsx"}}},{name:"meta.definition.property.tsx variable.object.property.tsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"},{name:"keyword.operator.definiteassignment.tsx",match:"\\!"}]},"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"}]}]},"function-declaration":{name:"meta.function.tsx",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|(?<=\\})",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{name:"meta.function.expression.tsx",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:"(?=;)|(?<=\\})",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{name:"meta.definition.function.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{name:"keyword.generator.asterisk.tsx",match:"\\*"}]},"method-declaration":{patterns:[{name:"meta.method.declaration.tsx",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:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.tsx",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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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"},{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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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"}]}]},"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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"meta.definition.method.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"}]},"arrow-function":{patterns:[{name:"meta.arrow.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",captures:{"1":{name:"storage.modifier.async.tsx"},"2":{name:"variable.parameter.tsx"}}},{name:"meta.arrow.tsx",begin:"(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)",beginCaptures:{"1":{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.tsx",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.tsx",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"}},patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{name:"meta.indexer.mappedtype.declaration.tsx",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"}},patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",captures:{"1":{name:"keyword.control.as.tsx"}}},{include:"#type"}]},"function-parameters":{name:"meta.parameters.tsx",begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.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"},{name:"punctuation.separator.parameter.tsx",match:","}]},"class-declaration":{name:"meta.class.tsx",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:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-expression":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"entity.name.type.class.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"interface-declaration":{name:"meta.interface.tsx",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:"(?<=\\})",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"entity.name.type.interface.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"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"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"}}},{match:"([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"entity.other.inherited-class.tsx"}}},{include:"#expressionPunctuations"}]},"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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\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"}]},"access-modifier":{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"property-accessor":{name:"storage.type.property.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"async-modifier":{name:"storage.modifier.async.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"enum-declaration":{name:"meta.enum.declaration.tsx",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:"(?<=\\})",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"}]}]},"namespace-declaration":{name:"meta.namespace.declaration.tsx",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#comment"},{include:"#string"},{name:"entity.name.type.module.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"type-alias-declaration":{name:"meta.type.declaration.tsx",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{"1":{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type"}]}]},"import-equals-declaration":{patterns:[{name:"meta.import-equals.external.tsx",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"}},patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.import-equals.internal.tsx",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:"(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"}}},{name:"variable.other.readwrite.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{name:"meta.import.tsx",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)(?=;|$|^)",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"}]},"export-declaration":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)",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"}}},{name:"meta.export.default.tsx",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|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{name:"meta.export.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b)))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#import-export-declaration"}]}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{name:"keyword.control.from.tsx",match:"\\bfrom\\b"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)",beginCaptures:{"1":{name:"keyword.control.assert.tsx"},"2":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{name:"meta.object-literal.key.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)"},{name:"punctuation.separator.key-value.tsx",match:":"}]},"import-export-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))",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"}}},{include:"#punctuation-comma"},{name:"constant.language.import-export-all.tsx",match:"\\*"},{name:"keyword.control.default.tsx",match:"\\b(default)\\b"},{match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.control.type.tsx"},"2":{name:"variable.other.readwrite.alias.tsx"}}}]},"switch-statement":{name:"switch-statement.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{name:"switch-expression.expr.tsx",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"}},patterns:[{include:"#expression"}]},{name:"switch-block.expr.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",patterns:[{name:"case-clause.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.control.switch.tsx"}},end:"(?=:)",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"}},end:"\\}",endCaptures:{"0":{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",patterns:[{include:"#statements"}]},{match:"(:)",captures:{"0":{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}}},{include:"#statements"}]}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{"0":{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{name:"keyword.control.loop.tsx",match:"await"},{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"}]}]},"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"}]},{name:"string.regexp.tsx",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"}},patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"decl-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},"after-operator-block-as-object-literal":{name:"meta.objectliteral.tsx",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"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",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(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as\\s+))",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{name:"meta.method.declaration.tsx",begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#function-body"}]},{name:"meta.object.member.tsx",match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.tsx"},"1":{name:"constant.numeric.decimal.tsx"}}},{name:"meta.object.member.tsx",match:"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"0":{name:"meta.object-literal.key.tsx"},"1":{name:"entity.name.function.tsx"}}},{name:"meta.object.member.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.tsx"}}},{name:"meta.object.member.tsx",begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{"1":{name:"variable.other.readwrite.tsx"}}},{name:"meta.object.member.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",captures:{"1":{name:"keyword.control.as.tsx"},"2":{name:"storage.modifier.tsx"}}},{name:"meta.object.member.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",beginCaptures:{"1":{name:"keyword.control.as.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+))",patterns:[{include:"#type"}]},{name:"meta.object.member.tsx",begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",begin:":",beginCaptures:{"0":{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{"1":{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"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:[{name:"meta.function-call.tsx",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*)?\\())",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:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.tsx punctuation.accessor.optional.tsx",match:"\\?\\."},{name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"}]},"new-expr":{name:"new.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#expression"}]},"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"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\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"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{"1":{name:"storage.modifier.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",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*[:,]|$)",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"}}},{include:"#type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"paren-expression":{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},cast:{patterns:[{include:"#jsx"}]},"expression-operators":{patterns:[{name:"keyword.control.flow.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{"1":{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{"0":{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?",captures:{"1":{name:"keyword.control.flow.tsx"},"2":{name:"keyword.generator.asterisk.tsx"}}},{name:"keyword.operator.expression.delete.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.in.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.of.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.instanceof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.new.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#typeof-operator"},{name:"keyword.operator.expression.void.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))",captures:{"1":{name:"keyword.control.as.tsx"},"2":{name:"storage.modifier.tsx"}}},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",beginCaptures:{"1":{name:"keyword.control.as.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{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",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.logical.tsx"},"2":{name:"keyword.operator.assignment.compound.tsx"},"3":{name:"keyword.operator.arithmetic.tsx"}}},{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",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{"1":{name:"keyword.operator.assignment.compound.tsx"},"2":{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.assignment.compound.tsx"},"2":{name:"keyword.operator.arithmetic.tsx"}}}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"0":{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#expression"}]},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"}]},"array-literal":{name:"meta.array.literal.tsx",begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.tsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.tsx",match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.binary.tsx",match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.octal.tsx",match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.tsx"}}},{match:"(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)",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"}}}]},"boolean-literal":{patterns:[{name:"constant.language.boolean.true.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.boolean.false.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"null-literal":{name:"constant.language.null.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"this-literal":{name:"variable.language.this.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)"},"super-literal":{name:"variable.language.super.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)"},"undefined-literal":{name:"constant.language.undefined.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"numericConstant-literal":{patterns:[{name:"constant.language.nan.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.infinity.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"support-objects":{patterns:[{name:"variable.language.arguments.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)"},{name:"support.class.promise.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)",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:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\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:"(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\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:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\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"}}}]},identifiers:{patterns:[{include:"#object-identifiers"},{match:"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"entity.name.function.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.constant.property.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"variable.other.property.tsx"}}},{name:"variable.other.constant.tsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",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)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"variable.other.constant.object.tsx"},"2":{name:"variable.other.object.tsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=$|^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|//)|(?==[^>])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",patterns:[{include:"#return-type-core"}]},{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"arrow-return-type":{name:"meta.return.type.arrow.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{"1":{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.tsx 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"}]},"type-parameters":{name:"meta.type.parameters.tsx",begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"},{name:"keyword.operator.assignment.tsx",match:"(=)(?!>)"}]},"type-arguments":{name:"meta.type.parameters.tsx",begin:"\\<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"0":{name:"keyword.operator.type.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},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"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",captures:{"1":{name:"storage.modifier.tsx"}}},{include:"#type-name"}]},"type-primitive":{name:"support.type.primitive.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-builtin-literals":{name:"support.type.builtin.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-tuple":{name:"meta.type.tuple.tsx",begin:"\\[",beginCaptures:{"0":{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.tsx"}},patterns:[{name:"keyword.operator.rest.tsx",match:"\\.\\.\\."},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)",captures:{"1":{name:"entity.name.label.tsx"},"2":{name:"keyword.operator.optional.tsx"},"3":{name:"punctuation.separator.label.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},"type-object":{name:"meta.object.type.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.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-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-paren-or-function-parameters":{name:"meta.type.paren.cover.tsx",begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\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:"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*(\\??)(?=:)",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"}}},{include:"#type-annotation"},{name:"punctuation.separator.parameter.tsx",match:","},{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"}]},{name:"meta.type.constructor.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.control.new.tsx"}},end:"(?<=\\))",patterns:[{include:"#function-parameters"}]},{name:"meta.type.function.tsx",begin:"(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)",end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.tsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{"1":{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.tsx",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",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-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)"},{name:"keyword.operator.expression.keyof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.ternary.tsx",match:"(\\?|\\:)"},{name:"keyword.operator.expression.import.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()"}]},"type-infer":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx",captures:{"1":{name:"keyword.operator.expression.infer.tsx"},"2":{name:"entity.name.type.tsx"},"3":{name:"keyword.operator.expression.extends.tsx"}}}]},"type-predicate-operator":{patterns:[{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"},"4":{name:"keyword.operator.expression.is.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.operator.type.asserts.tsx"},"2":{name:"variable.parameter.tsx variable.language.this.tsx"},"3":{name:"variable.parameter.tsx"}}},{name:"keyword.operator.type.asserts.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.is.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"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"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.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"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"}}},{name:"entity.name.type.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.tsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.tsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.tsx",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"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.tsx",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"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.tsx",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]?|.|$)"},template:{patterns:[{include:"#template-call"},{name:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.tsx"},"2":{name:"punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{name:"string.template.tsx",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"},{name:"entity.name.function.tagged-template.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{name:"string.template.tsx",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":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{name:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.tsx"},"2":{name:"punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.tsx"},regex:{patterns:[{name:"string.regexp.tsx",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"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.tsx",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"}},patterns:[{include:"#regexp"}]}]},regexp:{patterns:[{name:"keyword.control.anchor.regexp",match:"\\\\[bB]|\\^|\\$"},{match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>",captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.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"}},patterns:[{include:"#regexp"}]},{name:"meta.group.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"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.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"}},patterns:[{name:"constant.other.character-class.range.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])|(\\\\.))",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"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.tsx",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.tsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.tsx",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"}}},{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"}},end:"(?=$)",contentName:"comment.line.double-slash.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"}},end:"(?=^)",contentName:"comment.line.double-slash.tsx"},directives:{name:"comment.line.triple-slash.directive.tsx",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:"(?=$)",patterns:[{name:"meta.tag.tsx",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"}},patterns:[{name:"entity.other.attribute-name.directive.tsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.tsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}}},{match:"(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",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)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>",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"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",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"}},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"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{"0":{name:"source.embedded.tsx"}}}]},{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:"constant.language.symbol-type.jsdoc"}}},{match:"(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",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)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{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"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:"(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{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"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{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"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",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"}}}]},{begin:"(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:"(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",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"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{name:"storage.type.class.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",captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.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"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.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-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"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.tsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",end:"(</)\\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"}},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"}},contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:"(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\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":{name:"meta.tag.tsx",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"}},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"}},end:"(?=</)",contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-evaluated-code":{contentName:"meta.embedded.expression.tsx",begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.tsx"}},endCaptures:{"0":{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-entities":{patterns:[{name:"constant.character.entity.tsx",match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",captures:{"1":{name:"punctuation.definition.entity.tsx"},"3":{name:"punctuation.definition.entity.tsx"}}},{name:"invalid.illegal.bad-ampersand.tsx",match:"&"}]},"jsx-tag-attributes":{name:"meta.tag.attributes.tsx",begin:"\\s+",end:"(?=[/]?>)",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-attribute-name":{match:"(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)",captures:{"1":{name:"entity.other.attribute-name.namespace.tsx"},"2":{name:"punctuation.separator.namespace.tsx"},"3":{name:"entity.other.attribute-name.tsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.tsx",match:"=(?=\\s*(?:'|\"|{|/\\*|//|\\n))"},"jsx-string-double-quoted":{name:"string.quoted.double.tsx",begin:"\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{"0":{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.tsx",begin:"'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{"0":{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.tsx",match:"\\S+"}};var TypeScriptReact_tmLanguage = {information_for_contributors:information_for_contributors,version:version,name:name,scopeName:scopeName,patterns:patterns,repository:repository};
2
+
3
+ export { TypeScriptReact_tmLanguage as default, information_for_contributors, name, patterns, repository, scopeName, version };
@@ -0,0 +1,3 @@
1
+ const information_for_contributors=["This file has been converted from https://github.com/textmate/asp.vb.net.tmbundle/blob/master/Syntaxes/ASP%20VB.net.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."];const version="https://github.com/textmate/asp.vb.net.tmbundle/commit/72d44550b3286d0382d7be0624140cf97857ff69";const name="ASP vb.NET";const scopeName="source.asp.vb.net";const comment="Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com";const patterns=[{match:"\\n",name:"meta.ending-space"},{include:"#round-brackets"},{begin:"^(?=\\t)",end:"(?=[^\\t])",name:"meta.leading-space",patterns:[{captures:{"1":{name:"meta.odd-tab.tabs"},"2":{name:"meta.even-tab.tabs"}},match:"(\\t)(\\t)?"}]},{begin:"^(?= )",end:"(?=[^ ])",name:"meta.leading-space",patterns:[{captures:{"1":{name:"meta.odd-tab.spaces"},"2":{name:"meta.even-tab.spaces"}},match:"( )( )?"}]},{captures:{"1":{name:"storage.type.function.asp"},"2":{name:"entity.name.function.asp"},"3":{name:"punctuation.definition.parameters.asp"},"4":{name:"variable.parameter.function.asp"},"5":{name:"punctuation.definition.parameters.asp"}},match:"^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?",name:"meta.function.asp"},{begin:"(^[ \\t]+)?(?=')",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.asp"}},end:"(?!\\G)",patterns:[{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.comment.asp"}},end:"\\n",name:"comment.line.apostrophe.asp"}]},{match:"(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)",name:"keyword.control.asp"},{match:"(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)",name:"keyword.operator.asp"},{captures:{"1":{name:"storage.type.asp"},"2":{name:"variable.other.bfeac.asp"},"3":{name:"meta.separator.comma.asp"}},match:"(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))",name:"variable.other.dim.asp"},{match:"(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)",name:"storage.type.asp"},{match:"(?i:\\b(Private|Public|Default)\\b)",name:"storage.modifier.asp"},{match:"(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)",name:"constant.language.asp"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.asp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.asp"}},name:"string.quoted.double.asp",patterns:[{match:"\"\"",name:"constant.character.escape.apostrophe.asp"}]},{captures:{"1":{name:"punctuation.definition.variable.asp"}},match:"(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*",name:"variable.other.asp"},{match:"(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)",name:"support.class.asp"},{match:"(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)",name:"support.class.collection.asp"},{match:"(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)",name:"support.constant.asp"},{match:"(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)",name:"support.function.asp"},{match:"(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)",name:"support.function.event.asp"},{match:"(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))",name:"support.type.vb.asp"},{match:"(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)",name:"support.function.vb.asp"},{match:"-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.asp"},{match:"(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)",name:"support.type.vb.asp"},{captures:{"1":{name:"entity.name.function.asp"}},match:"(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))",name:"support.function.asp"},{match:"(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))",name:"variable.other.asp"},{match:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b",name:"keyword.operator.js"}];const repository={"round-brackets":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.round-brackets.begin.asp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.round-brackets.end.asp"}},name:"meta.round-brackets",patterns:[{include:"source.asp.vb.net"}]}};var aspVbNet_tmlanguage = {information_for_contributors:information_for_contributors,version:version,name:name,scopeName:scopeName,comment:comment,patterns:patterns,repository:repository};
2
+
3
+ export { comment, aspVbNet_tmlanguage as default, information_for_contributors, name, patterns, repository, scopeName, version };