@lvce-editor/static-server 0.61.1 → 0.61.3

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 (1857) hide show
  1. package/dist/static-server.js +1873 -1873
  2. package/package.json +1 -1
  3. package/static/{32e26fa → 62d8630}/css/App.css +83 -83
  4. package/static/{32e26fa → 62d8630}/manifest.json +2 -2
  5. package/static/{32e26fa → 62d8630}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
  6. package/static/{32e26fa → 62d8630}/packages/editor-worker/dist/editorWorkerMain.js +1787 -1668
  7. package/static/{32e26fa → 62d8630}/packages/explorer-worker/dist/explorerViewWorkerMain.js +508 -602
  8. package/static/{32e26fa → 62d8630}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
  9. package/static/{32e26fa → 62d8630}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
  10. package/static/{32e26fa → 62d8630}/packages/renderer-worker/dist/rendererWorkerMain.js +8 -5
  11. package/static/{32e26fa → 62d8630}/packages/test-worker/dist/testWorkerMain.js +36 -0
  12. package/static/index.html +4 -4
  13. /package/static/{32e26fa → 62d8630}/config/colorTheme.json +0 -0
  14. /package/static/{32e26fa → 62d8630}/config/defaultSettings.json +0 -0
  15. /package/static/{32e26fa → 62d8630}/config/fileMap.json +0 -0
  16. /package/static/{32e26fa → 62d8630}/config/webExtensions.json +0 -0
  17. /package/static/{32e26fa → 62d8630}/css/parts/AdditionalDetails.css +0 -0
  18. /package/static/{32e26fa → 62d8630}/css/parts/Animation.css +0 -0
  19. /package/static/{32e26fa → 62d8630}/css/parts/BrowserScrollBar.css +0 -0
  20. /package/static/{32e26fa → 62d8630}/css/parts/Category.css +0 -0
  21. /package/static/{32e26fa → 62d8630}/css/parts/DebugButtons.css +0 -0
  22. /package/static/{32e26fa → 62d8630}/css/parts/DebugValue.css +0 -0
  23. /package/static/{32e26fa → 62d8630}/css/parts/E2eTest.css +0 -0
  24. /package/static/{32e26fa → 62d8630}/css/parts/E2eTests.css +0 -0
  25. /package/static/{32e26fa → 62d8630}/css/parts/EditorHover.css +0 -0
  26. /package/static/{32e26fa → 62d8630}/css/parts/EditorMessage.css +0 -0
  27. /package/static/{32e26fa → 62d8630}/css/parts/FeatureContent.css +0 -0
  28. /package/static/{32e26fa → 62d8630}/css/parts/Features.css +0 -0
  29. /package/static/{32e26fa → 62d8630}/css/parts/ImagePreview.css +0 -0
  30. /package/static/{32e26fa → 62d8630}/css/parts/InlineDiffEditor.css +0 -0
  31. /package/static/{32e26fa → 62d8630}/css/parts/InputBadge.css +0 -0
  32. /package/static/{32e26fa → 62d8630}/css/parts/Key.css +0 -0
  33. /package/static/{32e26fa → 62d8630}/css/parts/KeyBindingsHeader.css +0 -0
  34. /package/static/{32e26fa → 62d8630}/css/parts/KeyBindingsTable.css +0 -0
  35. /package/static/{32e26fa → 62d8630}/css/parts/LegacyDialog.css +0 -0
  36. /package/static/{32e26fa → 62d8630}/css/parts/Markdown.css +0 -0
  37. /package/static/{32e26fa → 62d8630}/css/parts/Message.css +0 -0
  38. /package/static/{32e26fa → 62d8630}/css/parts/Progress.css +0 -0
  39. /package/static/{32e26fa → 62d8630}/css/parts/ScrollToTop.css +0 -0
  40. /package/static/{32e26fa → 62d8630}/css/parts/SearchToggleButton.css +0 -0
  41. /package/static/{32e26fa → 62d8630}/css/parts/Select.css +0 -0
  42. /package/static/{32e26fa → 62d8630}/css/parts/SettingsHeader.css +0 -0
  43. /package/static/{32e26fa → 62d8630}/css/parts/SettingsItems.css +0 -0
  44. /package/static/{32e26fa → 62d8630}/css/parts/SettingsSideBar.css +0 -0
  45. /package/static/{32e26fa → 62d8630}/css/parts/Table.css +0 -0
  46. /package/static/{32e26fa → 62d8630}/css/parts/ViewletAbout.css +0 -0
  47. /package/static/{32e26fa → 62d8630}/css/parts/ViewletBrowserViewOverview.css +0 -0
  48. /package/static/{32e26fa → 62d8630}/css/parts/ViewletDebugConsole.css +0 -0
  49. /package/static/{32e26fa → 62d8630}/css/parts/ViewletDefineKeyBinding.css +0 -0
  50. /package/static/{32e26fa → 62d8630}/css/parts/ViewletDialog.css +0 -0
  51. /package/static/{32e26fa → 62d8630}/css/parts/ViewletDiffEditor.css +0 -0
  52. /package/static/{32e26fa → 62d8630}/css/parts/ViewletEditorWidgetError.css +0 -0
  53. /package/static/{32e26fa → 62d8630}/css/parts/ViewletExtensionDetail.css +0 -0
  54. /package/static/{32e26fa → 62d8630}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  55. /package/static/{32e26fa → 62d8630}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  56. /package/static/{32e26fa → 62d8630}/css/parts/ViewletExtensions.css +0 -0
  57. /package/static/{32e26fa → 62d8630}/css/parts/ViewletIframeInspector.css +0 -0
  58. /package/static/{32e26fa → 62d8630}/css/parts/ViewletKeyBindings.css +0 -0
  59. /package/static/{32e26fa → 62d8630}/css/parts/ViewletMedia.css +0 -0
  60. /package/static/{32e26fa → 62d8630}/css/parts/ViewletOutput.css +0 -0
  61. /package/static/{32e26fa → 62d8630}/css/parts/ViewletPanel.css +0 -0
  62. /package/static/{32e26fa → 62d8630}/css/parts/ViewletPanelTabs.css +0 -0
  63. /package/static/{32e26fa → 62d8630}/css/parts/ViewletPdf.css +0 -0
  64. /package/static/{32e26fa → 62d8630}/css/parts/ViewletProblems.css +0 -0
  65. /package/static/{32e26fa → 62d8630}/css/parts/ViewletReferences.css +0 -0
  66. /package/static/{32e26fa → 62d8630}/css/parts/ViewletRunAndDebug.css +0 -0
  67. /package/static/{32e26fa → 62d8630}/css/parts/ViewletScreenCapture.css +0 -0
  68. /package/static/{32e26fa → 62d8630}/css/parts/ViewletSearch.css +0 -0
  69. /package/static/{32e26fa → 62d8630}/css/parts/ViewletSettings.css +0 -0
  70. /package/static/{32e26fa → 62d8630}/css/parts/ViewletSimpleBrowser.css +0 -0
  71. /package/static/{32e26fa → 62d8630}/css/parts/ViewletSourceControl.css +0 -0
  72. /package/static/{32e26fa → 62d8630}/css/parts/ViewletStorage.css +0 -0
  73. /package/static/{32e26fa → 62d8630}/css/parts/ViewletTerminal.css +0 -0
  74. /package/static/{32e26fa → 62d8630}/css/parts/ViewletTerminalTabs.css +0 -0
  75. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-bat/README.md +0 -0
  76. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-bat/extension.json +0 -0
  77. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  78. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  79. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-c/README.md +0 -0
  80. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-c/extension.json +0 -0
  81. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  82. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  83. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  84. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  85. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cpp/README.md +0 -0
  86. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  87. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  88. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  89. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cson/README.md +0 -0
  90. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cson/extension.json +0 -0
  91. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  92. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  93. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-css/README.md +0 -0
  94. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-css/extension.json +0 -0
  95. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  96. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  97. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-dart/README.md +0 -0
  98. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-dart/extension.json +0 -0
  99. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  100. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-desktop/README.md +0 -0
  101. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  102. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  103. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-docker/README.md +0 -0
  104. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-docker/extension.json +0 -0
  105. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  106. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  107. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
  108. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  109. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  110. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  111. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  112. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-elixir/README.md +0 -0
  113. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  114. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  115. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-elm/README.md +0 -0
  116. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-elm/extension.json +0 -0
  117. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  118. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  119. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  120. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  121. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-gn/README.md +0 -0
  122. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-gn/extension.json +0 -0
  123. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  124. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-go/README.md +0 -0
  125. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-go/extension.json +0 -0
  126. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  127. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-graphql/README.md +0 -0
  128. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  129. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  130. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-html/README.md +0 -0
  131. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-html/extension.json +0 -0
  132. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  133. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  134. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-java/README.md +0 -0
  135. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-java/extension.json +0 -0
  136. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  137. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  138. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-javascript/README.md +0 -0
  139. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-javascript/extension.json +0 -0
  140. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  141. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  142. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-json/README.md +0 -0
  143. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-json/extension.json +0 -0
  144. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  145. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-json5/README.md +0 -0
  146. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-json5/extension.json +0 -0
  147. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  148. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-jsx/README.md +0 -0
  149. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  150. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  151. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-julia/README.md +0 -0
  152. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-julia/extension.json +0 -0
  153. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  154. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  155. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  156. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  157. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-less/LICENSE +0 -0
  158. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-less/README.md +0 -0
  159. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-less/extension.json +0 -0
  160. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  161. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  162. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-markdown/README.md +0 -0
  163. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  164. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  165. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-mdx/README.md +0 -0
  166. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  167. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  168. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nix/README.md +0 -0
  169. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nix/extension.json +0 -0
  170. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  171. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  172. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  173. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  174. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  175. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-perl/README.md +0 -0
  176. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-perl/extension.json +0 -0
  177. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  178. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  179. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  180. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  181. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-powershell/README.md +0 -0
  182. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  183. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  184. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-python/README.md +0 -0
  185. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-python/extension.json +0 -0
  186. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  187. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  188. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-r/README.md +0 -0
  189. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-r/extension.json +0 -0
  190. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  191. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-ruby/README.md +0 -0
  192. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  193. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  194. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  195. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-rust/README.md +0 -0
  196. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-rust/extension.json +0 -0
  197. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  198. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  199. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-scss/README.md +0 -0
  200. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-scss/extension.json +0 -0
  201. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  202. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  203. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  204. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  205. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  206. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-svelte/README.md +0 -0
  207. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  208. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  209. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-terraform/README.md +0 -0
  210. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  211. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  212. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-toml/README.md +0 -0
  213. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-toml/extension.json +0 -0
  214. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  215. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-typescript/README.md +0 -0
  216. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  217. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  218. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-vue/README.md +0 -0
  219. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-vue/extension.json +0 -0
  220. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  221. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  222. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  223. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  224. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  225. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-xml/README.md +0 -0
  226. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-xml/extension.json +0 -0
  227. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  228. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-yaml/README.md +0 -0
  229. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  230. /package/static/{32e26fa → 62d8630}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  231. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  232. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  233. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  234. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  235. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-ayu/README.md +0 -0
  236. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  237. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-ayu/extension.json +0 -0
  238. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-cobalt2/README.md +0 -0
  239. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  240. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  241. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  242. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  243. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-gruvbox/README.md +0 -0
  244. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  245. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-gruvbox/extension.json +0 -0
  246. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-high-contrast/README.md +0 -0
  247. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  248. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  249. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-material/README.md +0 -0
  250. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-material/color-theme.json +0 -0
  251. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-material/extension.json +0 -0
  252. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-monokai/README.md +0 -0
  253. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  254. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-monokai/extension.json +0 -0
  255. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  256. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  257. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  258. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  259. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-palenight/README.md +0 -0
  260. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  261. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-palenight/extension.json +0 -0
  262. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  263. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-slime/README.md +0 -0
  264. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-slime/color-theme.json +0 -0
  265. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-slime/extension.json +0 -0
  266. /package/static/{32e26fa → 62d8630}/extensions/builtin.theme-slime/icon.png +0 -0
  267. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/README.md +0 -0
  268. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/extension.json +0 -0
  269. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  270. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icon.png +0 -0
  271. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  272. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  273. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  274. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  275. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  276. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  277. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  278. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  279. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  280. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  281. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  282. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  283. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  284. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  285. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  286. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  287. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  288. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  289. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  290. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  291. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  292. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  293. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  294. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  295. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  296. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  297. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  298. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  299. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  300. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  301. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  302. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  303. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  304. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  305. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  306. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  307. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  308. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  309. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  310. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  311. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  312. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  313. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  314. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  315. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  316. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  317. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  318. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  319. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  320. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  321. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  322. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  323. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  324. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  325. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  326. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  327. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  328. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  329. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  330. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  331. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  332. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  333. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  334. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  335. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  336. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  337. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  338. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  339. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  340. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  341. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  342. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  343. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  344. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  345. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  346. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  347. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  348. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  349. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  350. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  351. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  352. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  353. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  354. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  355. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  356. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  357. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  358. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  359. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  360. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  361. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  362. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  363. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  364. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  365. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  366. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  367. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  368. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  369. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  370. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  371. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  372. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  373. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  374. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  375. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  376. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  377. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  378. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  379. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  380. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  381. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  382. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  383. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  384. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  385. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  386. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  387. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  388. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  389. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  390. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  391. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  392. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  393. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  394. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  395. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  396. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  397. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  398. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  399. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  400. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  401. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  402. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  403. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  404. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  405. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  406. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  407. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  408. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  409. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  410. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  411. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  412. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  413. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  414. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  415. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  416. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  417. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  418. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  419. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  420. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  421. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  422. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  423. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  424. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  425. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  426. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  427. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  428. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  429. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  430. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  431. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  432. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  433. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  434. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  435. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  436. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  437. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  438. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  439. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  440. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  441. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  442. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  443. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  444. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  445. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  446. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  447. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  448. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  449. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  450. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  451. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  452. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  453. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  454. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  455. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  456. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  457. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  458. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  459. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  460. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  461. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  462. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  463. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  464. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  465. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  466. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  467. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  468. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  469. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  470. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  471. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  472. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  473. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  474. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  475. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  476. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  477. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  478. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  479. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  480. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  481. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  482. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  483. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  484. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  485. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  486. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  487. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  488. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  489. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  490. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  491. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  492. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  493. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  494. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  495. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  496. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  497. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  498. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  499. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  500. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  501. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  502. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  503. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  504. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  505. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  506. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  507. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  508. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  509. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  510. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  511. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  512. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  513. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  514. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  515. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  516. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  517. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  518. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  519. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  520. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  521. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  522. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  523. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  524. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  525. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  526. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  527. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  528. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  529. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  530. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  531. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  532. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  533. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  534. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  535. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  536. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  537. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  538. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  539. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  540. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  541. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  542. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  543. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  544. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  545. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  546. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  547. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  548. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  549. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  550. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  551. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  552. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  553. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  554. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  555. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  556. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  557. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  558. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  559. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  560. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  561. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  562. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  563. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  564. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  565. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  566. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  567. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  568. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  569. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  570. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  571. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  572. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  573. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  574. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  575. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  576. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  577. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  578. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  579. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  580. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  581. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  582. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  583. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  584. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  585. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  586. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  587. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  588. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  589. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  590. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  591. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  592. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  593. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  594. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  595. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  596. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  597. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  598. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  599. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  600. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  601. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  602. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  603. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  604. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  605. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  606. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  607. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  608. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  609. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  610. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  611. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  612. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  613. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  614. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  615. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  616. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  617. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  618. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  619. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  620. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  621. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  622. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  623. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  624. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  625. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  626. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  627. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  628. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  629. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  630. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  631. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  632. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  633. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  634. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  635. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  636. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  637. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  638. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  639. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  640. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  641. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  642. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  643. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  644. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  645. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  646. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  647. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  648. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  649. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  650. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  651. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  652. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  653. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  654. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  655. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  656. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  657. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  658. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  659. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  660. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  661. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  662. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  663. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  664. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  665. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  666. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  667. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  668. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  669. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  670. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  671. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  672. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  673. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  674. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  675. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  676. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  677. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  678. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  679. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  680. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  681. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  682. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  683. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  684. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  685. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  686. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  687. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  688. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  689. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  690. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  691. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  692. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  693. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  694. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  695. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  696. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  697. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  698. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  699. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  700. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  701. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  702. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  703. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  704. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  705. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  706. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  707. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  708. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  709. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  710. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  711. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  712. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  713. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  714. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  715. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  716. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  717. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  718. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  719. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  720. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  721. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  722. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  723. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  724. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  725. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  726. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  727. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  728. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  729. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  730. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  731. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  732. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  733. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  734. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  735. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  736. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  737. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  738. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  739. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  740. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  741. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  742. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  743. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  744. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  745. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  746. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  747. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  748. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  749. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  750. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  751. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  752. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  753. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  754. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  755. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  756. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  757. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  758. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  759. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  760. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  761. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  762. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  763. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  764. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  765. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  766. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  767. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  768. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  769. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  770. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  771. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  772. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  773. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  774. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  775. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  776. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  777. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  778. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  779. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  780. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  781. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  782. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  783. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  784. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  785. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  786. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  787. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  788. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  789. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  790. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  791. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  792. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  793. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  794. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  795. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  796. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  797. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  798. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  799. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  800. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  801. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  802. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  803. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  804. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  805. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  806. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  807. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  808. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  809. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  810. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  811. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  812. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  813. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  814. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  815. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  816. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  817. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  818. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  819. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  820. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  821. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  822. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  823. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  824. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  825. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  826. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  827. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  828. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  829. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  830. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  831. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  832. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  833. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  834. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  835. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  836. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  837. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  838. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  839. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  840. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  841. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  842. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  843. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  844. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  845. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  846. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  847. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  848. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  849. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  850. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  851. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  852. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  853. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  854. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  855. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  856. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  857. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  858. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  859. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  860. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  861. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  862. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  863. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  864. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  865. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  866. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  867. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  868. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  869. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  870. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  871. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  872. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  873. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  874. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  875. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  876. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  877. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  878. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  879. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  880. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  881. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  882. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  883. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  884. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  885. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  886. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  887. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  888. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  889. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  890. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  891. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  892. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  893. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  894. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  895. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  896. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  897. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  898. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  899. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  900. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  901. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  902. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  903. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  904. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  905. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  906. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  907. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  908. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  909. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  910. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  911. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  912. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  913. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  914. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  915. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  916. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  917. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  918. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  919. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  920. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  921. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  922. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  923. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  924. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  925. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  926. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  927. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  928. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  929. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  930. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  931. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  932. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  933. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  934. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  935. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  936. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  937. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  938. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  939. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  940. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  941. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  942. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  943. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  944. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  945. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  946. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  947. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  948. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  949. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  950. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  951. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  952. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  953. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  954. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  955. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  956. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  957. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  958. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  959. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  960. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  961. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  962. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  963. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  964. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  965. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  966. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  967. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  968. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  969. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  970. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  971. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  972. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  973. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  974. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  975. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  976. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  977. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  978. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  979. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  980. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  981. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  982. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  983. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  984. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  985. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  986. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  987. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  988. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  989. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  990. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  991. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  992. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  993. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  994. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  995. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  996. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  997. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  998. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  999. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1000. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1001. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1002. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1003. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1004. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1005. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1006. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1007. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1008. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1009. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1010. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1011. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1012. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1013. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1014. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1015. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1016. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1017. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1018. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1019. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1020. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1021. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1022. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1023. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1024. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1025. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1026. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1027. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1028. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1029. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1030. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1031. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1032. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1033. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1034. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1035. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1036. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1037. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1038. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1039. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1040. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1041. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1042. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1043. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1044. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1045. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1046. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1047. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1048. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1049. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1050. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1051. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1052. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1053. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1054. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1055. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1056. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1057. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1058. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1059. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1060. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1061. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1062. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1063. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1064. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1065. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1066. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1067. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1068. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1069. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1070. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1071. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1072. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1073. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1074. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1075. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1076. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1077. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1078. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1079. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1080. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1081. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1082. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1083. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1084. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1085. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1086. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1087. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1088. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1089. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1090. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1091. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1092. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1093. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1094. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1095. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1096. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1097. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1098. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1099. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1100. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1101. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1102. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1103. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1104. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1105. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1106. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1107. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1108. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1109. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1110. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1111. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1112. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1113. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1114. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1115. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1116. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1117. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1118. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1119. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1120. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1121. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1122. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1123. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1124. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1125. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1126. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1127. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1128. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1129. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1130. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1131. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1132. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1133. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1134. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1135. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1136. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1137. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1138. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1139. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1140. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1141. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1142. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1143. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1144. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1145. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1146. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1147. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1148. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1149. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1150. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1151. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1152. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1153. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1154. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1155. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1156. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1157. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1158. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1159. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1160. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1161. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1162. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1163. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1164. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1165. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1166. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1167. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1168. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1169. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1170. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1171. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1172. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1173. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1174. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1175. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1176. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1177. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1178. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1179. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1180. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1181. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1182. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1183. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1184. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1185. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1186. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1187. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1188. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1189. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1190. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1191. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1192. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1193. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1194. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1195. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1196. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1197. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1198. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1199. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1200. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1201. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1202. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1203. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1204. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1205. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1206. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1207. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1208. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1209. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1210. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1211. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1212. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1213. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1214. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1215. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1216. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1217. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1218. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1219. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1220. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1221. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1222. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1223. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1224. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1225. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1226. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1227. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1228. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1229. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1230. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1231. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1232. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1233. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1234. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1235. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1236. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1237. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1238. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1239. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1240. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1241. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1242. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1243. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1244. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1245. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1246. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1247. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1248. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1249. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1250. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1251. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1252. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1253. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1254. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1255. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1256. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1257. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1258. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1259. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1260. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1261. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1262. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1263. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1264. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1265. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1266. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1267. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1268. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1269. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1270. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1271. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1272. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1273. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1274. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1275. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1276. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1277. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1278. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1279. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1280. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1281. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1282. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1283. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1284. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1285. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1286. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1287. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1288. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1289. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1290. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1291. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1292. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1293. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1294. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1295. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1296. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1297. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1298. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1299. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1300. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1301. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1302. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1303. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1304. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1305. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1306. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1307. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1308. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1309. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1310. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1311. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1312. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1313. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1314. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1315. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1316. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1317. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1318. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1319. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1320. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1321. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1322. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1323. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1324. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1325. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1326. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1327. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1328. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1329. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1330. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1331. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1332. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1333. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1334. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1335. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1336. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1337. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1338. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1339. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1340. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1341. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1342. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1343. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1344. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1345. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1346. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1347. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1348. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1349. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1350. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1351. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1352. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1353. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1354. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1355. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1356. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1357. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1358. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1359. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1360. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1361. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1362. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1363. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1364. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1365. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1366. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1367. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1368. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1369. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1370. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1371. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1372. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1373. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1374. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1375. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1376. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1377. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1378. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1379. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1380. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1381. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1382. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1383. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1384. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1385. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1386. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1387. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1388. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1389. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1390. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1391. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1392. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1393. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1394. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1395. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1396. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1397. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1398. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1399. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1400. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1401. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1402. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1403. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1404. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1405. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1406. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1407. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1408. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1409. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1410. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1411. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1412. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1413. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1414. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1415. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1416. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1417. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1418. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1419. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1420. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1421. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1422. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1423. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1424. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1425. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1426. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1427. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1428. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1429. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1430. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1431. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1432. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1433. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1434. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1435. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1436. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1437. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1438. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1439. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1440. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1441. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1442. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1443. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1444. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1445. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1446. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1447. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1448. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1449. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1450. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1451. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1452. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1453. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1454. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1455. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1456. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1457. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1458. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1459. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1460. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1461. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1462. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1463. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1464. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1465. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1466. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1467. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1468. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1469. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1470. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1471. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1472. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1473. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1474. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1475. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1476. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1477. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1478. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1479. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1480. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1481. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1482. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1483. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1484. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1485. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1486. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1487. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1488. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1489. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1490. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1491. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1492. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1493. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1494. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1495. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1496. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1497. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1498. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1499. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1500. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1501. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1502. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1503. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1504. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1505. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1506. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1507. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1508. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1509. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1510. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1511. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1512. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1513. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1514. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1515. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1516. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1517. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1518. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1519. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1520. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1521. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1522. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1523. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1524. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1525. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1526. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1527. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1528. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1529. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1530. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1531. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1532. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1533. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1534. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1535. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1536. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1537. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1538. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1539. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1540. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1541. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1542. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1543. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1544. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1545. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1546. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1547. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1548. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1549. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1550. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1551. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1552. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1553. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1554. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1555. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1556. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1557. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1558. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1559. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1560. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1561. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1562. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1563. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1564. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1565. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1566. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1567. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1568. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1569. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1570. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1571. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1572. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1573. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1574. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1575. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1576. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1577. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1578. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1579. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1580. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1581. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1582. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1583. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1584. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1585. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1586. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1587. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1588. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1589. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1590. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1591. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1592. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1593. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1594. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1595. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1596. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1597. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1598. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1599. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1600. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1601. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1602. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1603. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1604. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1605. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1606. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1607. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1608. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1609. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1610. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1611. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1612. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1613. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1614. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1615. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1616. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1617. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1618. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1619. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1620. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1621. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1622. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1623. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1624. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1625. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1626. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1627. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1628. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1629. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1630. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1631. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1632. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1633. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1634. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1635. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1636. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1637. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1638. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1639. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1640. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1641. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1642. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1643. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1644. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1645. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1646. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1647. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1648. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1649. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1650. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1651. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1652. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1653. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1654. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1655. /package/static/{32e26fa → 62d8630}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1656. /package/static/{32e26fa → 62d8630}/fonts/FiraCode-VariableFont.ttf +0 -0
  1657. /package/static/{32e26fa → 62d8630}/icons/add.svg +0 -0
  1658. /package/static/{32e26fa → 62d8630}/icons/arrow-down.svg +0 -0
  1659. /package/static/{32e26fa → 62d8630}/icons/arrow-left.svg +0 -0
  1660. /package/static/{32e26fa → 62d8630}/icons/arrow-right.svg +0 -0
  1661. /package/static/{32e26fa → 62d8630}/icons/arrow-up.svg +0 -0
  1662. /package/static/{32e26fa → 62d8630}/icons/blank.svg +0 -0
  1663. /package/static/{32e26fa → 62d8630}/icons/book.svg +0 -0
  1664. /package/static/{32e26fa → 62d8630}/icons/case-sensitive.svg +0 -0
  1665. /package/static/{32e26fa → 62d8630}/icons/check.svg +0 -0
  1666. /package/static/{32e26fa → 62d8630}/icons/chevron-down.svg +0 -0
  1667. /package/static/{32e26fa → 62d8630}/icons/chevron-left.svg +0 -0
  1668. /package/static/{32e26fa → 62d8630}/icons/chevron-right.svg +0 -0
  1669. /package/static/{32e26fa → 62d8630}/icons/chevron-up.svg +0 -0
  1670. /package/static/{32e26fa → 62d8630}/icons/chrome-close.svg +0 -0
  1671. /package/static/{32e26fa → 62d8630}/icons/chrome-maximize.svg +0 -0
  1672. /package/static/{32e26fa → 62d8630}/icons/chrome-minimize.svg +0 -0
  1673. /package/static/{32e26fa → 62d8630}/icons/chrome-restore.svg +0 -0
  1674. /package/static/{32e26fa → 62d8630}/icons/circle-filled.svg +0 -0
  1675. /package/static/{32e26fa → 62d8630}/icons/clear-all.svg +0 -0
  1676. /package/static/{32e26fa → 62d8630}/icons/close.svg +0 -0
  1677. /package/static/{32e26fa → 62d8630}/icons/cloud.svg +0 -0
  1678. /package/static/{32e26fa → 62d8630}/icons/collapse-all.svg +0 -0
  1679. /package/static/{32e26fa → 62d8630}/icons/debug-all.svg +0 -0
  1680. /package/static/{32e26fa → 62d8630}/icons/debug-alt-2.svg +0 -0
  1681. /package/static/{32e26fa → 62d8630}/icons/debug-alt-small.svg +0 -0
  1682. /package/static/{32e26fa → 62d8630}/icons/debug-alt.svg +0 -0
  1683. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  1684. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-conditional.svg +0 -0
  1685. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-data-unverified.svg +0 -0
  1686. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-data.svg +0 -0
  1687. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-function-unverified.svg +0 -0
  1688. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-function.svg +0 -0
  1689. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-log-unverified.svg +0 -0
  1690. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-log.svg +0 -0
  1691. /package/static/{32e26fa → 62d8630}/icons/debug-breakpoint-unsupported.svg +0 -0
  1692. /package/static/{32e26fa → 62d8630}/icons/debug-console.svg +0 -0
  1693. /package/static/{32e26fa → 62d8630}/icons/debug-continue-small.svg +0 -0
  1694. /package/static/{32e26fa → 62d8630}/icons/debug-continue.svg +0 -0
  1695. /package/static/{32e26fa → 62d8630}/icons/debug-coverage.svg +0 -0
  1696. /package/static/{32e26fa → 62d8630}/icons/debug-disconnect.svg +0 -0
  1697. /package/static/{32e26fa → 62d8630}/icons/debug-line-by-line.svg +0 -0
  1698. /package/static/{32e26fa → 62d8630}/icons/debug-pause.svg +0 -0
  1699. /package/static/{32e26fa → 62d8630}/icons/debug-rerun.svg +0 -0
  1700. /package/static/{32e26fa → 62d8630}/icons/debug-restart-frame.svg +0 -0
  1701. /package/static/{32e26fa → 62d8630}/icons/debug-restart.svg +0 -0
  1702. /package/static/{32e26fa → 62d8630}/icons/debug-reverse-continue.svg +0 -0
  1703. /package/static/{32e26fa → 62d8630}/icons/debug-stackframe-active.svg +0 -0
  1704. /package/static/{32e26fa → 62d8630}/icons/debug-stackframe.svg +0 -0
  1705. /package/static/{32e26fa → 62d8630}/icons/debug-start.svg +0 -0
  1706. /package/static/{32e26fa → 62d8630}/icons/debug-step-back.svg +0 -0
  1707. /package/static/{32e26fa → 62d8630}/icons/debug-step-into.svg +0 -0
  1708. /package/static/{32e26fa → 62d8630}/icons/debug-step-out.svg +0 -0
  1709. /package/static/{32e26fa → 62d8630}/icons/debug-step-over.svg +0 -0
  1710. /package/static/{32e26fa → 62d8630}/icons/debug-stop.svg +0 -0
  1711. /package/static/{32e26fa → 62d8630}/icons/debug.svg +0 -0
  1712. /package/static/{32e26fa → 62d8630}/icons/discard.svg +0 -0
  1713. /package/static/{32e26fa → 62d8630}/icons/edit.svg +0 -0
  1714. /package/static/{32e26fa → 62d8630}/icons/ellipsis.svg +0 -0
  1715. /package/static/{32e26fa → 62d8630}/icons/error.svg +0 -0
  1716. /package/static/{32e26fa → 62d8630}/icons/exclude.svg +0 -0
  1717. /package/static/{32e26fa → 62d8630}/icons/extensionDefaultIcon.png +0 -0
  1718. /package/static/{32e26fa → 62d8630}/icons/extensions.svg +0 -0
  1719. /package/static/{32e26fa → 62d8630}/icons/files.svg +0 -0
  1720. /package/static/{32e26fa → 62d8630}/icons/filter.svg +0 -0
  1721. /package/static/{32e26fa → 62d8630}/icons/go-to-file.svg +0 -0
  1722. /package/static/{32e26fa → 62d8630}/icons/icon-close.svg +0 -0
  1723. /package/static/{32e26fa → 62d8630}/icons/icon-source-control.svg +0 -0
  1724. /package/static/{32e26fa → 62d8630}/icons/icon-sync.svg +0 -0
  1725. /package/static/{32e26fa → 62d8630}/icons/icon.png +0 -0
  1726. /package/static/{32e26fa → 62d8630}/icons/icon.svg +0 -0
  1727. /package/static/{32e26fa → 62d8630}/icons/info.svg +0 -0
  1728. /package/static/{32e26fa → 62d8630}/icons/language-icon.svg +0 -0
  1729. /package/static/{32e26fa → 62d8630}/icons/link-external.svg +0 -0
  1730. /package/static/{32e26fa → 62d8630}/icons/list-flat.svg +0 -0
  1731. /package/static/{32e26fa → 62d8630}/icons/list-tree.svg +0 -0
  1732. /package/static/{32e26fa → 62d8630}/icons/new-file.svg +0 -0
  1733. /package/static/{32e26fa → 62d8630}/icons/new-folder.svg +0 -0
  1734. /package/static/{32e26fa → 62d8630}/icons/newline.svg +0 -0
  1735. /package/static/{32e26fa → 62d8630}/icons/open-preview.svg +0 -0
  1736. /package/static/{32e26fa → 62d8630}/icons/play.svg +0 -0
  1737. /package/static/{32e26fa → 62d8630}/icons/preserve-case.svg +0 -0
  1738. /package/static/{32e26fa → 62d8630}/icons/progress.svg +0 -0
  1739. /package/static/{32e26fa → 62d8630}/icons/pwa-icon-192.png +0 -0
  1740. /package/static/{32e26fa → 62d8630}/icons/pwa-icon-512.png +0 -0
  1741. /package/static/{32e26fa → 62d8630}/icons/record-keys.svg +0 -0
  1742. /package/static/{32e26fa → 62d8630}/icons/refresh.svg +0 -0
  1743. /package/static/{32e26fa → 62d8630}/icons/regex.svg +0 -0
  1744. /package/static/{32e26fa → 62d8630}/icons/remove.svg +0 -0
  1745. /package/static/{32e26fa → 62d8630}/icons/replace-all.svg +0 -0
  1746. /package/static/{32e26fa → 62d8630}/icons/replace.svg +0 -0
  1747. /package/static/{32e26fa → 62d8630}/icons/run-all.svg +0 -0
  1748. /package/static/{32e26fa → 62d8630}/icons/search.svg +0 -0
  1749. /package/static/{32e26fa → 62d8630}/icons/settings-gear.svg +0 -0
  1750. /package/static/{32e26fa → 62d8630}/icons/sort-precedence.svg +0 -0
  1751. /package/static/{32e26fa → 62d8630}/icons/source-control.svg +0 -0
  1752. /package/static/{32e26fa → 62d8630}/icons/split-horizontal.svg +0 -0
  1753. /package/static/{32e26fa → 62d8630}/icons/squiggly-error.svg +0 -0
  1754. /package/static/{32e26fa → 62d8630}/icons/squiggly-warning.svg +0 -0
  1755. /package/static/{32e26fa → 62d8630}/icons/symbol-array.svg +0 -0
  1756. /package/static/{32e26fa → 62d8630}/icons/symbol-boolean.svg +0 -0
  1757. /package/static/{32e26fa → 62d8630}/icons/symbol-class.svg +0 -0
  1758. /package/static/{32e26fa → 62d8630}/icons/symbol-color.svg +0 -0
  1759. /package/static/{32e26fa → 62d8630}/icons/symbol-constant.svg +0 -0
  1760. /package/static/{32e26fa → 62d8630}/icons/symbol-enum-member.svg +0 -0
  1761. /package/static/{32e26fa → 62d8630}/icons/symbol-enum.svg +0 -0
  1762. /package/static/{32e26fa → 62d8630}/icons/symbol-event.svg +0 -0
  1763. /package/static/{32e26fa → 62d8630}/icons/symbol-field.svg +0 -0
  1764. /package/static/{32e26fa → 62d8630}/icons/symbol-file.svg +0 -0
  1765. /package/static/{32e26fa → 62d8630}/icons/symbol-interface.svg +0 -0
  1766. /package/static/{32e26fa → 62d8630}/icons/symbol-key.svg +0 -0
  1767. /package/static/{32e26fa → 62d8630}/icons/symbol-keyword.svg +0 -0
  1768. /package/static/{32e26fa → 62d8630}/icons/symbol-method.svg +0 -0
  1769. /package/static/{32e26fa → 62d8630}/icons/symbol-misc.svg +0 -0
  1770. /package/static/{32e26fa → 62d8630}/icons/symbol-namespace.svg +0 -0
  1771. /package/static/{32e26fa → 62d8630}/icons/symbol-numeric.svg +0 -0
  1772. /package/static/{32e26fa → 62d8630}/icons/symbol-operator.svg +0 -0
  1773. /package/static/{32e26fa → 62d8630}/icons/symbol-parameter.svg +0 -0
  1774. /package/static/{32e26fa → 62d8630}/icons/symbol-property.svg +0 -0
  1775. /package/static/{32e26fa → 62d8630}/icons/symbol-ruler.svg +0 -0
  1776. /package/static/{32e26fa → 62d8630}/icons/symbol-snippet.svg +0 -0
  1777. /package/static/{32e26fa → 62d8630}/icons/symbol-string.svg +0 -0
  1778. /package/static/{32e26fa → 62d8630}/icons/symbol-structure.svg +0 -0
  1779. /package/static/{32e26fa → 62d8630}/icons/symbol-variable.svg +0 -0
  1780. /package/static/{32e26fa → 62d8630}/icons/tag.svg +0 -0
  1781. /package/static/{32e26fa → 62d8630}/icons/terminal-bash.svg +0 -0
  1782. /package/static/{32e26fa → 62d8630}/icons/terminal.svg +0 -0
  1783. /package/static/{32e26fa → 62d8630}/icons/theme-icon.png +0 -0
  1784. /package/static/{32e26fa → 62d8630}/icons/trash.svg +0 -0
  1785. /package/static/{32e26fa → 62d8630}/icons/triangle-down.svg +0 -0
  1786. /package/static/{32e26fa → 62d8630}/icons/triangle-left.svg +0 -0
  1787. /package/static/{32e26fa → 62d8630}/icons/triangle-right.svg +0 -0
  1788. /package/static/{32e26fa → 62d8630}/icons/triangle-up.svg +0 -0
  1789. /package/static/{32e26fa → 62d8630}/icons/warning.svg +0 -0
  1790. /package/static/{32e26fa → 62d8630}/icons/whole-word.svg +0 -0
  1791. /package/static/{32e26fa → 62d8630}/icons/zoom-in.svg +0 -0
  1792. /package/static/{32e26fa → 62d8630}/icons/zoom-out.svg +0 -0
  1793. /package/static/{32e26fa → 62d8630}/js/babel-parser.js +0 -0
  1794. /package/static/{32e26fa → 62d8630}/js/blob-util.js +0 -0
  1795. /package/static/{32e26fa → 62d8630}/js/ky.js +0 -0
  1796. /package/static/{32e26fa → 62d8630}/js/lvce-editor-import-script.js +0 -0
  1797. /package/static/{32e26fa → 62d8630}/js/lvce-editor-ipc.js +0 -0
  1798. /package/static/{32e26fa → 62d8630}/js/lvce-editor-json-rpc.js +0 -0
  1799. /package/static/{32e26fa → 62d8630}/js/lvce-editor-verror.js +0 -0
  1800. /package/static/{32e26fa → 62d8630}/js/p-min-delay.js +0 -0
  1801. /package/static/{32e26fa → 62d8630}/js/pretty-bytes.js +0 -0
  1802. /package/static/{32e26fa → 62d8630}/js/preview-injected.js +0 -0
  1803. /package/static/{32e26fa → 62d8630}/js/yoctodelay.js +0 -0
  1804. /package/static/{32e26fa → 62d8630}/lib-css/termterm.css +0 -0
  1805. /package/static/{32e26fa → 62d8630}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  1806. /package/static/{32e26fa → 62d8630}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  1807. /package/static/{32e26fa → 62d8630}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  1808. /package/static/{32e26fa → 62d8630}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  1809. /package/static/{32e26fa → 62d8630}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
  1810. /package/static/{32e26fa → 62d8630}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  1811. /package/static/{32e26fa → 62d8630}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  1812. /package/static/{32e26fa → 62d8630}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
  1813. /package/static/{32e26fa → 62d8630}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  1814. /package/static/{32e26fa → 62d8630}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
  1815. /package/static/{32e26fa → 62d8630}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
  1816. /package/static/{32e26fa → 62d8630}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  1817. /package/static/{32e26fa → 62d8630}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  1818. /package/static/{32e26fa → 62d8630}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  1819. /package/static/{32e26fa → 62d8630}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  1820. /package/static/{32e26fa → 62d8630}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  1821. /package/static/{32e26fa → 62d8630}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  1822. /package/static/{32e26fa → 62d8630}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  1823. /package/static/{32e26fa → 62d8630}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  1824. /package/static/{32e26fa → 62d8630}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
  1825. /package/static/{32e26fa → 62d8630}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
  1826. /package/static/{32e26fa → 62d8630}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  1827. /package/static/{32e26fa → 62d8630}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  1828. /package/static/{32e26fa → 62d8630}/packages/renderer-process/LICENSE +0 -0
  1829. /package/static/{32e26fa → 62d8630}/packages/renderer-process/README.md +0 -0
  1830. /package/static/{32e26fa → 62d8630}/packages/renderer-process/package.json +0 -0
  1831. /package/static/{32e26fa → 62d8630}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  1832. /package/static/{32e26fa → 62d8630}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  1833. /package/static/{32e26fa → 62d8630}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  1834. /package/static/{32e26fa → 62d8630}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  1835. /package/static/{32e26fa → 62d8630}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
  1836. /package/static/{32e26fa → 62d8630}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  1837. /package/static/{32e26fa → 62d8630}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
  1838. /package/static/{32e26fa → 62d8630}/playground/languages/index.cpp +0 -0
  1839. /package/static/{32e26fa → 62d8630}/playground/languages/index.css +0 -0
  1840. /package/static/{32e26fa → 62d8630}/playground/languages/index.csv +0 -0
  1841. /package/static/{32e26fa → 62d8630}/playground/languages/index.dart +0 -0
  1842. /package/static/{32e26fa → 62d8630}/playground/languages/index.env +0 -0
  1843. /package/static/{32e26fa → 62d8630}/playground/languages/index.ex +0 -0
  1844. /package/static/{32e26fa → 62d8630}/playground/languages/index.html +0 -0
  1845. /package/static/{32e26fa → 62d8630}/playground/languages/index.java +0 -0
  1846. /package/static/{32e26fa → 62d8630}/playground/languages/index.jl +0 -0
  1847. /package/static/{32e26fa → 62d8630}/playground/languages/index.js +0 -0
  1848. /package/static/{32e26fa → 62d8630}/playground/languages/index.json +0 -0
  1849. /package/static/{32e26fa → 62d8630}/playground/languages/index.kt +0 -0
  1850. /package/static/{32e26fa → 62d8630}/playground/languages/index.pl +0 -0
  1851. /package/static/{32e26fa → 62d8630}/playground/languages/index.py +0 -0
  1852. /package/static/{32e26fa → 62d8630}/playground/languages/index.ts +0 -0
  1853. /package/static/{32e26fa → 62d8630}/playground/languages/scrolling.txt +0 -0
  1854. /package/static/{32e26fa → 62d8630}/playground/languages/tsconfig.json +0 -0
  1855. /package/static/{32e26fa → 62d8630}/playground/sample-folder/a.txt +0 -0
  1856. /package/static/{32e26fa → 62d8630}/playground/sample-folder/b.txt +0 -0
  1857. /package/static/{32e26fa → 62d8630}/playground/sample-folder/c.txt +0 -0
@@ -1066,6 +1066,39 @@ const createMockRpc = ({
1066
1066
  return mockRpc;
1067
1067
  };
1068
1068
 
1069
+ const Backspace = 1;
1070
+ const Tab$1 = 2;
1071
+ const Enter = 3;
1072
+ const Escape = 8;
1073
+ const Space$1 = 9;
1074
+ const End = 255;
1075
+ const Home = 12;
1076
+ const LeftArrow = 13;
1077
+ const UpArrow = 14;
1078
+ const RightArrow = 15;
1079
+ const DownArrow = 16;
1080
+ const Delete = 18;
1081
+ const KeyA = 29;
1082
+ const KeyC = 31;
1083
+ const KeyD = 32;
1084
+ const KeyF = 34;
1085
+ const KeyH = 36;
1086
+ const KeyJ = 38;
1087
+ const KeyK = 39;
1088
+ const KeyL = 40;
1089
+ const KeyO = 43;
1090
+ const KeyV = 50;
1091
+ const KeyX = 52;
1092
+ const KeyZ = 54;
1093
+ const F2 = 58;
1094
+ const F3 = 59;
1095
+ const F4 = 60;
1096
+ const F12 = 68;
1097
+ const Period = 87;
1098
+ const Slash$1 = 88;
1099
+ const BracketLeft = 90;
1100
+ const BracketRight = 92;
1101
+
1069
1102
  const CodeGenerator = 1;
1070
1103
  const ColorPicker$1 = 2;
1071
1104
  const Completion = 3;
@@ -1075,6 +1108,10 @@ const Hover = 6;
1075
1108
  const Rename$1 = 7;
1076
1109
  const SourceAction$1 = 8;
1077
1110
 
1111
+ const CtrlCmd = 1 << 11 >>> 0;
1112
+ const Shift = 1 << 10 >>> 0;
1113
+ const Alt$1 = 1 << 9 >>> 0;
1114
+
1078
1115
  const DebugWorker = 55;
1079
1116
  const EditorWorker = 99;
1080
1117
  const ExtensionHostWorker = 44;
@@ -1774,574 +1811,1272 @@ const setDeltaY$2 = (state, value) => {
1774
1811
  };
1775
1812
  };
1776
1813
 
1777
- const splitLines = lines => {
1778
- if (!lines) {
1779
- return [''];
1814
+ const Link$1 = 'Link';
1815
+ const Function = 'Function';
1816
+ const Parameter = 'Parameter';
1817
+ const Type = 'Type';
1818
+ const VariableName = 'VariableName';
1819
+ const Class = 'Class';
1820
+
1821
+ const Link = 1;
1822
+ const Ts2816 = 2816;
1823
+ const Ts2817 = 2817;
1824
+ const Ts2824 = 2824;
1825
+ const Ts2825 = 2825;
1826
+ const Ts2856 = 2956;
1827
+ const Ts2857 = 2857;
1828
+ const Ts3072 = 3072;
1829
+ const Ts3073 = 3073;
1830
+ const Ts3077 = 3077;
1831
+ const Ts3088 = 3088;
1832
+ const Ts1792 = 1792;
1833
+ const Ts1793 = 1793;
1834
+ const Ts512 = 512;
1835
+ const Ts513 = 513;
1836
+ const Ts769 = 769;
1837
+ const Ts1024 = 1024;
1838
+ const Ts1536 = 1536;
1839
+ const Ts1537 = 1537;
1840
+ const Ts1544 = 1544;
1841
+ const Ts1545 = 1545;
1842
+ const Ts2048 = 2048;
1843
+ const Ts2049 = 2049;
1844
+ const Ts2056 = 2056;
1845
+ const Ts2057 = 2057;
1846
+ const Ts2064 = 2064;
1847
+ const Ts2080 = 2080;
1848
+ const Ts2081 = 2081;
1849
+ const Ts2088 = 2088;
1850
+ const Ts2089 = 2089;
1851
+ const Ts2313 = 2313;
1852
+ const Ts2560 = 2560;
1853
+ const Ts2561 = 2561;
1854
+ const Ts2569 = 2569;
1855
+ const Ts2584 = 2584;
1856
+ const Ts256 = 256;
1857
+ const Ts257 = 257;
1858
+ const Ts272 = 272;
1859
+
1860
+ const getDecorationClassName = type => {
1861
+ switch (type) {
1862
+ case Link:
1863
+ return Link$1;
1864
+ case Ts2816:
1865
+ case Ts2817:
1866
+ case Ts2824:
1867
+ case Ts2825:
1868
+ case Ts2856:
1869
+ case Ts2857:
1870
+ case Ts3072:
1871
+ case Ts3073:
1872
+ case Ts3077:
1873
+ case Ts3088:
1874
+ return Function;
1875
+ case Ts1792:
1876
+ case Ts1793:
1877
+ return Parameter;
1878
+ case Ts512:
1879
+ case Ts513:
1880
+ case Ts769:
1881
+ case Ts1024:
1882
+ case Ts1536:
1883
+ case Ts1537:
1884
+ case Ts1544:
1885
+ case Ts1545:
1886
+ return Type;
1887
+ case Ts2048:
1888
+ case Ts2049:
1889
+ case Ts2056:
1890
+ case Ts2057:
1891
+ case Ts2064:
1892
+ case Ts2080:
1893
+ case Ts2081:
1894
+ case Ts2088:
1895
+ case Ts2089:
1896
+ case Ts2313:
1897
+ case Ts2560:
1898
+ case Ts2561:
1899
+ case Ts2569:
1900
+ case Ts2584:
1901
+ return VariableName;
1902
+ case Ts256:
1903
+ case Ts257:
1904
+ case Ts272:
1905
+ return Class;
1906
+ default:
1907
+ return `Unknown-${type}`;
1780
1908
  }
1781
- return lines.split('\n');
1782
1909
  };
1783
1910
 
1784
- // based on https://github.com/microsoft/vscode/blob/c0769274fa136b45799edeccc0d0a2f645b75caf/src/vs/base/common/arrays.ts#L625 (License MIT)
1911
+ const deepCopy = value => {
1912
+ return structuredClone(value);
1913
+ };
1785
1914
 
1786
- // @ts-ignore
1787
- const insertInto = (array, start, newItems) => {
1788
- const originalLength = array.length;
1789
- const newItemsLength = newItems.length;
1790
- array.length = originalLength + newItemsLength;
1791
- // Move the items after the start index, start from the end so that we don't overwrite any value.
1792
- for (let i = originalLength - 1; i >= start; i--) {
1793
- array[i + newItemsLength] = array[i];
1915
+ const getInitialLineState = initialLineState => {
1916
+ return deepCopy(initialLineState);
1917
+ };
1918
+
1919
+ const state$8 = {
1920
+ warned: []
1921
+ };
1922
+ const flattenTokensArray = tokens => {
1923
+ const flattened = [];
1924
+ for (const token of tokens) {
1925
+ object(token);
1926
+ flattened.push(token.type, token.length);
1794
1927
  }
1795
- for (let i = 0; i < newItemsLength; i++) {
1796
- array[i + start] = newItems[i];
1928
+ return flattened;
1929
+ };
1930
+ const warnDeprecatedArrayReturn = (languageId, fn) => {
1931
+ if (state$8.warned.includes(fn)) {
1932
+ return;
1933
+ }
1934
+ state$8.warned.push(fn);
1935
+ console.warn(`tokenizers without hasArrayReturn=false are deprecated (language ${languageId})`);
1936
+ };
1937
+ const safeTokenizeLine = (languageId, tokenizeLine, line, lineStateAtStart, hasArrayReturn) => {
1938
+ try {
1939
+ const lineState = tokenizeLine(line, lineStateAtStart);
1940
+ if (!lineState?.tokens || !lineState.state) {
1941
+ throw new Error('invalid tokenization result');
1942
+ }
1943
+ if (!hasArrayReturn) {
1944
+ warnDeprecatedArrayReturn(languageId, tokenizeLine);
1945
+ // workaround for old tokenizers
1946
+ lineState.tokens = flattenTokensArray(lineState.tokens);
1947
+ }
1948
+ return lineState;
1949
+ } catch (error) {
1950
+ console.error(error);
1951
+ return {
1952
+ tokens: [/* type */0, /* length */line.length],
1953
+ lineState: lineStateAtStart
1954
+ };
1797
1955
  }
1798
1956
  };
1799
1957
 
1800
1958
  /**
1801
- * Alternative to the native Array.splice method, it
1802
- * can only support limited number of items due to the maximum call stack size limit.
1959
+ * @enum number
1803
1960
  */
1804
- // @ts-ignore
1805
- const spliceLargeArray = (array, start, deleteCount, newItems) => {
1806
- const result = array.splice(start, deleteCount);
1807
- insertInto(array, start, newItems);
1808
- return result;
1961
+ const State = {
1962
+ TopLevelContent: 1
1809
1963
  };
1810
1964
 
1811
- const joinLines = lines => {
1812
- return lines.join('\n');
1965
+ /**
1966
+ * @enum number
1967
+ */
1968
+ const TokenType = {
1969
+ Text: 1
1970
+ };
1971
+ const TokenMap = {
1972
+ [TokenType.Text]: 'Text'
1973
+ };
1974
+ const initialLineState = {
1975
+ state: State.TopLevelContent
1976
+ };
1977
+ const hasArrayReturn = true;
1978
+ const tokenizeLine = (line, lineState) => {
1979
+ return {
1980
+ tokens: [TokenType.Text, line.length],
1981
+ state: lineState.state
1982
+ };
1813
1983
  };
1814
1984
 
1815
- const RE_WHITESPACE = /^\s+/;
1985
+ const TokenizePlainText = {
1986
+ __proto__: null,
1987
+ State,
1988
+ TokenMap,
1989
+ TokenType,
1990
+ hasArrayReturn,
1991
+ initialLineState,
1992
+ tokenizeLine
1993
+ };
1816
1994
 
1817
- // TODO this doesn't belong here
1818
- const getIndent = line => {
1819
- const whitespaceMatch = line.match(RE_WHITESPACE);
1820
- if (!whitespaceMatch) {
1821
- return '';
1822
- }
1823
- return whitespaceMatch[0];
1995
+ let enabled$1 = false;
1996
+ const setEnabled$1 = value => {
1997
+ enabled$1 = value;
1998
+ };
1999
+ const getEnabled$1 = () => {
2000
+ return enabled$1;
1824
2001
  };
1825
2002
 
1826
- // TODO have function for single edit (most common, avoid one array)
1827
- const applyEdits = (textDocument, changes) => {
1828
- object(textDocument);
1829
- array(changes);
1830
- // TODO don't copy all lines (can be expensive, e.g. 10000 lines = 10000 * 64bit = 64kB on every keystroke)
1831
- const newLines = [...textDocument.lines];
1832
- let linesDelta = 0;
1833
- for (const change of changes) {
1834
- const startRowIndex = change.start.rowIndex + linesDelta;
1835
- const endRowIndex = change.end.rowIndex + linesDelta;
1836
- const startColumnIndex = change.start.columnIndex;
1837
- const endColumnIndex = change.end.columnIndex;
1838
- const {
1839
- inserted
1840
- } = change;
1841
- const {
1842
- deleted
1843
- } = change;
1844
- number(startRowIndex);
1845
- number(endRowIndex);
1846
- number(startColumnIndex);
1847
- number(endColumnIndex);
1848
- array(inserted);
1849
- array(deleted);
1850
- if (startRowIndex === endRowIndex) {
1851
- if (inserted.length === 0) {
1852
- const line = newLines[startRowIndex];
1853
- const before = line.slice(0, startColumnIndex);
1854
- const after = line.slice(endColumnIndex);
1855
- newLines[startRowIndex] = before + after;
1856
- } else if (inserted.length === 1) {
1857
- const line = newLines[startRowIndex];
1858
- let before = line.slice(0, startColumnIndex);
1859
- if (startColumnIndex > line.length) {
1860
- before += ' '.repeat(startColumnIndex - line.length);
1861
- }
1862
- const after = line.slice(endColumnIndex);
1863
- const text = inserted[0];
1864
- newLines[startRowIndex] = before + text + after;
1865
- } else {
1866
- const line = newLines[startRowIndex];
1867
- const before = line.slice(0, startColumnIndex) + inserted[0];
1868
- const after = inserted.at(-1) + line.slice(endColumnIndex);
1869
- spliceLargeArray(newLines, startRowIndex, deleted.length, [before, ...inserted.slice(1, -1), after]);
1870
- // TODO only do this once after all edits, not inside loop
1871
- textDocument.maxLineY = Math.min(textDocument.numberOfVisibleLines, newLines.length);
1872
- }
1873
- } else {
1874
- if (inserted.length === 1) {
1875
- const before = newLines[startRowIndex].slice(0, startColumnIndex) + inserted[0];
1876
- const after = endRowIndex >= newLines.length ? '' : newLines[endRowIndex].slice(endColumnIndex);
1877
- spliceLargeArray(newLines, startRowIndex, deleted.length, [before + after]);
1878
- } else {
1879
- const before = newLines[startRowIndex].slice(0, startColumnIndex) + inserted[0];
1880
- const middle = inserted.slice(1, -1);
1881
- const after = inserted.at(-1) + (endRowIndex >= newLines.length ? '' : newLines[endRowIndex].slice(endColumnIndex));
1882
- spliceLargeArray(newLines, startRowIndex, deleted.length, [before, ...middle, after]);
1883
- }
1884
- // TODO only do this once after all edits, not inside loop
1885
- textDocument.maxLineY = Math.min(textDocument.numberOfVisibleLines, textDocument.lines.length);
1886
- }
1887
- linesDelta += inserted.length - deleted.length;
1888
- }
1889
- return newLines;
2003
+ const {
2004
+ set: set$5,
2005
+ invoke: invoke$7} = SyntaxHighlightingWorker;
2006
+
2007
+ const state$7 = {
2008
+ tokenizers: Object.create(null),
2009
+ pending: Object.create(null)};
2010
+ const has = languageId => {
2011
+ return languageId in state$7.tokenizers;
1890
2012
  };
1891
- const getLine = (textDocument, index) => {
1892
- return textDocument.lines[index];
2013
+ const set$4 = (languageId, tokenizer) => {
2014
+ state$7.tokenizers[languageId] = tokenizer;
1893
2015
  };
1894
- const getText$1 = state => {
1895
- return joinLines(state.lines);
2016
+ const get$3 = languageId => {
2017
+ return state$7.tokenizers[languageId];
2018
+ };
2019
+ const isPending = languageId => {
2020
+ return languageId in state$7.pending;
1896
2021
  };
1897
2022
 
1898
- // TDOO this doesn;t belong here
1899
- const getSelectionText = (textDocument, range) => {
1900
- object(textDocument);
1901
- const startRowIndex = range.start.rowIndex;
1902
- const startColumnIndex = range.start.columnIndex;
1903
- const endRowIndex = Math.min(range.end.rowIndex, textDocument.lines.length - 1);
1904
- const endColumnIndex = range.end.columnIndex;
1905
- if (startRowIndex === endRowIndex) {
1906
- return [textDocument.lines[startRowIndex].slice(startColumnIndex, endColumnIndex)];
1907
- }
1908
- const selectedLines = [textDocument.lines[startRowIndex].slice(startColumnIndex), ...textDocument.lines.slice(startRowIndex + 1, endRowIndex), textDocument.lines[endRowIndex].slice(0, endColumnIndex)];
1909
- return selectedLines;
2023
+ const tokenMaps = Object.create(null);
2024
+ const set$3 = (languageId, tokenMap) => {
2025
+ tokenMaps[languageId] = tokenMap;
1910
2026
  };
1911
- const offsetAtSync = async (textDocument, positionRowIndex, positionColumnIndex) => {
1912
- object(textDocument);
1913
- number(positionRowIndex);
1914
- number(positionColumnIndex);
1915
- let offset = 0;
1916
- let rowIndex = 0;
1917
- const {
1918
- lines
1919
- } = textDocument;
1920
- const max = Math.min(positionRowIndex, textDocument.lines.length);
1921
- while (rowIndex < max) {
1922
- offset += lines[rowIndex].length + 1;
1923
- rowIndex++;
1924
- }
1925
- offset += positionColumnIndex;
1926
- return offset;
2027
+ const get$2 = languageId => {
2028
+ return tokenMaps[languageId] || {};
1927
2029
  };
1928
- const offsetAt = (textDocument, positionRowIndex, positionColumnIndex) => {
1929
- object(textDocument);
1930
- number(positionRowIndex);
1931
- number(positionColumnIndex);
1932
- let offset = 0;
1933
- let rowIndex = 0;
1934
- const {
1935
- lines
1936
- } = textDocument;
1937
- const max = Math.min(positionRowIndex, textDocument.lines.length);
1938
- while (rowIndex < max) {
1939
- offset += lines[rowIndex].length + 1;
1940
- rowIndex++;
2030
+
2031
+ // TODO loadTokenizer should be invoked from renderer worker
2032
+ const loadTokenizer = async (languageId, tokenizePath) => {
2033
+ if (!tokenizePath) {
2034
+ return;
1941
2035
  }
1942
- offset += positionColumnIndex;
1943
- return offset;
1944
- };
1945
- const positionAt = (textDocument, offset) => {
1946
- const {
1947
- lines
1948
- } = textDocument;
1949
- let rowIndex = 0;
1950
- let columnIndex = 0;
1951
- let currentOffset = 0;
1952
- while (rowIndex < lines.length && currentOffset < offset) {
1953
- currentOffset += lines[rowIndex].length + 1;
1954
- rowIndex++;
2036
+ if (getEnabled$1()) {
2037
+ // @ts-ignore
2038
+ const tokenMap = await invoke$7('Tokenizer.load', languageId, tokenizePath);
2039
+ set$3(languageId, tokenMap);
2040
+ return;
1955
2041
  }
1956
- if (currentOffset > offset) {
1957
- rowIndex--;
1958
- currentOffset -= lines[rowIndex].length + 1;
1959
- columnIndex = offset - currentOffset;
1960
- } else {
1961
- columnIndex = currentOffset - offset;
2042
+ try {
2043
+ // TODO check that tokenizer is valid
2044
+ // 1. tokenizeLine should be of type function
2045
+ // 2. getTokenClass should be of type function
2046
+ const tokenizer = await import(tokenizePath);
2047
+ if (typeof tokenizer.tokenizeLine !== 'function') {
2048
+ console.warn(`tokenizer.tokenizeLine should be a function in "${tokenizePath}"`);
2049
+ return;
2050
+ }
2051
+ if (!tokenizer.TokenMap || typeof tokenizer.TokenMap !== 'object' || Array.isArray(tokenizer.TokenMap)) {
2052
+ console.warn(`tokenizer.TokenMap should be an object in "${tokenizePath}"`);
2053
+ return;
2054
+ }
2055
+ set$3(languageId, tokenizer.TokenMap);
2056
+ set$4(languageId, tokenizer);
2057
+ } catch (error) {
2058
+ // TODO better error handling
2059
+ console.error(error);
1962
2060
  }
1963
- return {
1964
- rowIndex,
1965
- columnIndex
1966
- };
1967
2061
  };
1968
-
1969
- const getSelectionPairs = (selections, i) => {
1970
- const first = selections[i];
1971
- const second = selections[i + 1];
1972
- const third = selections[i + 2];
1973
- const fourth = selections[i + 3];
1974
- if (first > third || first === third && second >= fourth) {
1975
- return [third, fourth, first, second, 1];
2062
+ const getTokenizer = languageId => {
2063
+ if (has(languageId)) {
2064
+ return get$3(languageId);
1976
2065
  }
1977
- return [first, second, third, fourth, 0];
1978
- };
1979
-
1980
- const EmptyString = '';
1981
- const NewLine = '\n';
1982
- const Space$1 = ' ';
1983
- const Tab$1 = '\t';
1984
- const DoubleQuote$1 = '"';
1985
-
1986
- const getTabCount = string => {
1987
- let count = 0;
1988
- for (const element of string) {
1989
- if (element === Tab$1) {
1990
- count++;
1991
- }
2066
+ if (isPending(languageId)) {
2067
+ return TokenizePlainText;
1992
2068
  }
1993
- return count;
1994
- };
1995
-
1996
- const measureTextWidthFast = (text, charWidth) => {
1997
- return text.length * charWidth;
1998
- };
1999
-
2000
- const getFontString = (fontWeight, fontSize, fontFamily) => {
2001
- return `${fontWeight} ${fontSize}px ${fontFamily}`;
2069
+ return TokenizePlainText;
2002
2070
  };
2003
2071
 
2004
- const getLetterSpacingString = letterSpacing => {
2005
- return `${letterSpacing}px`;
2072
+ const tokenizers = Object.create(null);
2073
+ const set$2 = (id, value) => {
2074
+ tokenizers[id] = value;
2006
2075
  };
2007
-
2008
- const createMeasureContext = () => {
2009
- const canvas = new OffscreenCanvas(0, 0);
2010
- const ctx = /** @type {OffscreenCanvasRenderingContext2D} */canvas.getContext('2d');
2011
- if (!ctx) {
2012
- throw new Error('Failed to get canvas context 2d');
2013
- }
2014
- return ctx;
2076
+ const get$1 = id => {
2077
+ return tokenizers[id] || TokenizePlainText;
2015
2078
  };
2016
2079
 
2017
- const state$8 = {
2018
- ctx: undefined
2019
- };
2020
- const getOrCreate$4 = createCtx => {
2021
- if (state$8.ctx) {
2022
- return state$8.ctx;
2080
+ const getTokensViewportEmbedded = (langageId, lines, lineCache, linesWithEmbed) => {
2081
+ const tokenizersToLoad = [];
2082
+ const embeddedResults = [];
2083
+ let topContext;
2084
+ for (const index of linesWithEmbed) {
2085
+ const result = lineCache[index + 1];
2086
+ const line = lines[index];
2087
+ if (result.embeddedLanguage) {
2088
+ const {
2089
+ embeddedLanguage,
2090
+ embeddedLanguageStart,
2091
+ embeddedLanguageEnd
2092
+ } = result;
2093
+ const embeddedTokenizer = getTokenizer(embeddedLanguage);
2094
+ if (embeddedLanguageStart !== line.length && embeddedTokenizer && embeddedTokenizer !== TokenizePlainText) {
2095
+ const isFull = embeddedLanguageStart === 0 && embeddedLanguageEnd === line.length;
2096
+ const partialLine = line.slice(embeddedLanguageStart, embeddedLanguageEnd);
2097
+ const embedResult = safeTokenizeLine(langageId, embeddedTokenizer.tokenizeLine, partialLine, topContext || getInitialLineState(embeddedTokenizer.initialLineState), embeddedTokenizer.hasArrayReturn);
2098
+ topContext = embedResult;
2099
+ result.embeddedResultIndex = embeddedResults.length;
2100
+ embeddedResults.push({
2101
+ result: embedResult,
2102
+ TokenMap: embeddedTokenizer.TokenMap,
2103
+ isFull
2104
+ });
2105
+ } else if (line.length === 0) {
2106
+ const embedResult = {
2107
+ tokens: []
2108
+ };
2109
+ result.embeddedResultIndex = embeddedResults.length;
2110
+ embeddedResults.push({
2111
+ result: embedResult,
2112
+ isFull: true,
2113
+ TokenMap: []
2114
+ });
2115
+ } else {
2116
+ tokenizersToLoad.push(embeddedLanguage);
2117
+ embeddedResults.push({
2118
+ result: {},
2119
+ isFull: false,
2120
+ TokenMap: []
2121
+ });
2122
+ topContext = undefined;
2123
+ }
2124
+ } else {
2125
+ topContext = undefined;
2126
+ }
2023
2127
  }
2024
- state$8.ctx = createCtx();
2025
- return state$8.ctx;
2128
+ return {
2129
+ tokenizersToLoad,
2130
+ embeddedResults
2131
+ };
2026
2132
  };
2027
-
2028
- const getContext = () => {
2029
- const ctx = getOrCreate$4(createMeasureContext);
2030
- return ctx;
2133
+ const getTokenizeEndIndex = (invalidStartIndex, endLineIndex, tokenizeStartIndex) => {
2134
+ return invalidStartIndex < endLineIndex ? endLineIndex : tokenizeStartIndex;
2031
2135
  };
2032
2136
 
2033
- // TODO for text editor, could dispose measuring canvas after editor has been initialized to free up offscreencanvas space
2137
+ // TODO only send changed lines to renderer process instead of all lines in viewport
2138
+ const getTokensViewport = (editor, startLineIndex, endLineIndex) => {
2139
+ const {
2140
+ invalidStartIndex,
2141
+ lineCache,
2142
+ tokenizerId,
2143
+ lines,
2144
+ languageId
2145
+ } = editor;
2146
+ const tokenizer = get$1(tokenizerId);
2147
+ const {
2148
+ hasArrayReturn,
2149
+ tokenizeLine,
2150
+ initialLineState
2151
+ } = tokenizer;
2152
+ const tokenizeStartIndex = invalidStartIndex;
2153
+ const tokenizeEndIndex = getTokenizeEndIndex(invalidStartIndex, endLineIndex, tokenizeStartIndex);
2154
+ const tokenizersToLoad = [];
2155
+ const embeddedResults = [];
2156
+ const linesWithEmbed = [];
2157
+ for (let i = tokenizeStartIndex; i < tokenizeEndIndex; i++) {
2158
+ const lineState = i === 0 ? getInitialLineState(initialLineState) : lineCache[i];
2159
+ const line = lines[i];
2160
+ const result = safeTokenizeLine(languageId, tokenizeLine, line, lineState, hasArrayReturn);
2161
+ // TODO if lineCacheEnd matches the one before, skip tokenizing lines after
2162
+ lineCache[i + 1] = result;
2163
+ if (result.embeddedLanguage) {
2164
+ result.embeddedResultIndex = linesWithEmbed.length;
2165
+ linesWithEmbed.push(i);
2166
+ }
2167
+ }
2168
+ const visibleLines = lineCache.slice(startLineIndex + 1, endLineIndex + 1);
2169
+ if (linesWithEmbed.length > 0) {
2170
+ const {
2171
+ tokenizersToLoad,
2172
+ embeddedResults
2173
+ } = getTokensViewportEmbedded(languageId, lines, lineCache, linesWithEmbed);
2174
+ // TODO support lineCache with embedded content
2175
+ editor.invalidStartIndex = 0;
2176
+ return {
2177
+ tokens: visibleLines,
2178
+ tokenizersToLoad,
2179
+ embeddedResults
2180
+ };
2181
+ }
2182
+ editor.invalidStartIndex = Math.max(invalidStartIndex, tokenizeEndIndex);
2183
+ return {
2184
+ tokens: visibleLines,
2185
+ tokenizersToLoad,
2186
+ embeddedResults
2187
+ };
2188
+ };
2034
2189
 
2035
- const measureTextWidthSlow = (text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth) => {
2036
- string(text);
2037
- number(fontWeight);
2038
- number(fontSize);
2039
- string(fontFamily);
2040
- boolean(isMonoSpaceFont);
2041
- number(charWidth);
2042
- if (typeof letterSpacing !== 'number') {
2043
- throw new TypeError('letterSpacing must be of type number');
2190
+ const sentLines = Object.create(null);
2191
+
2192
+ // TODO only send changed lines to renderer process instead of all lines in viewport
2193
+ const getTokensViewport2 = async (editor, startLineIndex, endLineIndex, syncIncremental) => {
2194
+ if (getEnabled$1()) {
2195
+ if (syncIncremental) {
2196
+ const {
2197
+ invalidStartIndex,
2198
+ lines,
2199
+ languageId,
2200
+ id
2201
+ } = editor;
2202
+ let hasLinesToSend = true;
2203
+ let linesToSend = lines;
2204
+ if (sentLines[id] === lines) {
2205
+ hasLinesToSend = false;
2206
+ linesToSend = [];
2207
+ } else {
2208
+ sentLines[id] = lines;
2209
+ }
2210
+ const slimEditor = {
2211
+ languageId,
2212
+ invalidStartIndex
2213
+ };
2214
+ return invoke$7('GetTokensViewport.getTokensViewport', slimEditor,
2215
+ // @ts-ignore
2216
+ startLineIndex, endLineIndex, hasLinesToSend, id, linesToSend);
2217
+ }
2218
+ // TODO only send needed lines of text
2219
+ // @ts-ignore
2220
+ return invoke$7('GetTokensViewport.getTokensViewport', editor, startLineIndex, endLineIndex, true, editor.id, editor.lines);
2044
2221
  }
2045
- const letterSpacingString = getLetterSpacingString(letterSpacing);
2046
- const fontString = getFontString(fontWeight, fontSize, fontFamily);
2047
- const ctx = getContext();
2048
- ctx.letterSpacing = letterSpacingString;
2049
- ctx.font = fontString;
2050
- const metrics = ctx.measureText(text);
2051
- const {
2052
- width
2053
- } = metrics;
2054
- return width;
2222
+ return getTokensViewport(editor, startLineIndex, endLineIndex);
2055
2223
  };
2056
2224
 
2057
- const measureTextWidth = (text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth) => {
2058
- if (isMonoSpaceFont) {
2059
- return measureTextWidthFast(text, charWidth);
2225
+ const loadTokenizers = async languageIds => {
2226
+ for (const languageId of languageIds) {
2227
+ // @ts-ignore
2228
+ await loadTokenizer(languageId);
2060
2229
  }
2061
- return measureTextWidthSlow(text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth);
2062
2230
  };
2063
2231
 
2232
+ const EmptyString = '';
2233
+ const NewLine = '\n';
2234
+ const Space = ' ';
2235
+ const Tab = '\t';
2236
+ const DoubleQuote$1 = '"';
2237
+
2064
2238
  const normalizeText = (text, normalize, tabSize) => {
2065
2239
  if (normalize) {
2066
- return text.replaceAll(Tab$1, Space$1.repeat(tabSize));
2240
+ return text.replaceAll(Tab, Space.repeat(tabSize));
2067
2241
  }
2068
2242
  return text;
2069
2243
  };
2070
2244
  const shouldNormalizeText = text => {
2071
- return text.includes(Tab$1);
2245
+ return text.includes(Tab);
2072
2246
  };
2073
2247
 
2074
- const getX = (line, column, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, difference = 0) => {
2075
- if (!line) {
2076
- return 0;
2077
- }
2078
- string(line);
2079
- number(tabSize);
2080
- number(halfCursorWidth);
2081
- number(width);
2082
- boolean(isMonospaceFont);
2083
- number(averageCharWidth);
2084
- number(difference);
2085
- if (column === 0) {
2086
- return 0;
2248
+ // based on https://github.com/microsoft/vscode/blob/c0769274fa136b45799edeccc0d0a2f645b75caf/src/vs/base/common/arrays.ts#L625 (License MIT)
2249
+
2250
+ // @ts-ignore
2251
+ const insertInto = (array, start, newItems) => {
2252
+ const originalLength = array.length;
2253
+ const newItemsLength = newItems.length;
2254
+ array.length = originalLength + newItemsLength;
2255
+ // Move the items after the start index, start from the end so that we don't overwrite any value.
2256
+ for (let i = originalLength - 1; i >= start; i--) {
2257
+ array[i + newItemsLength] = array[i];
2087
2258
  }
2088
- // TODO support non-monospace font, emoji, tab character, zero width characters
2089
- if (column * averageCharWidth > width) {
2090
- return width;
2259
+ for (let i = 0; i < newItemsLength; i++) {
2260
+ array[i + start] = newItems[i];
2091
2261
  }
2092
- const normalize = shouldNormalizeText(line);
2093
- const normalizedLine = normalizeText(line, normalize, tabSize);
2094
- const tabCount = getTabCount(line.slice(0, column));
2095
- const partialText = normalizedLine.slice(0, column + tabCount);
2096
- return measureTextWidth(partialText, fontWeight, fontSize, fontFamily, letterSpacing, isMonospaceFont, averageCharWidth) - halfCursorWidth + difference;
2097
2262
  };
2098
2263
 
2099
- const getY = (row, minLineY, rowHeight) => {
2100
- return (row - minLineY) * rowHeight;
2264
+ /**
2265
+ * Alternative to the native Array.splice method, it
2266
+ * can only support limited number of items due to the maximum call stack size limit.
2267
+ */
2268
+ // @ts-ignore
2269
+ const spliceLargeArray = (array, start, deleteCount, newItems) => {
2270
+ const result = array.splice(start, deleteCount);
2271
+ insertInto(array, start, newItems);
2272
+ return result;
2101
2273
  };
2102
2274
 
2103
- const px = value => {
2104
- return `${value}px`;
2275
+ const joinLines = lines => {
2276
+ return lines.join('\n');
2105
2277
  };
2106
2278
 
2107
- const fromRange = (startRowIndex, startColumnIndex, endRowIndex, endColumnIndex) => {
2108
- return new Uint32Array([startRowIndex, startColumnIndex, endRowIndex, endColumnIndex]);
2109
- };
2110
- const alloc = length => {
2111
- return new Uint32Array(length);
2112
- };
2113
- const clone = selections => {
2114
- return alloc(selections.length);
2115
- };
2116
- const map = (selections, fn) => {
2117
- const newSelections = clone(selections);
2118
- for (let i = 0; i < newSelections.length; i += 4) {
2119
- const [selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn] = getSelectionPairs(selections, i);
2120
- fn(newSelections, i, selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn);
2279
+ const RE_WHITESPACE = /^\s+/;
2280
+
2281
+ // TODO this doesn't belong here
2282
+ const getIndent = line => {
2283
+ const whitespaceMatch = line.match(RE_WHITESPACE);
2284
+ if (!whitespaceMatch) {
2285
+ return '';
2121
2286
  }
2122
- return newSelections;
2287
+ return whitespaceMatch[0];
2123
2288
  };
2124
- const forEach = (selections, fn) => {
2125
- for (let i = 0; i < selections.length; i += 4) {
2126
- const selectionStartRow = selections[i];
2127
- const selectionStartColumn = selections[i + 1];
2128
- const selectionEndRow = selections[i + 2];
2129
- const selectionEndColumn = selections[i + 3];
2130
- fn(selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn);
2289
+
2290
+ // TODO have function for single edit (most common, avoid one array)
2291
+ const applyEdits = (textDocument, changes) => {
2292
+ object(textDocument);
2293
+ array(changes);
2294
+ // TODO don't copy all lines (can be expensive, e.g. 10000 lines = 10000 * 64bit = 64kB on every keystroke)
2295
+ const newLines = [...textDocument.lines];
2296
+ let linesDelta = 0;
2297
+ for (const change of changes) {
2298
+ const startRowIndex = change.start.rowIndex + linesDelta;
2299
+ const endRowIndex = change.end.rowIndex + linesDelta;
2300
+ const startColumnIndex = change.start.columnIndex;
2301
+ const endColumnIndex = change.end.columnIndex;
2302
+ const {
2303
+ inserted
2304
+ } = change;
2305
+ const {
2306
+ deleted
2307
+ } = change;
2308
+ number(startRowIndex);
2309
+ number(endRowIndex);
2310
+ number(startColumnIndex);
2311
+ number(endColumnIndex);
2312
+ array(inserted);
2313
+ array(deleted);
2314
+ if (startRowIndex === endRowIndex) {
2315
+ if (inserted.length === 0) {
2316
+ const line = newLines[startRowIndex];
2317
+ const before = line.slice(0, startColumnIndex);
2318
+ const after = line.slice(endColumnIndex);
2319
+ newLines[startRowIndex] = before + after;
2320
+ } else if (inserted.length === 1) {
2321
+ const line = newLines[startRowIndex];
2322
+ let before = line.slice(0, startColumnIndex);
2323
+ if (startColumnIndex > line.length) {
2324
+ before += ' '.repeat(startColumnIndex - line.length);
2325
+ }
2326
+ const after = line.slice(endColumnIndex);
2327
+ const text = inserted[0];
2328
+ newLines[startRowIndex] = before + text + after;
2329
+ } else {
2330
+ const line = newLines[startRowIndex];
2331
+ const before = line.slice(0, startColumnIndex) + inserted[0];
2332
+ const after = inserted.at(-1) + line.slice(endColumnIndex);
2333
+ spliceLargeArray(newLines, startRowIndex, deleted.length, [before, ...inserted.slice(1, -1), after]);
2334
+ // TODO only do this once after all edits, not inside loop
2335
+ textDocument.maxLineY = Math.min(textDocument.numberOfVisibleLines, newLines.length);
2336
+ }
2337
+ } else {
2338
+ if (inserted.length === 1) {
2339
+ const before = newLines[startRowIndex].slice(0, startColumnIndex) + inserted[0];
2340
+ const after = endRowIndex >= newLines.length ? '' : newLines[endRowIndex].slice(endColumnIndex);
2341
+ spliceLargeArray(newLines, startRowIndex, deleted.length, [before + after]);
2342
+ } else {
2343
+ const before = newLines[startRowIndex].slice(0, startColumnIndex) + inserted[0];
2344
+ const middle = inserted.slice(1, -1);
2345
+ const after = inserted.at(-1) + (endRowIndex >= newLines.length ? '' : newLines[endRowIndex].slice(endColumnIndex));
2346
+ spliceLargeArray(newLines, startRowIndex, deleted.length, [before, ...middle, after]);
2347
+ }
2348
+ // TODO only do this once after all edits, not inside loop
2349
+ textDocument.maxLineY = Math.min(textDocument.numberOfVisibleLines, textDocument.lines.length);
2350
+ }
2351
+ linesDelta += inserted.length - deleted.length;
2131
2352
  }
2353
+ return newLines;
2132
2354
  };
2133
- const moveRangeToPosition$1 = (selections, i, rowIndex, columnIndex) => {
2134
- selections[i] = selections[i + 2] = rowIndex;
2135
- selections[i + 1] = selections[i + 3] = columnIndex;
2136
- };
2137
- const isEmpty = (selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn) => {
2138
- return selectionStartRow === selectionEndRow && selectionStartColumn === selectionEndColumn;
2139
- };
2140
- const isSelectionSingleLine = (selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn) => {
2141
- return selectionStartRow === selectionEndRow;
2142
- };
2143
- const isEverySelection = (selections, fn) => {
2144
- for (let i = 0; i < selections.length; i += 4) {
2145
- const selectionStartRow = selections[i];
2146
- const selectionStartColumn = selections[i + 1];
2147
- const selectionEndRow = selections[i + 2];
2148
- const selectionEndColumn = selections[i + 3];
2149
- if (!fn(selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn)) {
2150
- return false;
2151
- }
2152
- }
2153
- return true;
2154
- };
2155
- const isEverySelectionEmpty = selections => {
2156
- return isEverySelection(selections, isEmpty);
2157
- };
2158
- const isEverySelectionSingleLine = selections => {
2159
- return isEverySelection(selections, isSelectionSingleLine);
2160
- };
2161
- const from = (array, getSelection) => {
2162
- const newSelections = alloc(array.length * 4);
2163
- let i = 0;
2164
- for (const item of array) {
2165
- const {
2166
- start,
2167
- end
2168
- } = getSelection(item);
2169
- newSelections[i++] = start.rowIndex;
2170
- newSelections[i++] = start.columnIndex;
2171
- newSelections[i++] = end.rowIndex;
2172
- newSelections[i++] = end.columnIndex;
2173
- }
2174
- return newSelections;
2355
+ const getLine = (textDocument, index) => {
2356
+ return textDocument.lines[index];
2175
2357
  };
2176
- const push = (selections, startRowIndex, startColumnIndex, endRowIndex, endColumnIndex) => {
2177
- const oldLength = selections.length;
2178
- const newSelections = alloc(oldLength + 4);
2179
- newSelections.set(selections);
2180
- newSelections[oldLength + 1] = startRowIndex;
2181
- newSelections[oldLength + 2] = startColumnIndex;
2182
- newSelections[oldLength + 3] = endRowIndex;
2183
- newSelections[oldLength + 4] = endColumnIndex;
2184
- return newSelections;
2358
+ const getText$1 = state => {
2359
+ return joinLines(state.lines);
2185
2360
  };
2186
2361
 
2187
- // TODO maybe only accept sorted selection edits in the first place
2188
-
2189
- const emptyCursors = [];
2190
- const getCursorArray = (visibleCursors, isFocused) => {
2191
- if (!isFocused) {
2192
- return emptyCursors;
2193
- }
2194
- const cursorArray = [];
2195
- for (let i = 0; i < visibleCursors.length; i += 2) {
2196
- const x = visibleCursors[i];
2197
- const y = visibleCursors[i + 1];
2198
- cursorArray.push(`${px(x)} ${px(y)}`);
2362
+ // TDOO this doesn;t belong here
2363
+ const getSelectionText = (textDocument, range) => {
2364
+ object(textDocument);
2365
+ const startRowIndex = range.start.rowIndex;
2366
+ const startColumnIndex = range.start.columnIndex;
2367
+ const endRowIndex = Math.min(range.end.rowIndex, textDocument.lines.length - 1);
2368
+ const endColumnIndex = range.end.columnIndex;
2369
+ if (startRowIndex === endRowIndex) {
2370
+ return [textDocument.lines[startRowIndex].slice(startColumnIndex, endColumnIndex)];
2199
2371
  }
2200
- return cursorArray;
2372
+ const selectedLines = [textDocument.lines[startRowIndex].slice(startColumnIndex), ...textDocument.lines.slice(startRowIndex + 1, endRowIndex), textDocument.lines[endRowIndex].slice(0, endColumnIndex)];
2373
+ return selectedLines;
2201
2374
  };
2202
- const getSelectionArray = visibleSelections => {
2203
- const selectionsArray = [];
2204
- for (let i = 0; i < visibleSelections.length; i += 4) {
2205
- const x = visibleSelections[i];
2206
- const y = visibleSelections[i + 1];
2207
- const width = visibleSelections[i + 2];
2208
- const height = visibleSelections[i + 3];
2209
- selectionsArray.push(px(x), px(y), px(width), px(height));
2375
+ const offsetAtSync = async (textDocument, positionRowIndex, positionColumnIndex) => {
2376
+ object(textDocument);
2377
+ number(positionRowIndex);
2378
+ number(positionColumnIndex);
2379
+ let offset = 0;
2380
+ let rowIndex = 0;
2381
+ const {
2382
+ lines
2383
+ } = textDocument;
2384
+ const max = Math.min(positionRowIndex, textDocument.lines.length);
2385
+ while (rowIndex < max) {
2386
+ offset += lines[rowIndex].length + 1;
2387
+ rowIndex++;
2210
2388
  }
2211
- return selectionsArray;
2389
+ offset += positionColumnIndex;
2390
+ return offset;
2212
2391
  };
2213
- const getVisible$1 = editor => {
2214
- const visibleCursors = [];
2215
- const visibleSelections = [];
2216
- // // TODO binary search
2217
-
2392
+ const offsetAt = (textDocument, positionRowIndex, positionColumnIndex) => {
2393
+ object(textDocument);
2394
+ number(positionRowIndex);
2395
+ number(positionColumnIndex);
2396
+ let offset = 0;
2397
+ let rowIndex = 0;
2218
2398
  const {
2219
- selections,
2220
- minLineY,
2221
- maxLineY,
2222
- rowHeight,
2223
- lines,
2224
- fontSize,
2225
- fontFamily,
2226
- fontWeight,
2227
- letterSpacing,
2228
- cursorWidth,
2229
- tabSize,
2230
- width,
2231
- differences,
2232
- focused,
2233
- charWidth,
2234
- isMonospaceFont
2235
- } = editor;
2236
- const averageCharWidth = charWidth;
2237
- const halfCursorWidth = cursorWidth / 2;
2238
- for (let i = 0; i < selections.length; i += 4) {
2239
- const [selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn, reversed] = getSelectionPairs(selections, i);
2240
- if (selectionEndRow < minLineY || selectionStartRow > maxLineY) {
2241
- continue;
2242
- }
2243
- const relativeEndLineRow = selectionEndRow - minLineY;
2244
- const endLineDifference = differences[relativeEndLineRow];
2245
- const endLine = lines[selectionEndRow];
2246
- const endLineEndX = getX(endLine, selectionEndColumn, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, endLineDifference);
2247
- const endLineY = getY(selectionEndRow, minLineY, rowHeight);
2248
- if (isEmpty(selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn) && endLineEndX > 0) {
2249
- visibleCursors.push(endLineEndX, endLineY);
2250
- continue;
2251
- }
2252
- const startLineY = getY(selectionStartRow, minLineY, rowHeight);
2253
- const startLineYRelative = selectionStartRow - minLineY;
2254
- const startLineDifference = differences[startLineYRelative];
2255
- if (selectionStartRow === selectionEndRow) {
2256
- const startX = getX(endLine, selectionStartColumn, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, startLineDifference);
2257
- if (reversed) {
2258
- visibleCursors.push(startX, endLineY);
2259
- } else if (endLineEndX >= 0) {
2260
- visibleCursors.push(endLineEndX, endLineY);
2261
- }
2262
- const selectionWidth = endLineEndX - startX;
2263
- visibleSelections.push(startX, startLineY, selectionWidth, rowHeight);
2264
- } else {
2265
- if (selectionStartRow >= minLineY) {
2266
- const startLine = lines[selectionStartRow];
2267
- const startLineStartX = getX(startLine, selectionStartColumn, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, startLineDifference);
2268
- const startLineEndX = getX(startLine, startLine.length, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, startLineDifference);
2269
- const startLineStartY = getY(selectionStartRow, minLineY, rowHeight);
2270
- const selectionWidth = startLineEndX - startLineStartX;
2271
- if (reversed) {
2272
- visibleCursors.push(startLineStartX, startLineStartY);
2273
- }
2274
- visibleSelections.push(startLineStartX, startLineStartY, selectionWidth, rowHeight);
2275
- }
2276
- const iMin = Math.max(selectionStartRow + 1, minLineY);
2277
- const iMax = Math.min(selectionEndRow, maxLineY);
2278
- for (let i = iMin; i < iMax; i++) {
2279
- const currentLine = lines[i];
2280
- const currentLineY = getY(i, minLineY, rowHeight);
2281
- const relativeLine = i - minLineY;
2282
- const difference = differences[relativeLine];
2283
- const selectionWidth = getX(currentLine, currentLine.length, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, difference);
2284
- visibleSelections.push(0, currentLineY, selectionWidth, rowHeight);
2285
- }
2286
- if (selectionEndRow <= maxLineY) {
2287
- const selectionWidth = endLineEndX;
2288
- visibleSelections.push(0, endLineY, selectionWidth, rowHeight);
2289
- if (!reversed) {
2290
- visibleCursors.push(selectionWidth, endLineY);
2291
- }
2292
- }
2293
- }
2399
+ lines
2400
+ } = textDocument;
2401
+ const max = Math.min(positionRowIndex, textDocument.lines.length);
2402
+ while (rowIndex < max) {
2403
+ offset += lines[rowIndex].length + 1;
2404
+ rowIndex++;
2294
2405
  }
2295
- // TODO maybe use Uint32array or Float64Array?
2296
- return {
2297
- cursorInfos: getCursorArray(visibleCursors, focused),
2298
- selectionInfos: getSelectionArray(visibleSelections)
2299
- };
2406
+ offset += positionColumnIndex;
2407
+ return offset;
2300
2408
  };
2301
-
2302
- const getSelectionFromChange = change => {
2409
+ const positionAt = (textDocument, offset) => {
2303
2410
  const {
2304
- start,
2305
- inserted
2306
- } = change;
2307
- const startRowIndex = start.rowIndex;
2308
- const startColumnIndex = start.columnIndex;
2309
- const insertedLength = inserted.length;
2310
- if (insertedLength === 1) {
2311
- const newPosition = {
2312
- rowIndex: startRowIndex + insertedLength - 1,
2313
- columnIndex: inserted.at(-1).length + startColumnIndex
2314
- };
2315
- return {
2316
- start: newPosition,
2317
- end: newPosition
2318
- };
2411
+ lines
2412
+ } = textDocument;
2413
+ let rowIndex = 0;
2414
+ let columnIndex = 0;
2415
+ let currentOffset = 0;
2416
+ while (rowIndex < lines.length && currentOffset < offset) {
2417
+ currentOffset += lines[rowIndex].length + 1;
2418
+ rowIndex++;
2419
+ }
2420
+ if (currentOffset > offset) {
2421
+ rowIndex--;
2422
+ currentOffset -= lines[rowIndex].length + 1;
2423
+ columnIndex = offset - currentOffset;
2424
+ } else {
2425
+ columnIndex = currentOffset - offset;
2319
2426
  }
2320
- const newPosition = {
2321
- rowIndex: startRowIndex + insertedLength - 1,
2322
- columnIndex: startColumnIndex
2323
- };
2324
- return {
2325
- start: newPosition,
2326
- end: newPosition
2327
- };
2328
- };
2329
- const setSelections$1 = (editor, selections) => {
2330
- object(editor);
2331
- // Assert.uint32array(selections)
2332
2427
  return {
2333
- ...editor,
2334
- selections
2428
+ rowIndex,
2429
+ columnIndex
2335
2430
  };
2336
- // editor.selections = selections
2337
- // GlobalEventBus.emitEvent('editor.selectionChange', editor, selections)
2338
2431
  };
2339
2432
 
2340
- // TODO maybe only accept sorted selection edits in the first place
2341
-
2342
- // TODO avoid allocating too many objects when creating new selection from changes
2343
- // @ts-ignore
2344
- const applyEdit$1 = (editor, changes) => {
2433
+ // const getTokensIncremental = (editor, min, max) => {
2434
+ // const currentLength = editor.lineStateCache.length
2435
+ // const tokens = []
2436
+ // const lines = editor.lines
2437
+ // let lineState = editor.tokenizer.initialLineState
2438
+ // for (let i = currentLength; i < max; i++) {
2439
+ // const line = lines[i]
2440
+ // try {
2441
+ // lineState = editor.tokenizer.tokenizeLine(line, lineState)
2442
+ // if (!lineState || !lineState.tokens || !lineState.state) {
2443
+ // throw new Error('invalid tokenization result')
2444
+ // }
2445
+ // } catch (error) {
2446
+ // tokens.push([{ length: line.length, type: 0 }])
2447
+ // console.error(error)
2448
+ // // renderWithoutSyntaxHighlighting(state, firstRow, lastRow)
2449
+ // continue
2450
+ // }
2451
+ // const newTokens = lineState.tokens
2452
+ // tokens.push(newTokens)
2453
+ // }
2454
+ // return tokens
2455
+ // }
2456
+
2457
+ // const getLineInfosIncremental = (editor, tokens, minLineY, maxLineY) => {
2458
+ // const result = []
2459
+ // const lines = editor.lines
2460
+ // const TokenMap = editor.tokenizer.TokenMap
2461
+ // for (let i = minLineY; i < maxLineY; i++) {
2462
+ // result.push(getLineInfo(lines[i], tokens[i], TokenMap))
2463
+ // }
2464
+ // return result
2465
+ // }
2466
+
2467
+ const getStartDefaults = (tokens, minOffset) => {
2468
+ let start = 0;
2469
+ let end = 0;
2470
+ let startIndex = 0;
2471
+ const tokensLength = tokens.length;
2472
+ for (let i = 0; i < tokensLength; i += 2) {
2473
+ const tokenLength = tokens[i + 1];
2474
+ end += tokenLength;
2475
+ start = end;
2476
+ if (start >= minOffset) {
2477
+ start -= tokenLength;
2478
+ end -= tokenLength;
2479
+ startIndex = i;
2480
+ break;
2481
+ }
2482
+ }
2483
+ return {
2484
+ start,
2485
+ end,
2486
+ startIndex
2487
+ };
2488
+ };
2489
+ const getLineInfoEmbeddedFull = (embeddedResults, tokenResults, line, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset) => {
2490
+ const lineInfo = [];
2491
+ const embeddedResult = embeddedResults[tokenResults.embeddedResultIndex];
2492
+ const embeddedTokens = embeddedResult.result.tokens;
2493
+ const embeddedTokenMap = embeddedResult.TokenMap;
2494
+ const tokensLength = embeddedTokens.length;
2495
+ let {
2496
+ startIndex,
2497
+ start,
2498
+ end
2499
+ } = getStartDefaults(embeddedTokens, minOffset);
2500
+ const difference = getDifference(start, averageCharWidth, deltaX);
2501
+ for (let i = startIndex; i < tokensLength; i += 2) {
2502
+ const tokenType = embeddedTokens[i];
2503
+ const tokenLength = embeddedTokens[i + 1];
2504
+ end += tokenLength;
2505
+ const className = `Token ${embeddedTokenMap[tokenType] || 'Unknown'}`;
2506
+ const text = line.slice(start, end);
2507
+ const normalizedText = normalizeText(text, normalize, tabSize);
2508
+ lineInfo.push(normalizedText, className);
2509
+ start = end;
2510
+ if (end >= maxOffset) {
2511
+ break;
2512
+ }
2513
+ }
2514
+ return {
2515
+ lineInfo,
2516
+ difference
2517
+ };
2518
+ };
2519
+ const getOffsets = (deltaX, width, averageCharWidth) => {
2520
+ // TODO accurately measure char widths using offscreen canvas
2521
+ // and use fast measurements for monospace ascii text
2522
+ if (deltaX === 0) {
2523
+ return {
2524
+ minOffset: 0,
2525
+ maxOffset: Math.ceil(width / averageCharWidth)
2526
+ };
2527
+ }
2528
+ const minOffset = Math.ceil(deltaX / averageCharWidth);
2529
+ const maxOffset = minOffset + Math.ceil(width / averageCharWidth);
2530
+ return {
2531
+ minOffset,
2532
+ maxOffset
2533
+ };
2534
+ };
2535
+ const getDifference = (start, averageCharWidth, deltaX) => {
2536
+ const beforeWidth = start * averageCharWidth;
2537
+ const difference = beforeWidth - deltaX;
2538
+ return difference;
2539
+ };
2540
+ const getLineInfoDefault = (line, tokenResults, embeddedResults, decorations, TokenMap, lineOffset, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset) => {
2541
+ const lineInfo = [];
2542
+ let decorationIndex = 0;
2543
+ for (; decorationIndex < decorations.length; decorationIndex += 3) {
2544
+ const decorationOffset = decorations[decorationIndex];
2545
+ if (decorationOffset >= lineOffset) {
2546
+ break;
2547
+ }
2548
+ }
2549
+ const {
2550
+ tokens
2551
+ } = tokenResults;
2552
+ let {
2553
+ startIndex,
2554
+ start,
2555
+ end
2556
+ } = getStartDefaults(tokens, minOffset);
2557
+ const difference = getDifference(start, averageCharWidth, deltaX);
2558
+ const tokensLength = tokens.length;
2559
+ for (let i = startIndex; i < tokensLength; i += 2) {
2560
+ const tokenType = tokens[i];
2561
+ const tokenLength = tokens[i + 1];
2562
+ const decorationOffset = decorations[decorationIndex];
2563
+ let extraClassName = '';
2564
+ if (decorationOffset !== undefined && decorationOffset - lineOffset === start) {
2565
+ // @ts-ignore
2566
+ decorations[++decorationIndex];
2567
+ const decorationType = decorations[++decorationIndex];
2568
+ // @ts-ignore
2569
+ decorations[++decorationIndex];
2570
+ // decorationIndex,
2571
+ // decorationLength,
2572
+ // decorationType,
2573
+ // decorationModifiers,
2574
+ // })
2575
+ extraClassName = getDecorationClassName(decorationType);
2576
+ }
2577
+ end += tokenLength;
2578
+ const text = line.slice(start, end);
2579
+ const className = `Token ${extraClassName || TokenMap[tokenType] || 'Unknown'}`;
2580
+ const normalizedText = normalizeText(text, normalize, tabSize);
2581
+ lineInfo.push(normalizedText, className);
2582
+ start = end;
2583
+ if (end >= maxOffset) {
2584
+ break;
2585
+ }
2586
+ }
2587
+ return {
2588
+ lineInfo,
2589
+ difference
2590
+ };
2591
+ };
2592
+ const getLineInfo$1 = (line, tokenResults, embeddedResults, decorations, TokenMap, lineOffset, normalize, tabSize, width, deltaX, averageCharWidth) => {
2593
+ const {
2594
+ minOffset,
2595
+ maxOffset
2596
+ } = getOffsets(deltaX, width, averageCharWidth);
2597
+ if (embeddedResults.length > 0 && tokenResults.embeddedResultIndex !== undefined) {
2598
+ const embeddedResult = embeddedResults[tokenResults.embeddedResultIndex];
2599
+ if (embeddedResult?.isFull) {
2600
+ return getLineInfoEmbeddedFull(embeddedResults, tokenResults, line, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset);
2601
+ }
2602
+ }
2603
+ return getLineInfoDefault(line, tokenResults, embeddedResults, decorations, TokenMap, lineOffset, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset);
2604
+ };
2605
+
2606
+ // TODO need lots of tests for this
2607
+ const getLineInfosViewport = (editor, tokens, embeddedResults, minLineY, maxLineY, minLineOffset, width, deltaX, averageCharWidth) => {
2608
+ const result = [];
2609
+ const differences = [];
2610
+ const {
2611
+ lines,
2612
+ decorations,
2613
+ languageId
2614
+ } = editor;
2615
+ const tokenMap = get$2(languageId);
2616
+ let offset = minLineOffset;
2617
+ const tabSize = 2;
2618
+ for (let i = minLineY; i < maxLineY; i++) {
2619
+ const line = lines[i];
2620
+ const normalize = shouldNormalizeText(line);
2621
+ const {
2622
+ lineInfo,
2623
+ difference
2624
+ } = getLineInfo$1(line, tokens[i - minLineY], embeddedResults, decorations, tokenMap, offset, normalize, tabSize, width, deltaX, averageCharWidth);
2625
+ result.push(lineInfo);
2626
+ differences.push(difference);
2627
+ offset += line.length + 1;
2628
+ }
2629
+ return {
2630
+ result,
2631
+ differences
2632
+ };
2633
+ };
2634
+ const getVisible$1 = async (editor, syncIncremental) => {
2635
+ // TODO should separate rendering from business logic somehow
2636
+ // currently hard to test because need to mock editor height, top, left,
2637
+ // invalidStartIndex, lineCache, etc. just for testing editorType
2638
+ // editor.invalidStartIndex = changes[0].start.rowIndex
2639
+ // @ts-ignore
2640
+ const {
2641
+ minLineY,
2642
+ numberOfVisibleLines,
2643
+ lines,
2644
+ width,
2645
+ deltaX,
2646
+ charWidth
2647
+ } = editor;
2648
+ const maxLineY = Math.min(minLineY + numberOfVisibleLines, lines.length);
2649
+ // @ts-ignore
2650
+ const {
2651
+ tokens,
2652
+ tokenizersToLoad,
2653
+ embeddedResults
2654
+ } = await getTokensViewport2(editor, minLineY, maxLineY, syncIncremental);
2655
+ const minLineOffset = offsetAtSync(editor, minLineY, 0);
2656
+ const averageCharWidth = charWidth;
2657
+ const {
2658
+ result,
2659
+ differences
2660
+ } = getLineInfosViewport(editor, tokens, embeddedResults, minLineY, maxLineY, minLineOffset, width, deltaX, averageCharWidth);
2661
+ if (tokenizersToLoad.length > 0) {
2662
+ loadTokenizers(tokenizersToLoad);
2663
+ }
2664
+ return {
2665
+ textInfos: result,
2666
+ differences
2667
+ };
2668
+ };
2669
+
2670
+ const emptyIncrementalEdits = [];
2671
+
2672
+ const getIncrementalEdits = async (oldState, newState) => {
2673
+ if (!newState.undoStack) {
2674
+ return emptyIncrementalEdits;
2675
+ }
2676
+ if (oldState.undoStack === newState.undoStack) {
2677
+ return emptyIncrementalEdits;
2678
+ }
2679
+ const lastChanges = newState.undoStack.at(-1);
2680
+ if (lastChanges && lastChanges.length === 1) {
2681
+ const lastChange = lastChanges[0];
2682
+ if (lastChange.origin === EditorType) {
2683
+ const {
2684
+ rowIndex
2685
+ } = lastChange.start;
2686
+ const {
2687
+ lines
2688
+ } = newState;
2689
+ const oldLine = oldState.lines[rowIndex];
2690
+ const newLine = lines[rowIndex];
2691
+ // @ts-ignore
2692
+ const incrementalEdits = await invoke$7(
2693
+ // @ts-ignore
2694
+ 'TokenizeIncremental.tokenizeIncremental', newState.uid,
2695
+ // @ts-ignore
2696
+ newState.languageId, oldLine, newLine, rowIndex, newState.minLineY);
2697
+ if (incrementalEdits && incrementalEdits.length === 1) {
2698
+ return incrementalEdits;
2699
+ }
2700
+ }
2701
+ }
2702
+ return emptyIncrementalEdits;
2703
+ };
2704
+
2705
+ const splitLines = lines => {
2706
+ if (!lines) {
2707
+ return [''];
2708
+ }
2709
+ return lines.split('\n');
2710
+ };
2711
+
2712
+ let enabled = false;
2713
+ const setEnabled = value => {
2714
+ enabled = value;
2715
+ };
2716
+ const getEnabled = () => {
2717
+ return enabled;
2718
+ };
2719
+
2720
+ const getSelectionPairs = (selections, i) => {
2721
+ const first = selections[i];
2722
+ const second = selections[i + 1];
2723
+ const third = selections[i + 2];
2724
+ const fourth = selections[i + 3];
2725
+ if (first > third || first === third && second >= fourth) {
2726
+ return [third, fourth, first, second, 1];
2727
+ }
2728
+ return [first, second, third, fourth, 0];
2729
+ };
2730
+
2731
+ const getTabCount = string => {
2732
+ let count = 0;
2733
+ for (const element of string) {
2734
+ if (element === Tab) {
2735
+ count++;
2736
+ }
2737
+ }
2738
+ return count;
2739
+ };
2740
+
2741
+ const measureTextWidthFast = (text, charWidth) => {
2742
+ return text.length * charWidth;
2743
+ };
2744
+
2745
+ const getFontString = (fontWeight, fontSize, fontFamily) => {
2746
+ return `${fontWeight} ${fontSize}px ${fontFamily}`;
2747
+ };
2748
+
2749
+ const getLetterSpacingString = letterSpacing => {
2750
+ return `${letterSpacing}px`;
2751
+ };
2752
+
2753
+ const createMeasureContext = () => {
2754
+ const canvas = new OffscreenCanvas(0, 0);
2755
+ const ctx = /** @type {OffscreenCanvasRenderingContext2D} */canvas.getContext('2d');
2756
+ if (!ctx) {
2757
+ throw new Error('Failed to get canvas context 2d');
2758
+ }
2759
+ return ctx;
2760
+ };
2761
+
2762
+ const state$6 = {
2763
+ ctx: undefined
2764
+ };
2765
+ const getOrCreate$4 = createCtx => {
2766
+ if (state$6.ctx) {
2767
+ return state$6.ctx;
2768
+ }
2769
+ state$6.ctx = createCtx();
2770
+ return state$6.ctx;
2771
+ };
2772
+
2773
+ const getContext = () => {
2774
+ const ctx = getOrCreate$4(createMeasureContext);
2775
+ return ctx;
2776
+ };
2777
+
2778
+ // TODO for text editor, could dispose measuring canvas after editor has been initialized to free up offscreencanvas space
2779
+
2780
+ const measureTextWidthSlow = (text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth) => {
2781
+ string(text);
2782
+ number(fontWeight);
2783
+ number(fontSize);
2784
+ string(fontFamily);
2785
+ boolean(isMonoSpaceFont);
2786
+ number(charWidth);
2787
+ if (typeof letterSpacing !== 'number') {
2788
+ throw new TypeError('letterSpacing must be of type number');
2789
+ }
2790
+ const letterSpacingString = getLetterSpacingString(letterSpacing);
2791
+ const fontString = getFontString(fontWeight, fontSize, fontFamily);
2792
+ const ctx = getContext();
2793
+ ctx.letterSpacing = letterSpacingString;
2794
+ ctx.font = fontString;
2795
+ const metrics = ctx.measureText(text);
2796
+ const {
2797
+ width
2798
+ } = metrics;
2799
+ return width;
2800
+ };
2801
+
2802
+ const measureTextWidth = (text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth) => {
2803
+ if (isMonoSpaceFont) {
2804
+ return measureTextWidthFast(text, charWidth);
2805
+ }
2806
+ return measureTextWidthSlow(text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth);
2807
+ };
2808
+
2809
+ const getX = (line, column, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, difference = 0) => {
2810
+ if (!line) {
2811
+ return 0;
2812
+ }
2813
+ string(line);
2814
+ number(tabSize);
2815
+ number(halfCursorWidth);
2816
+ number(width);
2817
+ boolean(isMonospaceFont);
2818
+ number(averageCharWidth);
2819
+ number(difference);
2820
+ if (column === 0) {
2821
+ return 0;
2822
+ }
2823
+ // TODO support non-monospace font, emoji, tab character, zero width characters
2824
+ if (column * averageCharWidth > width) {
2825
+ return width;
2826
+ }
2827
+ const normalize = shouldNormalizeText(line);
2828
+ const normalizedLine = normalizeText(line, normalize, tabSize);
2829
+ const tabCount = getTabCount(line.slice(0, column));
2830
+ const partialText = normalizedLine.slice(0, column + tabCount);
2831
+ return measureTextWidth(partialText, fontWeight, fontSize, fontFamily, letterSpacing, isMonospaceFont, averageCharWidth) - halfCursorWidth + difference;
2832
+ };
2833
+
2834
+ const getY = (row, minLineY, rowHeight) => {
2835
+ return (row - minLineY) * rowHeight;
2836
+ };
2837
+
2838
+ const px = value => {
2839
+ return `${value}px`;
2840
+ };
2841
+
2842
+ const fromRange = (startRowIndex, startColumnIndex, endRowIndex, endColumnIndex) => {
2843
+ return new Uint32Array([startRowIndex, startColumnIndex, endRowIndex, endColumnIndex]);
2844
+ };
2845
+ const alloc = length => {
2846
+ return new Uint32Array(length);
2847
+ };
2848
+ const clone = selections => {
2849
+ return alloc(selections.length);
2850
+ };
2851
+ const map = (selections, fn) => {
2852
+ const newSelections = clone(selections);
2853
+ for (let i = 0; i < newSelections.length; i += 4) {
2854
+ const [selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn] = getSelectionPairs(selections, i);
2855
+ fn(newSelections, i, selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn);
2856
+ }
2857
+ return newSelections;
2858
+ };
2859
+ const forEach = (selections, fn) => {
2860
+ for (let i = 0; i < selections.length; i += 4) {
2861
+ const selectionStartRow = selections[i];
2862
+ const selectionStartColumn = selections[i + 1];
2863
+ const selectionEndRow = selections[i + 2];
2864
+ const selectionEndColumn = selections[i + 3];
2865
+ fn(selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn);
2866
+ }
2867
+ };
2868
+ const moveRangeToPosition$1 = (selections, i, rowIndex, columnIndex) => {
2869
+ selections[i] = selections[i + 2] = rowIndex;
2870
+ selections[i + 1] = selections[i + 3] = columnIndex;
2871
+ };
2872
+ const isEmpty = (selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn) => {
2873
+ return selectionStartRow === selectionEndRow && selectionStartColumn === selectionEndColumn;
2874
+ };
2875
+ const isSelectionSingleLine = (selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn) => {
2876
+ return selectionStartRow === selectionEndRow;
2877
+ };
2878
+ const isEverySelection = (selections, fn) => {
2879
+ for (let i = 0; i < selections.length; i += 4) {
2880
+ const selectionStartRow = selections[i];
2881
+ const selectionStartColumn = selections[i + 1];
2882
+ const selectionEndRow = selections[i + 2];
2883
+ const selectionEndColumn = selections[i + 3];
2884
+ if (!fn(selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn)) {
2885
+ return false;
2886
+ }
2887
+ }
2888
+ return true;
2889
+ };
2890
+ const isEverySelectionEmpty = selections => {
2891
+ return isEverySelection(selections, isEmpty);
2892
+ };
2893
+ const isEverySelectionSingleLine = selections => {
2894
+ return isEverySelection(selections, isSelectionSingleLine);
2895
+ };
2896
+ const from = (array, getSelection) => {
2897
+ const newSelections = alloc(array.length * 4);
2898
+ let i = 0;
2899
+ for (const item of array) {
2900
+ const {
2901
+ start,
2902
+ end
2903
+ } = getSelection(item);
2904
+ newSelections[i++] = start.rowIndex;
2905
+ newSelections[i++] = start.columnIndex;
2906
+ newSelections[i++] = end.rowIndex;
2907
+ newSelections[i++] = end.columnIndex;
2908
+ }
2909
+ return newSelections;
2910
+ };
2911
+ const push = (selections, startRowIndex, startColumnIndex, endRowIndex, endColumnIndex) => {
2912
+ const oldLength = selections.length;
2913
+ const newSelections = alloc(oldLength + 4);
2914
+ newSelections.set(selections);
2915
+ newSelections[oldLength + 1] = startRowIndex;
2916
+ newSelections[oldLength + 2] = startColumnIndex;
2917
+ newSelections[oldLength + 3] = endRowIndex;
2918
+ newSelections[oldLength + 4] = endColumnIndex;
2919
+ return newSelections;
2920
+ };
2921
+
2922
+ // TODO maybe only accept sorted selection edits in the first place
2923
+
2924
+ const emptyCursors = [];
2925
+ const getCursorArray = (visibleCursors, isFocused) => {
2926
+ if (!isFocused) {
2927
+ return emptyCursors;
2928
+ }
2929
+ const cursorArray = [];
2930
+ for (let i = 0; i < visibleCursors.length; i += 2) {
2931
+ const x = visibleCursors[i];
2932
+ const y = visibleCursors[i + 1];
2933
+ cursorArray.push(`${px(x)} ${px(y)}`);
2934
+ }
2935
+ return cursorArray;
2936
+ };
2937
+ const getSelectionArray = visibleSelections => {
2938
+ const selectionsArray = [];
2939
+ for (let i = 0; i < visibleSelections.length; i += 4) {
2940
+ const x = visibleSelections[i];
2941
+ const y = visibleSelections[i + 1];
2942
+ const width = visibleSelections[i + 2];
2943
+ const height = visibleSelections[i + 3];
2944
+ selectionsArray.push(px(x), px(y), px(width), px(height));
2945
+ }
2946
+ return selectionsArray;
2947
+ };
2948
+ const getVisible = editor => {
2949
+ const visibleCursors = [];
2950
+ const visibleSelections = [];
2951
+ // // TODO binary search
2952
+
2953
+ const {
2954
+ selections,
2955
+ minLineY,
2956
+ maxLineY,
2957
+ rowHeight,
2958
+ lines,
2959
+ fontSize,
2960
+ fontFamily,
2961
+ fontWeight,
2962
+ letterSpacing,
2963
+ cursorWidth,
2964
+ tabSize,
2965
+ width,
2966
+ differences,
2967
+ focused,
2968
+ charWidth,
2969
+ isMonospaceFont
2970
+ } = editor;
2971
+ const averageCharWidth = charWidth;
2972
+ const halfCursorWidth = cursorWidth / 2;
2973
+ for (let i = 0; i < selections.length; i += 4) {
2974
+ const [selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn, reversed] = getSelectionPairs(selections, i);
2975
+ if (selectionEndRow < minLineY || selectionStartRow > maxLineY) {
2976
+ continue;
2977
+ }
2978
+ const relativeEndLineRow = selectionEndRow - minLineY;
2979
+ const endLineDifference = differences[relativeEndLineRow];
2980
+ const endLine = lines[selectionEndRow];
2981
+ const endLineEndX = getX(endLine, selectionEndColumn, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, endLineDifference);
2982
+ const endLineY = getY(selectionEndRow, minLineY, rowHeight);
2983
+ if (isEmpty(selectionStartRow, selectionStartColumn, selectionEndRow, selectionEndColumn) && endLineEndX > 0) {
2984
+ visibleCursors.push(endLineEndX, endLineY);
2985
+ continue;
2986
+ }
2987
+ const startLineY = getY(selectionStartRow, minLineY, rowHeight);
2988
+ const startLineYRelative = selectionStartRow - minLineY;
2989
+ const startLineDifference = differences[startLineYRelative];
2990
+ if (selectionStartRow === selectionEndRow) {
2991
+ const startX = getX(endLine, selectionStartColumn, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, startLineDifference);
2992
+ if (reversed) {
2993
+ visibleCursors.push(startX, endLineY);
2994
+ } else if (endLineEndX >= 0) {
2995
+ visibleCursors.push(endLineEndX, endLineY);
2996
+ }
2997
+ const selectionWidth = endLineEndX - startX;
2998
+ visibleSelections.push(startX, startLineY, selectionWidth, rowHeight);
2999
+ } else {
3000
+ if (selectionStartRow >= minLineY) {
3001
+ const startLine = lines[selectionStartRow];
3002
+ const startLineStartX = getX(startLine, selectionStartColumn, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, startLineDifference);
3003
+ const startLineEndX = getX(startLine, startLine.length, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, startLineDifference);
3004
+ const startLineStartY = getY(selectionStartRow, minLineY, rowHeight);
3005
+ const selectionWidth = startLineEndX - startLineStartX;
3006
+ if (reversed) {
3007
+ visibleCursors.push(startLineStartX, startLineStartY);
3008
+ }
3009
+ visibleSelections.push(startLineStartX, startLineStartY, selectionWidth, rowHeight);
3010
+ }
3011
+ const iMin = Math.max(selectionStartRow + 1, minLineY);
3012
+ const iMax = Math.min(selectionEndRow, maxLineY);
3013
+ for (let i = iMin; i < iMax; i++) {
3014
+ const currentLine = lines[i];
3015
+ const currentLineY = getY(i, minLineY, rowHeight);
3016
+ const relativeLine = i - minLineY;
3017
+ const difference = differences[relativeLine];
3018
+ const selectionWidth = getX(currentLine, currentLine.length, fontWeight, fontSize, fontFamily, isMonospaceFont, letterSpacing, tabSize, halfCursorWidth, width, averageCharWidth, difference);
3019
+ visibleSelections.push(0, currentLineY, selectionWidth, rowHeight);
3020
+ }
3021
+ if (selectionEndRow <= maxLineY) {
3022
+ const selectionWidth = endLineEndX;
3023
+ visibleSelections.push(0, endLineY, selectionWidth, rowHeight);
3024
+ if (!reversed) {
3025
+ visibleCursors.push(selectionWidth, endLineY);
3026
+ }
3027
+ }
3028
+ }
3029
+ }
3030
+ // TODO maybe use Uint32array or Float64Array?
3031
+ return {
3032
+ cursorInfos: getCursorArray(visibleCursors, focused),
3033
+ selectionInfos: getSelectionArray(visibleSelections)
3034
+ };
3035
+ };
3036
+
3037
+ const getSelectionFromChange = change => {
3038
+ const {
3039
+ start,
3040
+ inserted
3041
+ } = change;
3042
+ const startRowIndex = start.rowIndex;
3043
+ const startColumnIndex = start.columnIndex;
3044
+ const insertedLength = inserted.length;
3045
+ if (insertedLength === 1) {
3046
+ const newPosition = {
3047
+ rowIndex: startRowIndex + insertedLength - 1,
3048
+ columnIndex: inserted.at(-1).length + startColumnIndex
3049
+ };
3050
+ return {
3051
+ start: newPosition,
3052
+ end: newPosition
3053
+ };
3054
+ }
3055
+ const newPosition = {
3056
+ rowIndex: startRowIndex + insertedLength - 1,
3057
+ columnIndex: startColumnIndex
3058
+ };
3059
+ return {
3060
+ start: newPosition,
3061
+ end: newPosition
3062
+ };
3063
+ };
3064
+ const setSelections$1 = (editor, selections) => {
3065
+ object(editor);
3066
+ // Assert.uint32array(selections)
3067
+ return {
3068
+ ...editor,
3069
+ selections
3070
+ };
3071
+ // editor.selections = selections
3072
+ // GlobalEventBus.emitEvent('editor.selectionChange', editor, selections)
3073
+ };
3074
+
3075
+ // TODO maybe only accept sorted selection edits in the first place
3076
+
3077
+ // TODO avoid allocating too many objects when creating new selection from changes
3078
+ // @ts-ignore
3079
+ const applyEdit$1 = (editor, changes) => {
2345
3080
  object(editor);
2346
3081
  array(changes);
2347
3082
  const newSelections = from(changes, getSelectionFromChange);
@@ -2428,15 +3163,29 @@ const scheduleDocumentAndCursorsSelections = async (editor, changes, selectionCh
2428
3163
  autoClosingRanges
2429
3164
  };
2430
3165
  set$6(editor.uid, editor, newEditor);
3166
+ const incrementalEdits = await getIncrementalEdits(editor, newEditor);
2431
3167
  const newWidgets = await applyWidgetChanges(newEditor, changes);
2432
3168
  const newEditor2 = {
2433
3169
  ...newEditor,
2434
- widgets: newWidgets
3170
+ widgets: newWidgets,
3171
+ incrementalEdits
3172
+ };
3173
+ if (incrementalEdits !== emptyIncrementalEdits) {
3174
+ return newEditor2;
3175
+ }
3176
+ const syncIncremental = getEnabled();
3177
+ const {
3178
+ textInfos,
3179
+ differences
3180
+ } = await getVisible$1(newEditor2, syncIncremental);
3181
+ return {
3182
+ ...newEditor2,
3183
+ textInfos,
3184
+ differences
2435
3185
  };
2436
- return newEditor2;
2437
3186
  };
2438
3187
  // @ts-ignore
2439
- const scheduleDocumentAndCursorsSelectionIsUndo = (editor, changes) => {
3188
+ const scheduleDocumentAndCursorsSelectionIsUndo = async (editor, changes) => {
2440
3189
  object(editor);
2441
3190
  array(changes);
2442
3191
  if (changes.length === 0) {
@@ -2456,7 +3205,26 @@ const scheduleDocumentAndCursorsSelectionIsUndo = (editor, changes) => {
2456
3205
  // undoStack: [...editor.undoStack.slice(0, -2)],
2457
3206
  invalidStartIndex
2458
3207
  };
2459
- return newEditor;
3208
+ const incrementalEdits = await getIncrementalEdits(editor, newEditor);
3209
+
3210
+ // TODO change event should be emitted after rendering
3211
+ const finalEditor = {
3212
+ ...newEditor,
3213
+ incrementalEdits
3214
+ };
3215
+ if (incrementalEdits !== emptyIncrementalEdits) {
3216
+ return finalEditor;
3217
+ }
3218
+ const syncIncremental = getEnabled();
3219
+ const {
3220
+ textInfos,
3221
+ differences
3222
+ } = await getVisible$1(finalEditor, syncIncremental);
3223
+ return {
3224
+ ...finalEditor,
3225
+ textInfos,
3226
+ differences
3227
+ };
2460
3228
  };
2461
3229
 
2462
3230
  // @ts-ignore
@@ -2481,8 +3249,26 @@ const scheduleDocument = async (editor, changes) => {
2481
3249
  lines: newLines,
2482
3250
  invalidStartIndex
2483
3251
  };
3252
+ const incrementalEdits = await getIncrementalEdits(editor, newEditor);
3253
+
2484
3254
  // TODO change event should be emitted after rendering
2485
- return newEditor;
3255
+ const finalEditor = {
3256
+ ...newEditor,
3257
+ incrementalEdits
3258
+ };
3259
+ if (incrementalEdits !== emptyIncrementalEdits) {
3260
+ return finalEditor;
3261
+ }
3262
+ const syncIncremental = getEnabled();
3263
+ const {
3264
+ textInfos,
3265
+ differences
3266
+ } = await getVisible$1(finalEditor, syncIncremental);
3267
+ return {
3268
+ ...finalEditor,
3269
+ textInfos,
3270
+ differences
3271
+ };
2486
3272
  // RendererProcess.send([
2487
3273
  // /* Viewlet.invoke */ 'Viewlet.send',
2488
3274
  // /* id */ 'EditorText',
@@ -2548,8 +3334,8 @@ const TabCompletionExecuteTabCompletionProvider = 'ExtensionHost.executeTabCompl
2548
3334
  const TextDocumentSyncFull = 'ExtensionHostTextDocument.syncFull';
2549
3335
 
2550
3336
  const {
2551
- set: set$5,
2552
- invoke: invoke$7} = ExtensionHost;
3337
+ set: set$1,
3338
+ invoke: invoke$6} = ExtensionHost;
2553
3339
 
2554
3340
  const ColorPicker = 41;
2555
3341
  const EditorCompletion = 9;
@@ -2578,7 +3364,7 @@ const execute = async ({
2578
3364
  }) => {
2579
3365
  const fullEvent = `${event}:${editor.languageId}`;
2580
3366
  await activateByEvent(fullEvent);
2581
- const result = await invoke$7(method, editor.uid, ...args);
3367
+ const result = await invoke$6(method, editor.uid, ...args);
2582
3368
  return result;
2583
3369
  };
2584
3370
 
@@ -2646,7 +3432,7 @@ const updateDiagnostics = async newState => {
2646
3432
  // TODO don't really need text document sync response
2647
3433
  // could perhaps save a lot of messages by using send instead of invoke
2648
3434
  // @ts-ignore
2649
- await invoke$7(TextDocumentSyncFull, newState.uri, newState.id, newState.languageId, content);
3435
+ await invoke$6(TextDocumentSyncFull, newState.uri, newState.id, newState.languageId, content);
2650
3436
  const diagnostics = await executeDiagnosticProvider(newState);
2651
3437
  const latest = get$4(newState.id);
2652
3438
  if (!latest) {
@@ -2672,6 +3458,8 @@ const updateDiagnostics = async newState => {
2672
3458
  };
2673
3459
 
2674
3460
  const emptyEditor = {
3461
+ textInfos: [],
3462
+ differences: [],
2675
3463
  uri: '',
2676
3464
  languageId: '',
2677
3465
  // TODO use numeric language id?
@@ -2695,7 +3483,8 @@ const emptyEditor = {
2695
3483
  selections: new Uint32Array(),
2696
3484
  diagnostics: [],
2697
3485
  highlightedLine: -1,
2698
- debugEnabled: false
3486
+ debugEnabled: false,
3487
+ incrementalEdits: emptyIncrementalEdits
2699
3488
  };
2700
3489
  const createEditor = async ({
2701
3490
  id,
@@ -2732,6 +3521,7 @@ const createEditor = async ({
2732
3521
  string(content);
2733
3522
  const charWidth = measureCharacterWidth(fontWeight, fontSize, fontFamily, letterSpacing);
2734
3523
  const editor = {
3524
+ textInfos: [],
2735
3525
  uri,
2736
3526
  isAutoClosingBracketsEnabled,
2737
3527
  isAutoClosingTagsEnabled,
@@ -2787,7 +3577,8 @@ const createEditor = async ({
2787
3577
  id,
2788
3578
  widgets: [],
2789
3579
  focusKey: Empty,
2790
- diagnosticsEnabled
3580
+ diagnosticsEnabled,
3581
+ incrementalEdits: emptyIncrementalEdits
2791
3582
  };
2792
3583
  // TODO avoid creating intermediate editors here
2793
3584
  const newEditor1 = setBounds(editor, x, y, width, height, 9);
@@ -2800,13 +3591,23 @@ const createEditor = async ({
2800
3591
  } else {
2801
3592
  newEditor3 = setDeltaY$2(newEditor2, 0);
2802
3593
  }
3594
+ const syncIncremental = getEnabled();
3595
+ const {
3596
+ textInfos,
3597
+ differences
3598
+ } = await getVisible$1(newEditor3, syncIncremental);
2803
3599
  const newEditor4 = {
2804
3600
  ...newEditor3,
2805
- focused: true
3601
+ focused: true,
3602
+ textInfos,
3603
+ differences
2806
3604
  };
2807
3605
  set$6(id, emptyEditor, newEditor4);
3606
+
3607
+ // TODO only sync when needed
3608
+ // e.g. it might not always be necessary to send text to extension host worker
2808
3609
  // @ts-ignore
2809
- await invoke$7(TextDocumentSyncFull, uri, id, languageId, content);
3610
+ await invoke$6(TextDocumentSyncFull, uri, id, languageId, content);
2810
3611
  if (diagnosticsEnabled) {
2811
3612
  updateDiagnostics(newEditor4);
2812
3613
  }
@@ -3086,7 +3887,7 @@ const guessOffset = (eventX, averageCharWidth) => {
3086
3887
  const normalizeGuess = (line, guess, tabSize) => {
3087
3888
  let normalizedGuess = guess;
3088
3889
  for (let i = 0; i < guess; i++) {
3089
- if (line[i] === Tab$1) {
3890
+ if (line[i] === Tab) {
3090
3891
  normalizedGuess -= tabSize - 1;
3091
3892
  }
3092
3893
  }
@@ -3180,7 +3981,7 @@ const y = (editor, rowIndex) => {
3180
3981
  return offsetY;
3181
3982
  };
3182
3983
 
3183
- const state$7 = {
3984
+ const state$5 = {
3184
3985
  timeout: -1
3185
3986
  };
3186
3987
 
@@ -3211,7 +4012,7 @@ const editorShowMessage = async (editor, rowIndex, columnIndex, message, isError
3211
4012
 
3212
4013
  // TODO use wrapper timing module instead of this
3213
4014
  // @ts-ignore
3214
- state$7.timeout = setTimeout(handleTimeout, 3000);
4015
+ state$5.timeout = setTimeout(handleTimeout, 3000);
3215
4016
  }
3216
4017
  return editor;
3217
4018
  };
@@ -3231,8 +4032,8 @@ const showErrorMessage = async (editor, rowIndex, columnIndex, message) => {
3231
4032
 
3232
4033
  // @ts-ignore
3233
4034
  const editorHideMessage = async editor => {
3234
- clearTimeout(state$7.timeout);
3235
- state$7.timeout = -1;
4035
+ clearTimeout(state$5.timeout);
4036
+ state$5.timeout = -1;
3236
4037
  // await RendererProcess.invoke(/* Viewlet.send */ 'Viewlet.send', /* id */ editor.uid, /* method */ 'hideOverlayMessage')
3237
4038
  return editor;
3238
4039
  };
@@ -3357,7 +4158,7 @@ const getOrCreate$3 = () => {
3357
4158
  }
3358
4159
  return workerPromise$3;
3359
4160
  };
3360
- const invoke$6 = async (method, ...params) => {
4161
+ const invoke$5 = async (method, ...params) => {
3361
4162
  const worker = await getOrCreate$3();
3362
4163
  return await worker.invoke(method, ...params);
3363
4164
  };
@@ -3376,7 +4177,7 @@ const closeRename = async editor => {
3376
4177
  return editor;
3377
4178
  }
3378
4179
  const renameWidget = widgets[renameWidgetIndex];
3379
- await invoke$6('Rename.close', renameWidget.newState.uid);
4180
+ await invoke$5('Rename.close', renameWidget.newState.uid);
3380
4181
  const latest = get$4(uid);
3381
4182
  const {
3382
4183
  newState
@@ -3495,12 +4296,12 @@ const openColorPicker = async editor => {
3495
4296
  return addWidgetToEditor(ColorPicker$1, ColorPicker, editor, create$6, newStateGenerator$6);
3496
4297
  };
3497
4298
 
3498
- const state$6 = {
4299
+ const state$4 = {
3499
4300
  isComposing: false,
3500
4301
  compositionText: ''
3501
4302
  };
3502
4303
  const compositionStart = (editor, event) => {
3503
- state$6.isComposing = true;
4304
+ state$4.isComposing = true;
3504
4305
  return editor;
3505
4306
  };
3506
4307
  const getCompositionChanges = (selections, data) => {
@@ -3510,7 +4311,7 @@ const getCompositionChanges = (selections, data) => {
3510
4311
  const selectionStartColumn = selections[i + 1];
3511
4312
  const selectionEndRow = selections[i + 2];
3512
4313
  const selectionEndColumn = selections[i + 3];
3513
- const startColumnIndex = selectionStartColumn - state$6.compositionText.length;
4314
+ const startColumnIndex = selectionStartColumn - state$4.compositionText.length;
3514
4315
  changes.push({
3515
4316
  start: {
3516
4317
  rowIndex: selectionStartRow,
@@ -3521,7 +4322,7 @@ const getCompositionChanges = (selections, data) => {
3521
4322
  columnIndex: selectionEndColumn
3522
4323
  },
3523
4324
  inserted: [data],
3524
- deleted: [state$6.compositionText],
4325
+ deleted: [state$4.compositionText],
3525
4326
  origin: CompositionUpdate
3526
4327
  });
3527
4328
  }
@@ -3532,7 +4333,7 @@ const compositionUpdate = (editor, data) => {
3532
4333
  selections
3533
4334
  } = editor;
3534
4335
  const changes = getCompositionChanges(selections, data);
3535
- state$6.compositionText = data;
4336
+ state$4.compositionText = data;
3536
4337
  return scheduleDocumentAndCursorsSelections(editor, changes);
3537
4338
  };
3538
4339
  const compositionEnd = (editor, data) => {
@@ -3540,8 +4341,8 @@ const compositionEnd = (editor, data) => {
3540
4341
  selections
3541
4342
  } = editor;
3542
4343
  const changes = getCompositionChanges(selections, data);
3543
- state$6.isComposing = false;
3544
- state$6.compositionText = '';
4344
+ state$4.isComposing = false;
4345
+ state$4.compositionText = '';
3545
4346
  return scheduleDocumentAndCursorsSelections(editor, changes);
3546
4347
  };
3547
4348
 
@@ -3755,7 +4556,7 @@ const characterRight = (line, columnIndex) => {
3755
4556
  return next.segment.length;
3756
4557
  };
3757
4558
  const isWhitespace = char => {
3758
- return char === Space$1 || char === Tab$1;
4559
+ return char === Space || char === Tab;
3759
4560
  };
3760
4561
  const lineCharacterStart = (line, columnIndex) => {
3761
4562
  if (line.length === 0) {
@@ -4567,68 +5368,38 @@ const goToTypeDefinition = async (editor, explicit = true) => {
4567
5368
  });
4568
5369
  };
4569
5370
 
4570
- const Editor = 3;
4571
-
4572
- const handleContextMenu = async (editor, button, x, y) => {
4573
- await invoke$9(/* ContextMenu.show */'ContextMenu.show', /* x */x, /* y */y, /* id */Editor);
4574
- return editor;
4575
- };
4576
-
4577
- // @ts-ignore
4578
-
4579
- // match all words, including umlauts, see https://stackoverflow.com/questions/5436824/matching-accented-characters-with-javascript-regexes/#answer-11550799
4580
- const RE_WORD_START = /^[a-z\u00C0-\u017F\d]+/i;
4581
- const RE_WORD_END = /[a-z\u00C0-\u017F\d]+$/i;
4582
-
4583
- // @ts-ignore
4584
- const getNewSelections$7 = (line, rowIndex, columnIndex) => {
4585
- const before = line.slice(0, columnIndex);
4586
- const after = line.slice(columnIndex);
4587
- const beforeMatch = before.match(RE_WORD_END);
4588
- const afterMatch = after.match(RE_WORD_START);
4589
- const columnStart = columnIndex - (beforeMatch ? beforeMatch[0].length : 0);
4590
- const columnEnd = columnIndex + (afterMatch ? afterMatch[0].length : 0);
4591
- const newSelections = new Uint32Array([rowIndex, columnStart, rowIndex, columnEnd]);
4592
- return newSelections;
4593
- };
4594
-
4595
- // @ts-ignore
4596
- const selectWord = (editor, rowIndex, columnIndex) => {
4597
- const line = getLine(editor, rowIndex);
4598
- const newSelections = getNewSelections$7(line, rowIndex, columnIndex);
4599
- return scheduleSelections(editor, newSelections);
4600
- };
4601
-
4602
- const handleDoubleClick = (editor, modifier, x, y) => {
4603
- const position = at(editor, x, y);
4604
- return selectWord(editor, position.rowIndex, position.columnIndex);
5371
+ const isPersistentWidget = widgetId => {
5372
+ switch (widgetId) {
5373
+ case Find:
5374
+ return true;
5375
+ default:
5376
+ return false;
5377
+ }
4605
5378
  };
4606
5379
 
4607
- const WhenExpressionEditorText = 12;
4608
- const handleFocus$1 = editor => {
4609
- // TODO make change events functional,
4610
- // when rendering, send focus changes to renderer worker
4611
- invoke$9('Focus.setFocus', WhenExpressionEditorText);
4612
- return editor;
5380
+ // TODO widgets should have a persistence property:
5381
+ // 1 = close by click (e.g. completion, hover, source-actions)
5382
+ // 2 = stay open on click (e.g. find)
5383
+ const closeWidgetsMaybe = widgets => {
5384
+ if (widgets.length === 0) {
5385
+ return widgets;
5386
+ }
5387
+ return widgets.filter(isPersistentWidget);
4613
5388
  };
4614
5389
 
4615
- const Single = 1;
4616
- const Double = 2;
4617
- const Triple = 3;
4618
-
4619
- const state$5 = {
5390
+ const state$3 = {
4620
5391
  position: {
4621
5392
  rowIndex: 0,
4622
5393
  columnIndex: 0
4623
5394
  }
4624
5395
  };
4625
5396
  const getPosition$1 = () => {
4626
- return state$5.position;
5397
+ return state$3.position;
4627
5398
  };
4628
5399
 
4629
5400
  // @ts-ignore
4630
5401
  const setPosition$1 = position => {
4631
- state$5.position = position;
5402
+ state$3.position = position;
4632
5403
  };
4633
5404
 
4634
5405
  // TODO first change cursor position, then run go to definition
@@ -4675,47 +5446,99 @@ const handleSingleClickWithCtrl = async (editor, position) => {
4675
5446
  };
4676
5447
 
4677
5448
  const Ctrl = 1;
4678
- const Alt$1 = 2;
5449
+ const Alt = 2;
4679
5450
 
4680
5451
  const handleSingleClickDefault = (editor, position) => {
5452
+ // TODO avoid global variables, add them to editor state
4681
5453
  setPosition$1(position);
5454
+ const widgets = closeWidgetsMaybe(editor.widgets);
4682
5455
  return {
4683
5456
  ...editor,
4684
5457
  selections: new Uint32Array([position.rowIndex, position.columnIndex, position.rowIndex, position.columnIndex]),
4685
- focused: true
5458
+ focused: true,
5459
+ widgets
4686
5460
  };
4687
5461
  };
4688
- const getClickHandler = modifier => {
4689
- switch (modifier) {
4690
- case Alt$1:
4691
- return handleSingleClickWithAlt;
4692
- case Ctrl:
4693
- return handleSingleClickWithCtrl;
4694
- default:
4695
- return handleSingleClickDefault;
4696
- }
5462
+ const getClickHandler = modifier => {
5463
+ switch (modifier) {
5464
+ case Alt:
5465
+ return handleSingleClickWithAlt;
5466
+ case Ctrl:
5467
+ return handleSingleClickWithCtrl;
5468
+ default:
5469
+ return handleSingleClickDefault;
5470
+ }
5471
+ };
5472
+
5473
+ const handleClickAtPosition = async (editor, modifier, rowIndex, columnIndex) => {
5474
+ object(editor);
5475
+ number(modifier);
5476
+ number(rowIndex);
5477
+ number(columnIndex);
5478
+ const fn = getClickHandler(modifier);
5479
+ const newEditor = await fn(editor, {
5480
+ rowIndex,
5481
+ columnIndex
5482
+ });
5483
+ return newEditor;
5484
+ };
5485
+
5486
+ const Editor = 3;
5487
+
5488
+ const handleContextMenu = async (editor, button, x, y) => {
5489
+ await invoke$9(/* ContextMenu.show */'ContextMenu.show', /* x */x, /* y */y, /* id */Editor);
5490
+ return editor;
5491
+ };
5492
+
5493
+ // @ts-ignore
5494
+
5495
+ // match all words, including umlauts, see https://stackoverflow.com/questions/5436824/matching-accented-characters-with-javascript-regexes/#answer-11550799
5496
+ const RE_WORD_START = /^[a-z\u00C0-\u017F\d]+/i;
5497
+ const RE_WORD_END = /[a-z\u00C0-\u017F\d]+$/i;
5498
+
5499
+ // @ts-ignore
5500
+ const getNewSelections$7 = (line, rowIndex, columnIndex) => {
5501
+ const before = line.slice(0, columnIndex);
5502
+ const after = line.slice(columnIndex);
5503
+ const beforeMatch = before.match(RE_WORD_END);
5504
+ const afterMatch = after.match(RE_WORD_START);
5505
+ const columnStart = columnIndex - (beforeMatch ? beforeMatch[0].length : 0);
5506
+ const columnEnd = columnIndex + (afterMatch ? afterMatch[0].length : 0);
5507
+ const newSelections = new Uint32Array([rowIndex, columnStart, rowIndex, columnEnd]);
5508
+ return newSelections;
5509
+ };
5510
+
5511
+ // @ts-ignore
5512
+ const selectWord = (editor, rowIndex, columnIndex) => {
5513
+ const line = getLine(editor, rowIndex);
5514
+ const newSelections = getNewSelections$7(line, rowIndex, columnIndex);
5515
+ return scheduleSelections(editor, newSelections);
5516
+ };
5517
+
5518
+ const handleDoubleClick = (editor, modifier, x, y) => {
5519
+ const position = at(editor, x, y);
5520
+ return selectWord(editor, position.rowIndex, position.columnIndex);
5521
+ };
5522
+
5523
+ const WhenExpressionEditorText = 12;
5524
+ const handleFocus$1 = editor => {
5525
+ // TODO make change events functional,
5526
+ // when rendering, send focus changes to renderer worker
5527
+ invoke$9('Focus.setFocus', WhenExpressionEditorText);
5528
+ return editor;
4697
5529
  };
4698
5530
 
5531
+ const Single = 1;
5532
+ const Double = 2;
5533
+ const Triple = 3;
5534
+
4699
5535
  const handleSingleClick = async (editor, modifier, x, y) => {
4700
5536
  object(editor);
4701
5537
  number(modifier);
4702
5538
  number(x);
4703
5539
  number(y);
4704
5540
  const position = at(editor, x, y);
4705
- const fn = getClickHandler(modifier);
4706
- const newEditor = await fn(editor, position);
4707
- // switch (newEditor.completionState) {
4708
- // case EditorCompletionState.None:
4709
- // case EditorCompletionState.Visible:
4710
- // case EditorCompletionState.Loading:
4711
- // return {
4712
- // newState: newEditor,
4713
- // commands: [],
4714
- // }
4715
- // default:
4716
- // break
4717
- // }
4718
- return newEditor;
5541
+ return handleClickAtPosition(editor, modifier, position.rowIndex, position.columnIndex);
4719
5542
  };
4720
5543
 
4721
5544
  // @ts-ignore
@@ -4762,20 +5585,20 @@ const handleMouseDown = (state, modifier, x, y, detail) => {
4762
5585
  }
4763
5586
  };
4764
5587
 
4765
- const state$4 = {
5588
+ const state$2 = {
4766
5589
  timeout: -1,
4767
5590
  x: 0,
4768
5591
  y: 0,
4769
5592
  editor: undefined
4770
5593
  };
4771
- const get$3 = () => {
4772
- return state$4;
5594
+ const get = () => {
5595
+ return state$2;
4773
5596
  };
4774
- const set$4 = (editor, timeout, x, y) => {
4775
- state$4.editor = editor;
4776
- state$4.timeout = timeout;
4777
- state$4.x = x;
4778
- state$4.y = y;
5597
+ const set = (editor, timeout, x, y) => {
5598
+ state$2.editor = editor;
5599
+ state$2.timeout = timeout;
5600
+ state$2.x = x;
5601
+ state$2.y = y;
4779
5602
  };
4780
5603
 
4781
5604
  const showHover$1 = async (editor, position) => {
@@ -4797,7 +5620,7 @@ const onHoverIdle = async () => {
4797
5620
  x,
4798
5621
  y,
4799
5622
  editor
4800
- } = get$3();
5623
+ } = get();
4801
5624
  at(editor, x, y);
4802
5625
  await showHover$1();
4803
5626
  };
@@ -4808,12 +5631,12 @@ const handleMouseMove = (editor, x, y) => {
4808
5631
  if (!editor.hoverEnabled) {
4809
5632
  return editor;
4810
5633
  }
4811
- const oldState = get$3();
5634
+ const oldState = get();
4812
5635
  if (oldState.timeout !== -1) {
4813
5636
  clearTimeout(oldState.timeout);
4814
5637
  }
4815
5638
  const timeout = setTimeout(onHoverIdle, hoverDelay);
4816
- set$4(editor, timeout, x, y);
5639
+ set(editor, timeout, x, y);
4817
5640
  return editor;
4818
5641
  };
4819
5642
 
@@ -4920,7 +5743,7 @@ const editorHandleNativeSelectionChange = (editor, range) => {
4920
5743
  return scheduleSelections(editor, selections);
4921
5744
  };
4922
5745
 
4923
- const state$3 = {
5746
+ const state$1 = {
4924
5747
  /**
4925
5748
  * @type {any}
4926
5749
  */
@@ -4934,26 +5757,26 @@ const state$3 = {
4934
5757
 
4935
5758
  // @ts-ignore
4936
5759
  const setEditor = editor => {
4937
- state$3.currentEditor = editor;
4938
- state$3.hasListener = true;
5760
+ state$1.currentEditor = editor;
5761
+ state$1.hasListener = true;
4939
5762
  };
4940
5763
  const clearEditor = () => {
4941
- state$3.currentEditor = undefined;
4942
- state$3.hasListener = false;
5764
+ state$1.currentEditor = undefined;
5765
+ state$1.hasListener = false;
4943
5766
  };
4944
5767
 
4945
5768
  // @ts-ignore
4946
5769
  const setPosition = position => {
4947
- state$3.position = position;
5770
+ state$1.position = position;
4948
5771
  };
4949
5772
  const getEditor$1 = () => {
4950
- return state$3.currentEditor;
5773
+ return state$1.currentEditor;
4951
5774
  };
4952
5775
  const getPosition = () => {
4953
- return state$3.position;
5776
+ return state$1.position;
4954
5777
  };
4955
5778
  const hasListener = () => {
4956
- return state$3.hasListener;
5779
+ return state$1.hasListener;
4957
5780
  };
4958
5781
 
4959
5782
  // @ts-ignore
@@ -5136,7 +5959,7 @@ const handleTouchEnd = (editor, touchEvent) => {
5136
5959
  // }
5137
5960
  };
5138
5961
 
5139
- const state$2 = {
5962
+ const state = {
5140
5963
  touchOffsetY: 0,
5141
5964
  deltaY: 0
5142
5965
  };
@@ -5147,8 +5970,8 @@ const handleTouchStart = (editor, touchEvent) => {
5147
5970
  return;
5148
5971
  }
5149
5972
  const firstTouch = touchEvent.touches[0];
5150
- state$2.touchOffsetY = firstTouch.y;
5151
- state$2.deltaY = editor.deltaY;
5973
+ state.touchOffsetY = firstTouch.y;
5974
+ state.deltaY = editor.deltaY;
5152
5975
  // const position = EditorPosition.at(editor, firstTouch.x, firstTouch.y)
5153
5976
  // EditorMoveSelection.state.position = position
5154
5977
  // state.date = Date.now()
@@ -5188,7 +6011,7 @@ const handleTouchMove = (editor, touchEvent) => {
5188
6011
  return;
5189
6012
  }
5190
6013
  const firstTouch = touchEvent.touches[0];
5191
- const offsetY = state$2.deltaY + (state$2.touchOffsetY - firstTouch.y);
6014
+ const offsetY = state.deltaY + (state.touchOffsetY - firstTouch.y);
5192
6015
  setDeltaYFixedValue(editor, offsetY);
5193
6016
  };
5194
6017
 
@@ -5624,7 +6447,7 @@ const getOrCreate$2 = () => {
5624
6447
  }
5625
6448
  return workerPromise$2;
5626
6449
  };
5627
- const invoke$5 = async (method, ...params) => {
6450
+ const invoke$4 = async (method, ...params) => {
5628
6451
  const worker = await getOrCreate$2();
5629
6452
  return await worker.invoke(method, ...params);
5630
6453
  };
@@ -5643,10 +6466,10 @@ const newStateGenerator$4 = async (state, parentUid) => {
5643
6466
  const {
5644
6467
  languageId
5645
6468
  } = newState;
5646
- await invoke$5('Completions.create', uid, x, y, width, height, parentUid, languageId);
5647
- await invoke$5('Completions.loadContent', uid);
5648
- const diff = await invoke$5('Completions.diff2', uid);
5649
- const commands = await invoke$5('Completions.render2', uid, diff);
6469
+ await invoke$4('Completions.create', uid, x, y, width, height, parentUid, languageId);
6470
+ await invoke$4('Completions.loadContent', uid);
6471
+ const diff = await invoke$4('Completions.diff2', uid);
6472
+ const commands = await invoke$4('Completions.render2', uid, diff);
5650
6473
  return {
5651
6474
  ...state,
5652
6475
  commands
@@ -5698,7 +6521,7 @@ const launch = async () => {
5698
6521
  const rpc = await launchFindWidgetWorker();
5699
6522
  set$c(rpcId, rpc);
5700
6523
  };
5701
- const invoke$4 = async (method, ...params) => {
6524
+ const invoke$3 = async (method, ...params) => {
5702
6525
  const rpc = get$6(rpcId);
5703
6526
  return await rpc.invoke(method, ...params);
5704
6527
  };
@@ -5737,10 +6560,10 @@ const loadContent$1 = async (state, parentUid) => {
5737
6560
  height
5738
6561
  } = editor;
5739
6562
  await launch();
5740
- await invoke$4('FindWidget.create', uid, x, y, width, height, parentUid);
5741
- await invoke$4('FindWidget.loadContent', uid);
5742
- const diff = await invoke$4('FindWidget.diff2', uid);
5743
- const commands = await invoke$4('FindWidget.render2', uid, diff);
6563
+ await invoke$3('FindWidget.create', uid, x, y, width, height, parentUid);
6564
+ await invoke$3('FindWidget.loadContent', uid);
6565
+ const diff = await invoke$3('FindWidget.diff2', uid);
6566
+ const commands = await invoke$3('FindWidget.render2', uid, diff);
5744
6567
  return {
5745
6568
  ...state,
5746
6569
  commands
@@ -5813,10 +6636,10 @@ const newStateGenerator$2 = async (state, parentUid) => {
5813
6636
  const {
5814
6637
  languageId
5815
6638
  } = newState;
5816
- await invoke$6('Rename.create', uid, x, y, width, height, parentUid, languageId);
5817
- await invoke$6('Rename.loadContent', uid);
5818
- const diff = await invoke$6('Rename.diff2', uid);
5819
- const commands = await invoke$6('Rename.render2', uid, diff);
6639
+ await invoke$5('Rename.create', uid, x, y, width, height, parentUid, languageId);
6640
+ await invoke$5('Rename.loadContent', uid);
6641
+ const diff = await invoke$5('Rename.diff2', uid);
6642
+ const commands = await invoke$5('Rename.render2', uid, diff);
5820
6643
  return {
5821
6644
  ...state,
5822
6645
  commands
@@ -6556,128 +7379,6 @@ const setDecorations = (editor, decorations, diagnostics) => {
6556
7379
  };
6557
7380
  };
6558
7381
 
6559
- let enabled$1 = false;
6560
- const setEnabled$1 = value => {
6561
- enabled$1 = value;
6562
- };
6563
- const getEnabled$1 = () => {
6564
- return enabled$1;
6565
- };
6566
-
6567
- const {
6568
- set: set$3,
6569
- invoke: invoke$3} = SyntaxHighlightingWorker;
6570
-
6571
- /**
6572
- * @enum number
6573
- */
6574
- const State = {
6575
- TopLevelContent: 1
6576
- };
6577
-
6578
- /**
6579
- * @enum number
6580
- */
6581
- const TokenType = {
6582
- Text: 1
6583
- };
6584
- const TokenMap = {
6585
- [TokenType.Text]: 'Text'
6586
- };
6587
- const initialLineState = {
6588
- state: State.TopLevelContent
6589
- };
6590
- const hasArrayReturn = true;
6591
- const tokenizeLine = (line, lineState) => {
6592
- return {
6593
- tokens: [TokenType.Text, line.length],
6594
- state: lineState.state
6595
- };
6596
- };
6597
-
6598
- const TokenizePlainText = {
6599
- __proto__: null,
6600
- State,
6601
- TokenMap,
6602
- TokenType,
6603
- hasArrayReturn,
6604
- initialLineState,
6605
- tokenizeLine
6606
- };
6607
-
6608
- const state$1 = {
6609
- tokenizers: Object.create(null),
6610
- pending: Object.create(null)};
6611
- const has = languageId => {
6612
- return languageId in state$1.tokenizers;
6613
- };
6614
- const set$2 = (languageId, tokenizer) => {
6615
- state$1.tokenizers[languageId] = tokenizer;
6616
- };
6617
- const get$2 = languageId => {
6618
- return state$1.tokenizers[languageId];
6619
- };
6620
- const isPending = languageId => {
6621
- return languageId in state$1.pending;
6622
- };
6623
-
6624
- const tokenMaps = Object.create(null);
6625
- const set$1 = (languageId, tokenMap) => {
6626
- tokenMaps[languageId] = tokenMap;
6627
- };
6628
- const get$1 = languageId => {
6629
- return tokenMaps[languageId] || {};
6630
- };
6631
-
6632
- // TODO loadTokenizer should be invoked from renderer worker
6633
- const loadTokenizer = async (languageId, tokenizePath) => {
6634
- if (!tokenizePath) {
6635
- return;
6636
- }
6637
- if (getEnabled$1()) {
6638
- // @ts-ignore
6639
- const tokenMap = await invoke$3('Tokenizer.load', languageId, tokenizePath);
6640
- set$1(languageId, tokenMap);
6641
- return;
6642
- }
6643
- try {
6644
- // TODO check that tokenizer is valid
6645
- // 1. tokenizeLine should be of type function
6646
- // 2. getTokenClass should be of type function
6647
- const tokenizer = await import(tokenizePath);
6648
- if (typeof tokenizer.tokenizeLine !== 'function') {
6649
- console.warn(`tokenizer.tokenizeLine should be a function in "${tokenizePath}"`);
6650
- return;
6651
- }
6652
- if (!tokenizer.TokenMap || typeof tokenizer.TokenMap !== 'object' || Array.isArray(tokenizer.TokenMap)) {
6653
- console.warn(`tokenizer.TokenMap should be an object in "${tokenizePath}"`);
6654
- return;
6655
- }
6656
- set$1(languageId, tokenizer.TokenMap);
6657
- set$2(languageId, tokenizer);
6658
- } catch (error) {
6659
- // TODO better error handling
6660
- console.error(error);
6661
- }
6662
- };
6663
- const getTokenizer = languageId => {
6664
- if (has(languageId)) {
6665
- return get$2(languageId);
6666
- }
6667
- if (isPending(languageId)) {
6668
- return TokenizePlainText;
6669
- }
6670
- return TokenizePlainText;
6671
- };
6672
-
6673
- const tokenizers = Object.create(null);
6674
- const set = (id, value) => {
6675
- tokenizers[id] = value;
6676
- };
6677
- const get = id => {
6678
- return tokenizers[id] || TokenizePlainText;
6679
- };
6680
-
6681
7382
  // TODO add command to set language id
6682
7383
  // without needing to specify tokenizePath
6683
7384
  const setLanguageId = async (editor, languageId, tokenizePath) => {
@@ -6691,17 +7392,33 @@ const setLanguageId = async (editor, languageId, tokenizePath) => {
6691
7392
  await loadTokenizer(languageId, tokenizePath);
6692
7393
  const tokenizer = getTokenizer(languageId);
6693
7394
  const newTokenizerId = tokenizerId + 1;
6694
- set(newTokenizerId, tokenizer);
7395
+ set$2(newTokenizerId, tokenizer);
6695
7396
  const latest = getEditor(editor.uid);
6696
7397
  if (!latest) {
6697
7398
  return editor;
6698
7399
  }
7400
+ const syncIncremental = getEnabled();
7401
+ const {
7402
+ textInfos,
7403
+ differences
7404
+ } = await getVisible$1(editor, syncIncremental);
7405
+ const latest2 = getEditor(editor.uid);
7406
+ if (!latest2) {
7407
+ return editor;
7408
+ }
7409
+ const newEditor4 = {
7410
+ ...latest2,
7411
+ focused: true,
7412
+ textInfos,
7413
+ differences
7414
+ };
7415
+
6699
7416
  // TODO don't update editor if tokenizer was already loaded
6700
7417
  // TODO update syntax highlighting
6701
7418
  // TODO get edits
6702
7419
 
6703
7420
  return {
6704
- ...latest,
7421
+ ...newEditor4,
6705
7422
  languageId,
6706
7423
  invalidStartIndex: 0,
6707
7424
  tokenizerId: newTokenizerId
@@ -7404,7 +8121,7 @@ const type = (editor, text) => {
7404
8121
  return scheduleDocumentAndCursorsSelections(editor, changes);
7405
8122
  };
7406
8123
 
7407
- const Slash$1 = '/';
8124
+ const Slash = '/';
7408
8125
 
7409
8126
  const CurlyOpen = '{';
7410
8127
  const CurlyClose = '}';
@@ -7519,7 +8236,7 @@ const typeWithAutoClosing = async (editor, text) => {
7519
8236
  }
7520
8237
  break;
7521
8238
  // case AutoClosing.ClosingAngleBracket: // TODO support auto closing when typing closing angle bracket of start tag
7522
- case Slash$1:
8239
+ case Slash:
7523
8240
  if (isAutoClosingTagsEnabled) {
7524
8241
  return typeWithAutoClosingTag(editor, text);
7525
8242
  }
@@ -7746,11 +8463,11 @@ const getWidgetInvoke = widgetId => {
7746
8463
  case ColorPicker$1:
7747
8464
  return invoke$8;
7748
8465
  case Completion:
7749
- return invoke$5;
7750
- case Find:
7751
8466
  return invoke$4;
8467
+ case Find:
8468
+ return invoke$3;
7752
8469
  case Rename$1:
7753
- return invoke$6;
8470
+ return invoke$5;
7754
8471
  case SourceAction$1:
7755
8472
  return invoke$1;
7756
8473
  case Hover:
@@ -8017,15 +8734,7 @@ const measureTextBlockHeight = async (text, fontFamily, fontSize, lineHeight, wi
8017
8734
  return 100;
8018
8735
  };
8019
8736
 
8020
- const deepCopy = value => {
8021
- return structuredClone(value);
8022
- };
8023
-
8024
- const getInitialLineState = initialLineState => {
8025
- return deepCopy(initialLineState);
8026
- };
8027
-
8028
- const getLineInfo$1 = (line, tokens, TokenMap) => {
8737
+ const getLineInfo = (line, tokens, TokenMap) => {
8029
8738
  const tokensLength = tokens.length;
8030
8739
  let end = 0;
8031
8740
  let start = 0;
@@ -8043,45 +8752,6 @@ const getLineInfo$1 = (line, tokens, TokenMap) => {
8043
8752
  return lineInfo;
8044
8753
  };
8045
8754
 
8046
- const state = {
8047
- warned: []
8048
- };
8049
- const flattenTokensArray = tokens => {
8050
- const flattened = [];
8051
- for (const token of tokens) {
8052
- object(token);
8053
- flattened.push(token.type, token.length);
8054
- }
8055
- return flattened;
8056
- };
8057
- const warnDeprecatedArrayReturn = (languageId, fn) => {
8058
- if (state.warned.includes(fn)) {
8059
- return;
8060
- }
8061
- state.warned.push(fn);
8062
- console.warn(`tokenizers without hasArrayReturn=false are deprecated (language ${languageId})`);
8063
- };
8064
- const safeTokenizeLine = (languageId, tokenizeLine, line, lineStateAtStart, hasArrayReturn) => {
8065
- try {
8066
- const lineState = tokenizeLine(line, lineStateAtStart);
8067
- if (!lineState?.tokens || !lineState.state) {
8068
- throw new Error('invalid tokenization result');
8069
- }
8070
- if (!hasArrayReturn) {
8071
- warnDeprecatedArrayReturn(languageId, tokenizeLine);
8072
- // workaround for old tokenizers
8073
- lineState.tokens = flattenTokensArray(lineState.tokens);
8074
- }
8075
- return lineState;
8076
- } catch (error) {
8077
- console.error(error);
8078
- return {
8079
- tokens: [/* type */0, /* length */line.length],
8080
- lineState: lineStateAtStart
8081
- };
8082
- }
8083
- };
8084
-
8085
8755
  const getLineInfos = (lines, tokenizer, languageId) => {
8086
8756
  const lineInfos = [];
8087
8757
  const {
@@ -8096,7 +8766,7 @@ const getLineInfos = (lines, tokenizer, languageId) => {
8096
8766
  const {
8097
8767
  tokens
8098
8768
  } = result;
8099
- const lineInfo = getLineInfo$1(line, tokens, TokenMap);
8769
+ const lineInfo = getLineInfo(line, tokens, TokenMap);
8100
8770
  lineInfos.push(lineInfo);
8101
8771
  currentLineState = result;
8102
8772
  }
@@ -8698,71 +9368,34 @@ const getFonts = () => {
8698
9368
 
8699
9369
  const loadFont = async (fontName, fontUrl) => {
8700
9370
  try {
8701
- string(fontName);
8702
- string(fontUrl);
8703
- if (fontName.startsWith("'")) {
8704
- throw new Error('font name is not allowed start with quotes');
8705
- }
8706
- const fontFace = new FontFace(fontName, fontUrl, {});
8707
- await fontFace.load();
8708
- const fonts = getFonts();
8709
- // @ts-ignore
8710
- fonts.add(fontFace);
8711
- } catch (error) {
8712
- throw new VError(error, `Failed to load font ${fontName}`);
8713
- }
8714
- };
8715
-
8716
- const ensure = async (fontName, fontUrl) => {
8717
- if (isLoaded(fontName)) {
8718
- return;
8719
- }
8720
- if (hasPending(fontName)) {
8721
- return getPending(fontName);
8722
- }
8723
- const promise = loadFont(fontName, fontUrl);
8724
- setPending(fontName, promise);
8725
- await promise;
8726
- removePending(fontName);
8727
- setLoaded(fontName);
8728
- };
8729
-
8730
- const Backspace = 1;
8731
- const Tab = 2;
8732
- const Enter = 3;
8733
- const Escape = 8;
8734
- const Space = 9;
8735
- const End = 255;
8736
- const Home = 12;
8737
- const LeftArrow = 13;
8738
- const UpArrow = 14;
8739
- const RightArrow = 15;
8740
- const DownArrow = 16;
8741
- const Delete = 18;
8742
- const KeyA = 29;
8743
- const KeyC = 31;
8744
- const KeyD = 32;
8745
- const KeyF = 34;
8746
- const KeyH = 36;
8747
- const KeyJ = 38;
8748
- const KeyK = 39;
8749
- const KeyL = 40;
8750
- const KeyO = 43;
8751
- const KeyV = 50;
8752
- const KeyX = 52;
8753
- const KeyZ = 54;
8754
- const F2 = 58;
8755
- const F3 = 59;
8756
- const F4 = 60;
8757
- const F12 = 68;
8758
- const Period = 87;
8759
- const Slash = 88;
8760
- const BracketLeft = 90;
8761
- const BracketRight = 92;
9371
+ string(fontName);
9372
+ string(fontUrl);
9373
+ if (fontName.startsWith("'")) {
9374
+ throw new Error('font name is not allowed start with quotes');
9375
+ }
9376
+ const fontFace = new FontFace(fontName, fontUrl, {});
9377
+ await fontFace.load();
9378
+ const fonts = getFonts();
9379
+ // @ts-ignore
9380
+ fonts.add(fontFace);
9381
+ } catch (error) {
9382
+ throw new VError(error, `Failed to load font ${fontName}`);
9383
+ }
9384
+ };
8762
9385
 
8763
- const CtrlCmd = 1 << 11 >>> 0;
8764
- const Shift = 1 << 10 >>> 0;
8765
- const Alt = 1 << 9 >>> 0;
9386
+ const ensure = async (fontName, fontUrl) => {
9387
+ if (isLoaded(fontName)) {
9388
+ return;
9389
+ }
9390
+ if (hasPending(fontName)) {
9391
+ return getPending(fontName);
9392
+ }
9393
+ const promise = loadFont(fontName, fontUrl);
9394
+ setPending(fontName, promise);
9395
+ await promise;
9396
+ removePending(fontName);
9397
+ setLoaded(fontName);
9398
+ };
8766
9399
 
8767
9400
  const getKeyBindings = () => {
8768
9401
  return [{
@@ -8806,59 +9439,59 @@ const getKeyBindings = () => {
8806
9439
  command: 'FindWidget.focusNext',
8807
9440
  when: FocusFindWidget
8808
9441
  }, {
8809
- key: Shift | Tab,
9442
+ key: Shift | Tab$1,
8810
9443
  command: 'FindWidget.focusToggleReplace',
8811
9444
  when: FocusFindWidget
8812
9445
  }, {
8813
- key: Tab,
9446
+ key: Tab$1,
8814
9447
  command: 'FindWidget.focusReplace',
8815
9448
  when: FocusFindWidget
8816
9449
  }, {
8817
- key: Tab,
9450
+ key: Tab$1,
8818
9451
  command: 'FindWidget.focusPreviousMatchButton',
8819
9452
  when: FocusFindWidgetReplace
8820
9453
  }, {
8821
- key: Alt | CtrlCmd | Enter,
9454
+ key: Alt$1 | CtrlCmd | Enter,
8822
9455
  command: 'FindWidget.replaceAll',
8823
9456
  when: FocusFindWidgetReplace
8824
9457
  }, {
8825
- key: Tab,
9458
+ key: Tab$1,
8826
9459
  command: 'FindWidget.focusNextMatchButton',
8827
9460
  when: FocusFindWidgetPreviousMatchButton
8828
9461
  }, {
8829
- key: Shift | Tab,
9462
+ key: Shift | Tab$1,
8830
9463
  command: 'FindWidget.focusReplace',
8831
9464
  when: FocusFindWidgetPreviousMatchButton
8832
9465
  }, {
8833
- key: Shift | Tab,
9466
+ key: Shift | Tab$1,
8834
9467
  command: 'FindWidget.focusPreviousMatchButton',
8835
9468
  when: FocusFindWidgetNextMatchButton
8836
9469
  }, {
8837
- key: Tab,
9470
+ key: Tab$1,
8838
9471
  command: 'FindWidget.focusCloseButton',
8839
9472
  when: FocusFindWidgetNextMatchButton
8840
9473
  }, {
8841
- key: Shift | Tab,
9474
+ key: Shift | Tab$1,
8842
9475
  command: 'FindWidget.focusNextMatchButton',
8843
9476
  when: FocusFindWidgetCloseButton
8844
9477
  }, {
8845
- key: Tab,
9478
+ key: Tab$1,
8846
9479
  command: 'FindWidget.focusReplaceButton',
8847
9480
  when: FocusFindWidgetCloseButton
8848
9481
  }, {
8849
- key: Shift | Tab,
9482
+ key: Shift | Tab$1,
8850
9483
  command: 'FindWidget.focusFind',
8851
9484
  when: FocusFindWidgetReplace
8852
9485
  }, {
8853
- key: Tab,
9486
+ key: Tab$1,
8854
9487
  command: 'FindWidget.focusReplaceAllButton',
8855
9488
  when: FocusFindWidgetReplaceButton
8856
9489
  }, {
8857
- key: Shift | Tab,
9490
+ key: Shift | Tab$1,
8858
9491
  command: 'FindWidget.focusCloseButton',
8859
9492
  when: FocusFindWidgetReplaceButton
8860
9493
  }, {
8861
- key: Shift | Tab,
9494
+ key: Shift | Tab$1,
8862
9495
  command: 'FindWidget.focusReplaceButton',
8863
9496
  when: FocusFindWidgetReplaceAllButton
8864
9497
  }, {
@@ -8886,7 +9519,7 @@ const getKeyBindings = () => {
8886
9519
  command: 'EditorCompletion.focusFirst',
8887
9520
  when: FocusEditorCompletions
8888
9521
  }, {
8889
- key: CtrlCmd | Space,
9522
+ key: CtrlCmd | Space$1,
8890
9523
  command: 'EditorCompletion.toggleDetails',
8891
9524
  when: FocusEditorCompletions
8892
9525
  }, {
@@ -8898,11 +9531,11 @@ const getKeyBindings = () => {
8898
9531
  command: 'Editor.cursorWordLeft',
8899
9532
  when: FocusEditorText
8900
9533
  }, {
8901
- key: Alt | Backspace,
9534
+ key: Alt$1 | Backspace,
8902
9535
  command: 'Editor.deleteWordPartLeft',
8903
9536
  when: FocusEditorText
8904
9537
  }, {
8905
- key: Alt | Delete,
9538
+ key: Alt$1 | Delete,
8906
9539
  command: 'Editor.deleteWordPartRight',
8907
9540
  when: FocusEditorText
8908
9541
  }, {
@@ -8926,11 +9559,11 @@ const getKeyBindings = () => {
8926
9559
  command: 'Editor.showSourceActions3',
8927
9560
  when: FocusEditorText
8928
9561
  }, {
8929
- key: Tab,
9562
+ key: Tab$1,
8930
9563
  command: 'Editor.handleTab',
8931
9564
  when: FocusEditorText
8932
9565
  }, {
8933
- key: Shift | Tab,
9566
+ key: Shift | Tab$1,
8934
9567
  command: 'Editor.unindent',
8935
9568
  when: FocusEditorText
8936
9569
  }, {
@@ -9038,7 +9671,7 @@ const getKeyBindings = () => {
9038
9671
  command: 'Editor.moveLineUp',
9039
9672
  when: FocusEditorText
9040
9673
  }, {
9041
- key: CtrlCmd | Space,
9674
+ key: CtrlCmd | Space$1,
9042
9675
  command: 'Editor.openCompletion',
9043
9676
  when: FocusEditorText
9044
9677
  }, {
@@ -9062,7 +9695,7 @@ const getKeyBindings = () => {
9062
9695
  command: 'Editor.cursorEnd',
9063
9696
  when: FocusEditorText
9064
9697
  }, {
9065
- key: CtrlCmd | Slash,
9698
+ key: CtrlCmd | Slash$1,
9066
9699
  command: 'Editor.toggleComment',
9067
9700
  when: FocusEditorText
9068
9701
  }, {
@@ -9086,35 +9719,35 @@ const getKeyBindings = () => {
9086
9719
  command: 'Editor.paste',
9087
9720
  when: FocusEditorText
9088
9721
  }, {
9089
- key: Alt | LeftArrow,
9722
+ key: Alt$1 | LeftArrow,
9090
9723
  command: 'Editor.cursorWordPartLeft',
9091
9724
  when: FocusEditorText
9092
9725
  }, {
9093
- key: Alt | RightArrow,
9726
+ key: Alt$1 | RightArrow,
9094
9727
  command: 'Editor.cursorWordPartRight',
9095
9728
  when: FocusEditorText
9096
9729
  }, {
9097
- key: Alt | F3,
9730
+ key: Alt$1 | F3,
9098
9731
  command: 'Editor.selectAllOccurrences',
9099
9732
  when: FocusEditorText
9100
9733
  }, {
9101
- key: Alt | Shift | UpArrow,
9734
+ key: Alt$1 | Shift | UpArrow,
9102
9735
  command: 'Editor.addCursorAbove',
9103
9736
  when: FocusEditorText
9104
9737
  }, {
9105
- key: Alt | Shift | DownArrow,
9738
+ key: Alt$1 | Shift | DownArrow,
9106
9739
  command: 'Editor.addCursorBelow',
9107
9740
  when: FocusEditorText
9108
9741
  }, {
9109
- key: Alt | Shift | F12,
9742
+ key: Alt$1 | Shift | F12,
9110
9743
  command: 'Editor.findAllReferences',
9111
9744
  when: FocusEditorText
9112
9745
  }, {
9113
- key: Alt | Shift | KeyO,
9746
+ key: Alt$1 | Shift | KeyO,
9114
9747
  command: 'Editor.organizeImports',
9115
9748
  when: FocusEditorText
9116
9749
  }, {
9117
- key: CtrlCmd | Shift | Space,
9750
+ key: CtrlCmd | Shift | Space$1,
9118
9751
  command: 'Editor.selectionGrow',
9119
9752
  when: FocusEditor
9120
9753
  }];
@@ -9211,776 +9844,282 @@ const getQuickPickMenuEntries = () => {
9211
9844
  }, {
9212
9845
  id: 'Editor.showSourceActions2',
9213
9846
  label: sourceAction()
9214
- }];
9215
- };
9216
-
9217
- const getSelections = editorUid => {
9218
- const editor = getEditor(editorUid);
9219
- const {
9220
- selections
9221
- } = editor;
9222
- return selections;
9223
- };
9224
-
9225
- const getText = editorUid => {
9226
- number(editorUid);
9227
- const editor = getEditor(editorUid);
9228
- const {
9229
- lines
9230
- } = editor;
9231
- return lines.join(NewLine);
9232
- };
9233
-
9234
- const InsertText = 'insertText';
9235
-
9236
- const handleBeforeInput = (editor, inputType, data) => {
9237
- switch (inputType) {
9238
- case InsertText:
9239
- return typeWithAutoClosing(editor, data);
9240
- default:
9241
- return editor;
9242
- }
9243
- };
9244
-
9245
- const handleMessagePort = async (port, rpcId) => {
9246
- const rpc = await PlainMessagePortRpcParent.create({
9247
- messagePort: port,
9248
- commandMap: {}
9249
- });
9250
- if (rpcId) {
9251
- set$c(rpcId, rpc);
9252
- }
9253
- };
9254
-
9255
- const applyTabCompletion = (editor, result) => {
9256
- return editorSnippet(editor, result);
9257
- };
9258
-
9259
- const handleTab = async editor => {
9260
- const result = await getTabCompletion(editor);
9261
- if (!result) {
9262
- // TODO enter tab or two spaces
9263
- return editor;
9264
- }
9265
- return applyTabCompletion(editor, result);
9266
- };
9267
-
9268
- const relaunchWorkers = async () => {
9269
- await dispose();
9270
- await launch();
9271
- };
9272
-
9273
- const getWidgetName = widgetId => {
9274
- switch (widgetId) {
9275
- case Find:
9276
- return `FindWidget`;
9277
- default:
9278
- return '';
9279
- }
9280
- };
9281
- const saveWidgetState = async keys => {
9282
- const savedStates = Object.create(null);
9283
- for (const key of keys) {
9284
- const editor = get$4(parseInt(key));
9285
- const {
9286
- widgets
9287
- } = editor.newState;
9288
- for (const widget of widgets) {
9289
- const invoke = getWidgetInvoke(widget.id);
9290
- const fullKey = `${key}:${widget.newState.uid}`;
9291
- const name = getWidgetName(widget.id);
9292
- const savedState = await invoke(`${name}.saveState`, widget.newState.uid);
9293
- savedStates[fullKey] = savedState;
9294
- }
9295
- }
9296
- return savedStates;
9297
- };
9298
-
9299
- const restoreWidgetState = async (keys, savedStates) => {
9300
- const newEditors = [];
9301
- for (const key of keys) {
9302
- const editorUid = parseInt(key);
9303
- const editor = get$4(editorUid);
9304
- const {
9305
- widgets
9306
- } = editor.newState;
9307
- const newWidgets = [];
9308
- for (const widget of widgets) {
9309
- const invoke = getWidgetInvoke(widget.id);
9310
- const fullKey = `${key}:${widget.newState.uid}`;
9311
- const savedState = savedStates[fullKey] || {};
9312
- const name = getWidgetName(widget.id);
9313
- await invoke(`${name}.create`, widget.newState.uid, widget.newState.x, widget.newState.y, widget.newState.width, widget.newState.height, editorUid);
9314
- await invoke(`${name}.loadContent`, widget.newState.uid, savedState);
9315
- const diffResult = await invoke(`${name}.diff2`, widget.newState.uid);
9316
- const commands = await invoke(`${name}.render2`, widget.newState.uid, diffResult);
9317
- const newWidget = {
9318
- ...widget,
9319
- newState: {
9320
- ...widget.newState,
9321
- commands
9322
- }
9323
- };
9324
- newWidgets.push(newWidget);
9325
- }
9326
- newEditors.push({
9327
- ...editor,
9328
- newState: {
9329
- ...editor.newState,
9330
- widgets: newWidgets
9331
- }
9332
- });
9333
- }
9334
- return newEditors;
9335
- };
9336
-
9337
- let isReloading = false;
9338
- const hotReload = async () => {
9339
- if (isReloading) {
9340
- return;
9341
- }
9342
- isReloading = true;
9343
-
9344
- // TODO use getEditors
9345
- const keys = getKeys$1();
9346
- const savedStates = await saveWidgetState(keys);
9347
- await relaunchWorkers();
9348
- const newEditors = await restoreWidgetState(keys, savedStates);
9349
- for (const editor of newEditors) {
9350
- set$6(editor.newState.uid, editor.oldState, editor.newState);
9351
- }
9352
-
9353
- // TODO ask renderer worker to rerender all editors
9354
- // @ts-ignore
9355
- await invoke$9(`Editor.rerender`);
9356
- isReloading = false;
9357
- };
9358
-
9359
- const sendMessagePortToExtensionHostWorker2 = async (port, initialCommand, rpcId) => {
9360
- await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, initialCommand, rpcId);
9361
- };
9362
-
9363
- const createExtensionHostRpc = async () => {
9364
- try {
9365
- const {
9366
- port1,
9367
- port2
9368
- } = getPortTuple();
9369
- const initialCommand = 'HandleMessagePort.handleMessagePort2';
9370
- // TODO use transfer rpc
9371
- await sendMessagePortToExtensionHostWorker2(port2, initialCommand, EditorWorker);
9372
- const rpc = await PlainMessagePortRpcParent.create({
9373
- commandMap: {},
9374
- messagePort: port1
9375
- });
9376
- return rpc;
9377
- } catch (error) {
9378
- throw new VError(error, `Failed to create extension host rpc`);
9379
- }
9380
- };
9381
-
9382
- const initializeExtensionHost = async () => {
9383
- const extensionHostRpc = await createExtensionHostRpc();
9384
- set$5(extensionHostRpc);
9385
- };
9386
-
9387
- const sendMessagePortToSyntaxHighlightingWorker = async () => {
9388
- try {
9389
- const {
9390
- port1,
9391
- port2
9392
- } = getPortTuple();
9393
- await invokeAndTransfer(
9394
- // @ts-ignore
9395
- 'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port1, 'HandleMessagePort.handleMessagePort2');
9396
- return port2;
9397
- } catch {
9398
- const {
9399
- port1,
9400
- port2
9401
- } = getPortTuple();
9402
- await invokeAndTransfer(
9403
- // @ts-ignore
9404
- 'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port1, 'HandleMessagePort.handleMessagePort');
9405
- return port2;
9406
- }
9407
- };
9408
-
9409
- const createSyntaxHighlightingWorkerRpc = async () => {
9410
- try {
9411
- const port = await sendMessagePortToSyntaxHighlightingWorker();
9412
- const rpc = await PlainMessagePortRpcParent.create({
9413
- commandMap: {},
9414
- messagePort: port
9415
- });
9416
- return rpc;
9417
- } catch (error) {
9418
- throw new VError(error, `Failed to create syntax highlighting worker rpc`);
9419
- }
9420
- };
9421
-
9422
- let enabled = false;
9423
- const setEnabled = value => {
9424
- enabled = value;
9425
- };
9426
- const getEnabled = () => {
9427
- return enabled;
9428
- };
9429
-
9430
- const initializeSyntaxHighlighting = async (syntaxHighlightingEnabled, syncIncremental) => {
9431
- if (syntaxHighlightingEnabled) {
9432
- setEnabled$1(true);
9433
- const syntaxRpc = await createSyntaxHighlightingWorkerRpc();
9434
- set$3(syntaxRpc);
9435
- }
9436
- if (syncIncremental) {
9437
- setEnabled(true);
9438
- }
9439
- };
9440
-
9441
- const intialize = async (syntaxHighlightingEnabled, syncIncremental) => {
9442
- await Promise.all([initializeSyntaxHighlighting(syntaxHighlightingEnabled, syncIncremental), initializeExtensionHost()]);
9847
+ }];
9443
9848
  };
9444
9849
 
9445
- // TODO move cursor
9446
- // TODO multiple cursors -> vscode removes multiple cursors
9447
- // TODO with selection -> vscode moves whole selection
9448
- const moveLineDown = editor => {
9449
- // const rowIndex = editor.cursor.rowIndex
9450
- // if (rowIndex === editor.lines.length - 1) {
9451
- // return
9452
- // }
9453
- // const documentEdits = [
9454
- // {
9455
- // type: /* splice */ 2,
9456
- // rowIndex: rowIndex,
9457
- // count: 2,
9458
- // newLines: [TextDocument.getLine(editor.textDocument, rowIndex + 1), TextDocument.getLine(editor.textDocument, rowIndex)],
9459
- // },
9460
- // ]
9461
- // // @ts-ignore
9462
- // const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {
9463
- // return {
9464
- // rowIndex: cursor.rowIndex + 1,
9465
- // columnIndex: cursor.columnIndex,
9466
- // }
9467
- // })
9468
- // @ts-ignore
9469
- // Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)
9470
- return editor;
9850
+ const getSelections = editorUid => {
9851
+ const editor = getEditor(editorUid);
9852
+ const {
9853
+ selections
9854
+ } = editor;
9855
+ return selections;
9471
9856
  };
9472
9857
 
9473
- // TODO handle multiple cursors
9474
- const moveLineUp = editor => {
9475
- // const rowIndex = editor.cursor.rowIndex
9476
- // if (rowIndex === 0) {
9477
- // return
9478
- // }
9479
- // const documentEdits = [
9480
- // {
9481
- // type: /* splice */ 2,
9482
- // rowIndex: rowIndex - 1,
9483
- // count: 2,
9484
- // newLines: [TextDocument.getLine(editor.textDocument, rowIndex), TextDocument.getLine(editor.textDocument, rowIndex - 1)],
9485
- // },
9486
- // ]
9487
- // // @ts-ignore
9488
- // const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {
9489
- // return {
9490
- // // TODO handle bottom 0
9491
- // rowIndex: cursor.rowIndex - 1,
9492
- // columnIndex: cursor.columnIndex,
9493
- // }
9494
- // })
9495
- // // @ts-ignore
9496
- // Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)
9497
- return editor;
9858
+ const getText = editorUid => {
9859
+ number(editorUid);
9860
+ const editor = getEditor(editorUid);
9861
+ const {
9862
+ lines
9863
+ } = editor;
9864
+ return lines.join(NewLine);
9498
9865
  };
9499
9866
 
9500
- const Link$1 = 'Link';
9501
- const Function = 'Function';
9502
- const Parameter = 'Parameter';
9503
- const Type = 'Type';
9504
- const VariableName = 'VariableName';
9505
- const Class = 'Class';
9506
-
9507
- const Link = 1;
9508
- const Ts2816 = 2816;
9509
- const Ts2817 = 2817;
9510
- const Ts2824 = 2824;
9511
- const Ts2825 = 2825;
9512
- const Ts2856 = 2956;
9513
- const Ts2857 = 2857;
9514
- const Ts3072 = 3072;
9515
- const Ts3073 = 3073;
9516
- const Ts3077 = 3077;
9517
- const Ts3088 = 3088;
9518
- const Ts1792 = 1792;
9519
- const Ts1793 = 1793;
9520
- const Ts512 = 512;
9521
- const Ts513 = 513;
9522
- const Ts769 = 769;
9523
- const Ts1024 = 1024;
9524
- const Ts1536 = 1536;
9525
- const Ts1537 = 1537;
9526
- const Ts1544 = 1544;
9527
- const Ts1545 = 1545;
9528
- const Ts2048 = 2048;
9529
- const Ts2049 = 2049;
9530
- const Ts2056 = 2056;
9531
- const Ts2057 = 2057;
9532
- const Ts2064 = 2064;
9533
- const Ts2080 = 2080;
9534
- const Ts2081 = 2081;
9535
- const Ts2088 = 2088;
9536
- const Ts2089 = 2089;
9537
- const Ts2313 = 2313;
9538
- const Ts2560 = 2560;
9539
- const Ts2561 = 2561;
9540
- const Ts2569 = 2569;
9541
- const Ts2584 = 2584;
9542
- const Ts256 = 256;
9543
- const Ts257 = 257;
9544
- const Ts272 = 272;
9867
+ const InsertText = 'insertText';
9545
9868
 
9546
- const getDecorationClassName = type => {
9547
- switch (type) {
9548
- case Link:
9549
- return Link$1;
9550
- case Ts2816:
9551
- case Ts2817:
9552
- case Ts2824:
9553
- case Ts2825:
9554
- case Ts2856:
9555
- case Ts2857:
9556
- case Ts3072:
9557
- case Ts3073:
9558
- case Ts3077:
9559
- case Ts3088:
9560
- return Function;
9561
- case Ts1792:
9562
- case Ts1793:
9563
- return Parameter;
9564
- case Ts512:
9565
- case Ts513:
9566
- case Ts769:
9567
- case Ts1024:
9568
- case Ts1536:
9569
- case Ts1537:
9570
- case Ts1544:
9571
- case Ts1545:
9572
- return Type;
9573
- case Ts2048:
9574
- case Ts2049:
9575
- case Ts2056:
9576
- case Ts2057:
9577
- case Ts2064:
9578
- case Ts2080:
9579
- case Ts2081:
9580
- case Ts2088:
9581
- case Ts2089:
9582
- case Ts2313:
9583
- case Ts2560:
9584
- case Ts2561:
9585
- case Ts2569:
9586
- case Ts2584:
9587
- return VariableName;
9588
- case Ts256:
9589
- case Ts257:
9590
- case Ts272:
9591
- return Class;
9869
+ const handleBeforeInput = (editor, inputType, data) => {
9870
+ switch (inputType) {
9871
+ case InsertText:
9872
+ return typeWithAutoClosing(editor, data);
9592
9873
  default:
9593
- return `Unknown-${type}`;
9874
+ return editor;
9594
9875
  }
9595
9876
  };
9596
9877
 
9597
- const getTokensViewportEmbedded = (langageId, lines, lineCache, linesWithEmbed) => {
9598
- const tokenizersToLoad = [];
9599
- const embeddedResults = [];
9600
- let topContext;
9601
- for (const index of linesWithEmbed) {
9602
- const result = lineCache[index + 1];
9603
- const line = lines[index];
9604
- if (result.embeddedLanguage) {
9605
- const {
9606
- embeddedLanguage,
9607
- embeddedLanguageStart,
9608
- embeddedLanguageEnd
9609
- } = result;
9610
- const embeddedTokenizer = getTokenizer(embeddedLanguage);
9611
- if (embeddedLanguageStart !== line.length && embeddedTokenizer && embeddedTokenizer !== TokenizePlainText) {
9612
- const isFull = embeddedLanguageStart === 0 && embeddedLanguageEnd === line.length;
9613
- const partialLine = line.slice(embeddedLanguageStart, embeddedLanguageEnd);
9614
- const embedResult = safeTokenizeLine(langageId, embeddedTokenizer.tokenizeLine, partialLine, topContext || getInitialLineState(embeddedTokenizer.initialLineState), embeddedTokenizer.hasArrayReturn);
9615
- topContext = embedResult;
9616
- result.embeddedResultIndex = embeddedResults.length;
9617
- embeddedResults.push({
9618
- result: embedResult,
9619
- TokenMap: embeddedTokenizer.TokenMap,
9620
- isFull
9621
- });
9622
- } else if (line.length === 0) {
9623
- const embedResult = {
9624
- tokens: []
9625
- };
9626
- result.embeddedResultIndex = embeddedResults.length;
9627
- embeddedResults.push({
9628
- result: embedResult,
9629
- isFull: true,
9630
- TokenMap: []
9631
- });
9632
- } else {
9633
- tokenizersToLoad.push(embeddedLanguage);
9634
- embeddedResults.push({
9635
- result: {},
9636
- isFull: false,
9637
- TokenMap: []
9638
- });
9639
- topContext = undefined;
9640
- }
9641
- } else {
9642
- topContext = undefined;
9643
- }
9878
+ const handleMessagePort = async (port, rpcId) => {
9879
+ const rpc = await PlainMessagePortRpcParent.create({
9880
+ messagePort: port,
9881
+ commandMap: {}
9882
+ });
9883
+ if (rpcId) {
9884
+ set$c(rpcId, rpc);
9644
9885
  }
9645
- return {
9646
- tokenizersToLoad,
9647
- embeddedResults
9648
- };
9649
9886
  };
9650
- const getTokenizeEndIndex = (invalidStartIndex, endLineIndex, tokenizeStartIndex) => {
9651
- return invalidStartIndex < endLineIndex ? endLineIndex : tokenizeStartIndex;
9887
+
9888
+ const applyTabCompletion = (editor, result) => {
9889
+ return editorSnippet(editor, result);
9652
9890
  };
9653
9891
 
9654
- // TODO only send changed lines to renderer process instead of all lines in viewport
9655
- const getTokensViewport = (editor, startLineIndex, endLineIndex) => {
9656
- const {
9657
- invalidStartIndex,
9658
- lineCache,
9659
- tokenizerId,
9660
- lines,
9661
- languageId
9662
- } = editor;
9663
- const tokenizer = get(tokenizerId);
9664
- const {
9665
- hasArrayReturn,
9666
- tokenizeLine,
9667
- initialLineState
9668
- } = tokenizer;
9669
- const tokenizeStartIndex = invalidStartIndex;
9670
- const tokenizeEndIndex = getTokenizeEndIndex(invalidStartIndex, endLineIndex, tokenizeStartIndex);
9671
- const tokenizersToLoad = [];
9672
- const embeddedResults = [];
9673
- const linesWithEmbed = [];
9674
- for (let i = tokenizeStartIndex; i < tokenizeEndIndex; i++) {
9675
- const lineState = i === 0 ? getInitialLineState(initialLineState) : lineCache[i];
9676
- const line = lines[i];
9677
- const result = safeTokenizeLine(languageId, tokenizeLine, line, lineState, hasArrayReturn);
9678
- // TODO if lineCacheEnd matches the one before, skip tokenizing lines after
9679
- lineCache[i + 1] = result;
9680
- if (result.embeddedLanguage) {
9681
- result.embeddedResultIndex = linesWithEmbed.length;
9682
- linesWithEmbed.push(i);
9683
- }
9892
+ const handleTab = async editor => {
9893
+ const result = await getTabCompletion(editor);
9894
+ if (!result) {
9895
+ // TODO enter tab or two spaces
9896
+ return editor;
9684
9897
  }
9685
- const visibleLines = lineCache.slice(startLineIndex + 1, endLineIndex + 1);
9686
- if (linesWithEmbed.length > 0) {
9898
+ return applyTabCompletion(editor, result);
9899
+ };
9900
+
9901
+ const relaunchWorkers = async () => {
9902
+ await dispose();
9903
+ await launch();
9904
+ };
9905
+
9906
+ const getWidgetName = widgetId => {
9907
+ switch (widgetId) {
9908
+ case Find:
9909
+ return `FindWidget`;
9910
+ default:
9911
+ return '';
9912
+ }
9913
+ };
9914
+ const saveWidgetState = async keys => {
9915
+ const savedStates = Object.create(null);
9916
+ for (const key of keys) {
9917
+ const editor = get$4(parseInt(key));
9687
9918
  const {
9688
- tokenizersToLoad,
9689
- embeddedResults
9690
- } = getTokensViewportEmbedded(languageId, lines, lineCache, linesWithEmbed);
9691
- // TODO support lineCache with embedded content
9692
- editor.invalidStartIndex = 0;
9693
- return {
9694
- tokens: visibleLines,
9695
- tokenizersToLoad,
9696
- embeddedResults
9697
- };
9919
+ widgets
9920
+ } = editor.newState;
9921
+ for (const widget of widgets) {
9922
+ const invoke = getWidgetInvoke(widget.id);
9923
+ const fullKey = `${key}:${widget.newState.uid}`;
9924
+ const name = getWidgetName(widget.id);
9925
+ const savedState = await invoke(`${name}.saveState`, widget.newState.uid);
9926
+ savedStates[fullKey] = savedState;
9927
+ }
9698
9928
  }
9699
- editor.invalidStartIndex = Math.max(invalidStartIndex, tokenizeEndIndex);
9700
- return {
9701
- tokens: visibleLines,
9702
- tokenizersToLoad,
9703
- embeddedResults
9704
- };
9929
+ return savedStates;
9705
9930
  };
9706
9931
 
9707
- const sentLines = Object.create(null);
9708
-
9709
- // TODO only send changed lines to renderer process instead of all lines in viewport
9710
- const getTokensViewport2 = async (editor, startLineIndex, endLineIndex, syncIncremental) => {
9711
- if (getEnabled$1()) {
9712
- if (syncIncremental) {
9713
- const {
9714
- invalidStartIndex,
9715
- lines,
9716
- languageId,
9717
- id
9718
- } = editor;
9719
- let hasLinesToSend = true;
9720
- let linesToSend = lines;
9721
- if (sentLines[id] === lines) {
9722
- hasLinesToSend = false;
9723
- linesToSend = [];
9724
- } else {
9725
- sentLines[id] = lines;
9726
- }
9727
- const slimEditor = {
9728
- languageId,
9729
- invalidStartIndex
9932
+ const restoreWidgetState = async (keys, savedStates) => {
9933
+ const newEditors = [];
9934
+ for (const key of keys) {
9935
+ const editorUid = parseInt(key);
9936
+ const editor = get$4(editorUid);
9937
+ const {
9938
+ widgets
9939
+ } = editor.newState;
9940
+ const newWidgets = [];
9941
+ for (const widget of widgets) {
9942
+ const invoke = getWidgetInvoke(widget.id);
9943
+ const fullKey = `${key}:${widget.newState.uid}`;
9944
+ const savedState = savedStates[fullKey] || {};
9945
+ const name = getWidgetName(widget.id);
9946
+ await invoke(`${name}.create`, widget.newState.uid, widget.newState.x, widget.newState.y, widget.newState.width, widget.newState.height, editorUid);
9947
+ await invoke(`${name}.loadContent`, widget.newState.uid, savedState);
9948
+ const diffResult = await invoke(`${name}.diff2`, widget.newState.uid);
9949
+ const commands = await invoke(`${name}.render2`, widget.newState.uid, diffResult);
9950
+ const newWidget = {
9951
+ ...widget,
9952
+ newState: {
9953
+ ...widget.newState,
9954
+ commands
9955
+ }
9730
9956
  };
9731
- return invoke$3('GetTokensViewport.getTokensViewport', slimEditor,
9732
- // @ts-ignore
9733
- startLineIndex, endLineIndex, hasLinesToSend, id, linesToSend);
9957
+ newWidgets.push(newWidget);
9734
9958
  }
9735
- // TODO only send needed lines of text
9736
- // @ts-ignore
9737
- return invoke$3('GetTokensViewport.getTokensViewport', editor, startLineIndex, endLineIndex, true, editor.id, editor.lines);
9959
+ newEditors.push({
9960
+ ...editor,
9961
+ newState: {
9962
+ ...editor.newState,
9963
+ widgets: newWidgets
9964
+ }
9965
+ });
9738
9966
  }
9739
- return getTokensViewport(editor, startLineIndex, endLineIndex);
9967
+ return newEditors;
9740
9968
  };
9741
9969
 
9742
- const loadTokenizers = async languageIds => {
9743
- for (const languageId of languageIds) {
9744
- // @ts-ignore
9745
- await loadTokenizer(languageId);
9970
+ let isReloading = false;
9971
+ const hotReload = async () => {
9972
+ if (isReloading) {
9973
+ return;
9746
9974
  }
9747
- };
9975
+ isReloading = true;
9748
9976
 
9749
- // const getTokensIncremental = (editor, min, max) => {
9750
- // const currentLength = editor.lineStateCache.length
9751
- // const tokens = []
9752
- // const lines = editor.lines
9753
- // let lineState = editor.tokenizer.initialLineState
9754
- // for (let i = currentLength; i < max; i++) {
9755
- // const line = lines[i]
9756
- // try {
9757
- // lineState = editor.tokenizer.tokenizeLine(line, lineState)
9758
- // if (!lineState || !lineState.tokens || !lineState.state) {
9759
- // throw new Error('invalid tokenization result')
9760
- // }
9761
- // } catch (error) {
9762
- // tokens.push([{ length: line.length, type: 0 }])
9763
- // console.error(error)
9764
- // // renderWithoutSyntaxHighlighting(state, firstRow, lastRow)
9765
- // continue
9766
- // }
9767
- // const newTokens = lineState.tokens
9768
- // tokens.push(newTokens)
9769
- // }
9770
- // return tokens
9771
- // }
9977
+ // TODO use getEditors
9978
+ const keys = getKeys$1();
9979
+ const savedStates = await saveWidgetState(keys);
9980
+ await relaunchWorkers();
9981
+ const newEditors = await restoreWidgetState(keys, savedStates);
9982
+ for (const editor of newEditors) {
9983
+ set$6(editor.newState.uid, editor.oldState, editor.newState);
9984
+ }
9772
9985
 
9773
- // const getLineInfosIncremental = (editor, tokens, minLineY, maxLineY) => {
9774
- // const result = []
9775
- // const lines = editor.lines
9776
- // const TokenMap = editor.tokenizer.TokenMap
9777
- // for (let i = minLineY; i < maxLineY; i++) {
9778
- // result.push(getLineInfo(lines[i], tokens[i], TokenMap))
9779
- // }
9780
- // return result
9781
- // }
9986
+ // TODO ask renderer worker to rerender all editors
9987
+ // @ts-ignore
9988
+ await invoke$9(`Editor.rerender`);
9989
+ isReloading = false;
9990
+ };
9782
9991
 
9783
- const getStartDefaults = (tokens, minOffset) => {
9784
- let start = 0;
9785
- let end = 0;
9786
- let startIndex = 0;
9787
- const tokensLength = tokens.length;
9788
- for (let i = 0; i < tokensLength; i += 2) {
9789
- const tokenLength = tokens[i + 1];
9790
- end += tokenLength;
9791
- start = end;
9792
- if (start >= minOffset) {
9793
- start -= tokenLength;
9794
- end -= tokenLength;
9795
- startIndex = i;
9796
- break;
9797
- }
9992
+ const sendMessagePortToExtensionHostWorker2 = async (port, initialCommand, rpcId) => {
9993
+ await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, initialCommand, rpcId);
9994
+ };
9995
+
9996
+ const createExtensionHostRpc = async () => {
9997
+ try {
9998
+ const {
9999
+ port1,
10000
+ port2
10001
+ } = getPortTuple();
10002
+ const initialCommand = 'HandleMessagePort.handleMessagePort2';
10003
+ // TODO use transfer rpc
10004
+ await sendMessagePortToExtensionHostWorker2(port2, initialCommand, EditorWorker);
10005
+ const rpc = await PlainMessagePortRpcParent.create({
10006
+ commandMap: {},
10007
+ messagePort: port1
10008
+ });
10009
+ return rpc;
10010
+ } catch (error) {
10011
+ throw new VError(error, `Failed to create extension host rpc`);
9798
10012
  }
9799
- return {
9800
- start,
9801
- end,
9802
- startIndex
9803
- };
9804
10013
  };
9805
- const getLineInfoEmbeddedFull = (embeddedResults, tokenResults, line, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset) => {
9806
- const lineInfo = [];
9807
- const embeddedResult = embeddedResults[tokenResults.embeddedResultIndex];
9808
- const embeddedTokens = embeddedResult.result.tokens;
9809
- const embeddedTokenMap = embeddedResult.TokenMap;
9810
- const tokensLength = embeddedTokens.length;
9811
- let {
9812
- startIndex,
9813
- start,
9814
- end
9815
- } = getStartDefaults(embeddedTokens, minOffset);
9816
- const difference = getDifference(start, averageCharWidth, deltaX);
9817
- for (let i = startIndex; i < tokensLength; i += 2) {
9818
- const tokenType = embeddedTokens[i];
9819
- const tokenLength = embeddedTokens[i + 1];
9820
- end += tokenLength;
9821
- const className = `Token ${embeddedTokenMap[tokenType] || 'Unknown'}`;
9822
- const text = line.slice(start, end);
9823
- const normalizedText = normalizeText(text, normalize, tabSize);
9824
- lineInfo.push(normalizedText, className);
9825
- start = end;
9826
- if (end >= maxOffset) {
9827
- break;
9828
- }
10014
+
10015
+ const initializeExtensionHost = async () => {
10016
+ const extensionHostRpc = await createExtensionHostRpc();
10017
+ set$1(extensionHostRpc);
10018
+ };
10019
+
10020
+ const sendMessagePortToSyntaxHighlightingWorker = async () => {
10021
+ try {
10022
+ const {
10023
+ port1,
10024
+ port2
10025
+ } = getPortTuple();
10026
+ await invokeAndTransfer(
10027
+ // @ts-ignore
10028
+ 'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port1, 'HandleMessagePort.handleMessagePort2');
10029
+ return port2;
10030
+ } catch {
10031
+ const {
10032
+ port1,
10033
+ port2
10034
+ } = getPortTuple();
10035
+ await invokeAndTransfer(
10036
+ // @ts-ignore
10037
+ 'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port1, 'HandleMessagePort.handleMessagePort');
10038
+ return port2;
9829
10039
  }
9830
- return {
9831
- lineInfo,
9832
- difference
9833
- };
9834
10040
  };
9835
- const getOffsets = (deltaX, width, averageCharWidth) => {
9836
- // TODO accurately measure char widths using offscreen canvas
9837
- // and use fast measurements for monospace ascii text
9838
- if (deltaX === 0) {
9839
- return {
9840
- minOffset: 0,
9841
- maxOffset: Math.ceil(width / averageCharWidth)
9842
- };
10041
+
10042
+ const createSyntaxHighlightingWorkerRpc = async () => {
10043
+ try {
10044
+ const port = await sendMessagePortToSyntaxHighlightingWorker();
10045
+ const rpc = await PlainMessagePortRpcParent.create({
10046
+ commandMap: {},
10047
+ messagePort: port
10048
+ });
10049
+ return rpc;
10050
+ } catch (error) {
10051
+ throw new VError(error, `Failed to create syntax highlighting worker rpc`);
9843
10052
  }
9844
- const minOffset = Math.ceil(deltaX / averageCharWidth);
9845
- const maxOffset = minOffset + Math.ceil(width / averageCharWidth);
9846
- return {
9847
- minOffset,
9848
- maxOffset
9849
- };
9850
- };
9851
- const getDifference = (start, averageCharWidth, deltaX) => {
9852
- const beforeWidth = start * averageCharWidth;
9853
- const difference = beforeWidth - deltaX;
9854
- return difference;
9855
10053
  };
9856
- const getLineInfoDefault = (line, tokenResults, embeddedResults, decorations, TokenMap, lineOffset, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset) => {
9857
- const lineInfo = [];
9858
- let decorationIndex = 0;
9859
- for (; decorationIndex < decorations.length; decorationIndex += 3) {
9860
- const decorationOffset = decorations[decorationIndex];
9861
- if (decorationOffset >= lineOffset) {
9862
- break;
9863
- }
9864
- }
9865
- const {
9866
- tokens
9867
- } = tokenResults;
9868
- let {
9869
- startIndex,
9870
- start,
9871
- end
9872
- } = getStartDefaults(tokens, minOffset);
9873
- const difference = getDifference(start, averageCharWidth, deltaX);
9874
- const tokensLength = tokens.length;
9875
- for (let i = startIndex; i < tokensLength; i += 2) {
9876
- const tokenType = tokens[i];
9877
- const tokenLength = tokens[i + 1];
9878
- const decorationOffset = decorations[decorationIndex];
9879
- let extraClassName = '';
9880
- if (decorationOffset !== undefined && decorationOffset - lineOffset === start) {
9881
- // @ts-ignore
9882
- decorations[++decorationIndex];
9883
- const decorationType = decorations[++decorationIndex];
9884
- // @ts-ignore
9885
- decorations[++decorationIndex];
9886
- // decorationIndex,
9887
- // decorationLength,
9888
- // decorationType,
9889
- // decorationModifiers,
9890
- // })
9891
- extraClassName = getDecorationClassName(decorationType);
9892
- }
9893
- end += tokenLength;
9894
- const text = line.slice(start, end);
9895
- const className = `Token ${extraClassName || TokenMap[tokenType] || 'Unknown'}`;
9896
- const normalizedText = normalizeText(text, normalize, tabSize);
9897
- lineInfo.push(normalizedText, className);
9898
- start = end;
9899
- if (end >= maxOffset) {
9900
- break;
9901
- }
10054
+
10055
+ const initializeSyntaxHighlighting = async (syntaxHighlightingEnabled, syncIncremental) => {
10056
+ if (syntaxHighlightingEnabled) {
10057
+ setEnabled$1(true);
10058
+ const syntaxRpc = await createSyntaxHighlightingWorkerRpc();
10059
+ set$5(syntaxRpc);
9902
10060
  }
9903
- return {
9904
- lineInfo,
9905
- difference
9906
- };
9907
- };
9908
- const getLineInfo = (line, tokenResults, embeddedResults, decorations, TokenMap, lineOffset, normalize, tabSize, width, deltaX, averageCharWidth) => {
9909
- const {
9910
- minOffset,
9911
- maxOffset
9912
- } = getOffsets(deltaX, width, averageCharWidth);
9913
- if (embeddedResults.length > 0 && tokenResults.embeddedResultIndex !== undefined) {
9914
- const embeddedResult = embeddedResults[tokenResults.embeddedResultIndex];
9915
- if (embeddedResult?.isFull) {
9916
- return getLineInfoEmbeddedFull(embeddedResults, tokenResults, line, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset);
9917
- }
10061
+ if (syncIncremental) {
10062
+ setEnabled(true);
9918
10063
  }
9919
- return getLineInfoDefault(line, tokenResults, embeddedResults, decorations, TokenMap, lineOffset, normalize, tabSize, width, deltaX, averageCharWidth, minOffset, maxOffset);
9920
10064
  };
9921
10065
 
9922
- // TODO need lots of tests for this
9923
- const getLineInfosViewport = (editor, tokens, embeddedResults, minLineY, maxLineY, minLineOffset, width, deltaX, averageCharWidth) => {
9924
- const result = [];
9925
- const differences = [];
9926
- const {
9927
- lines,
9928
- decorations,
9929
- languageId
9930
- } = editor;
9931
- const tokenMap = get$1(languageId);
9932
- let offset = minLineOffset;
9933
- const tabSize = 2;
9934
- for (let i = minLineY; i < maxLineY; i++) {
9935
- const line = lines[i];
9936
- const normalize = shouldNormalizeText(line);
9937
- const {
9938
- lineInfo,
9939
- difference
9940
- } = getLineInfo(line, tokens[i - minLineY], embeddedResults, decorations, tokenMap, offset, normalize, tabSize, width, deltaX, averageCharWidth);
9941
- result.push(lineInfo);
9942
- differences.push(difference);
9943
- offset += line.length + 1;
9944
- }
9945
- return {
9946
- result,
9947
- differences
9948
- };
10066
+ const intialize = async (syntaxHighlightingEnabled, syncIncremental) => {
10067
+ await Promise.all([initializeSyntaxHighlighting(syntaxHighlightingEnabled, syncIncremental), initializeExtensionHost()]);
9949
10068
  };
9950
- const getVisible = async (editor, syncIncremental) => {
9951
- // TODO should separate rendering from business logic somehow
9952
- // currently hard to test because need to mock editor height, top, left,
9953
- // invalidStartIndex, lineCache, etc. just for testing editorType
9954
- // editor.invalidStartIndex = changes[0].start.rowIndex
9955
- // @ts-ignore
9956
- const {
9957
- minLineY,
9958
- numberOfVisibleLines,
9959
- lines,
9960
- width,
9961
- deltaX,
9962
- charWidth
9963
- } = editor;
9964
- const maxLineY = Math.min(minLineY + numberOfVisibleLines, lines.length);
10069
+
10070
+ // TODO move cursor
10071
+ // TODO multiple cursors -> vscode removes multiple cursors
10072
+ // TODO with selection -> vscode moves whole selection
10073
+ const moveLineDown = editor => {
10074
+ // const rowIndex = editor.cursor.rowIndex
10075
+ // if (rowIndex === editor.lines.length - 1) {
10076
+ // return
10077
+ // }
10078
+ // const documentEdits = [
10079
+ // {
10080
+ // type: /* splice */ 2,
10081
+ // rowIndex: rowIndex,
10082
+ // count: 2,
10083
+ // newLines: [TextDocument.getLine(editor.textDocument, rowIndex + 1), TextDocument.getLine(editor.textDocument, rowIndex)],
10084
+ // },
10085
+ // ]
10086
+ // // @ts-ignore
10087
+ // const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {
10088
+ // return {
10089
+ // rowIndex: cursor.rowIndex + 1,
10090
+ // columnIndex: cursor.columnIndex,
10091
+ // }
10092
+ // })
9965
10093
  // @ts-ignore
9966
- const {
9967
- tokens,
9968
- tokenizersToLoad,
9969
- embeddedResults
9970
- } = await getTokensViewport2(editor, minLineY, maxLineY, syncIncremental);
9971
- const minLineOffset = offsetAtSync(editor, minLineY, 0);
9972
- const averageCharWidth = charWidth;
9973
- const {
9974
- result,
9975
- differences
9976
- } = getLineInfosViewport(editor, tokens, embeddedResults, minLineY, maxLineY, minLineOffset, width, deltaX, averageCharWidth);
9977
- if (tokenizersToLoad.length > 0) {
9978
- loadTokenizers(tokenizersToLoad);
9979
- }
9980
- return {
9981
- textInfos: result,
9982
- differences
9983
- };
10094
+ // Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)
10095
+ return editor;
10096
+ };
10097
+
10098
+ // TODO handle multiple cursors
10099
+ const moveLineUp = editor => {
10100
+ // const rowIndex = editor.cursor.rowIndex
10101
+ // if (rowIndex === 0) {
10102
+ // return
10103
+ // }
10104
+ // const documentEdits = [
10105
+ // {
10106
+ // type: /* splice */ 2,
10107
+ // rowIndex: rowIndex - 1,
10108
+ // count: 2,
10109
+ // newLines: [TextDocument.getLine(editor.textDocument, rowIndex), TextDocument.getLine(editor.textDocument, rowIndex - 1)],
10110
+ // },
10111
+ // ]
10112
+ // // @ts-ignore
10113
+ // const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {
10114
+ // return {
10115
+ // // TODO handle bottom 0
10116
+ // rowIndex: cursor.rowIndex - 1,
10117
+ // columnIndex: cursor.columnIndex,
10118
+ // }
10119
+ // })
10120
+ // // @ts-ignore
10121
+ // Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)
10122
+ return editor;
9984
10123
  };
9985
10124
 
9986
10125
  const getCursorsVirtualDom = cursors => {
@@ -10079,36 +10218,6 @@ const getEditorRowsVirtualDom = (textInfos, differences, lineNumbers = true, hig
10079
10218
  return dom;
10080
10219
  };
10081
10220
 
10082
- const getIncrementalEdits = async (oldState, newState) => {
10083
- if (!newState.undoStack) {
10084
- return undefined;
10085
- }
10086
- const lastChanges = newState.undoStack.at(-1);
10087
- if (lastChanges && lastChanges.length === 1) {
10088
- const lastChange = lastChanges[0];
10089
- if (lastChange.origin === EditorType) {
10090
- const {
10091
- rowIndex
10092
- } = lastChange.start;
10093
- const {
10094
- lines
10095
- } = newState;
10096
- const oldLine = oldState.lines[rowIndex];
10097
- const newLine = lines[rowIndex];
10098
- // @ts-ignore
10099
- const incrementalEdits = await invoke$3(
10100
- // @ts-ignore
10101
- 'TokenizeIncremental.tokenizeIncremental', newState.uid,
10102
- // @ts-ignore
10103
- newState.languageId, oldLine, newLine, rowIndex, newState.minLineY);
10104
- if (incrementalEdits && incrementalEdits.length === 1) {
10105
- return incrementalEdits;
10106
- }
10107
- }
10108
- }
10109
- return undefined;
10110
- };
10111
-
10112
10221
  const getSelectionsVirtualDom = selections => {
10113
10222
  const dom = [];
10114
10223
  for (let i = 0; i < selections.length; i += 4) {
@@ -10154,16 +10263,17 @@ const renderLines = {
10154
10263
  isEqual(oldState, newState) {
10155
10264
  return oldState.lines === newState.lines && oldState.tokenizerId === newState.tokenizerId && oldState.minLineY === newState.minLineY && oldState.decorations === newState.decorations && oldState.embeds === newState.embeds && oldState.deltaX === newState.deltaX && oldState.width === newState.width && oldState.highlightedLine === newState.highlightedLine && oldState.debugEnabled === newState.debugEnabled;
10156
10265
  },
10157
- async apply(oldState, newState) {
10158
- const incrementalEdits = await getIncrementalEdits(oldState, newState);
10159
- if (incrementalEdits) {
10266
+ apply(oldState, newState) {
10267
+ const {
10268
+ incrementalEdits
10269
+ } = newState;
10270
+ if (incrementalEdits !== emptyIncrementalEdits) {
10160
10271
  return [/* method */'setIncrementalEdits', /* incrementalEdits */incrementalEdits];
10161
10272
  }
10162
- const syncIncremental = getEnabled();
10163
10273
  const {
10164
10274
  textInfos,
10165
10275
  differences
10166
- } = await getVisible(newState, syncIncremental);
10276
+ } = newState;
10167
10277
  newState.differences = differences;
10168
10278
  const {
10169
10279
  highlightedLine,
@@ -10182,7 +10292,7 @@ const renderSelections = {
10182
10292
  const {
10183
10293
  cursorInfos,
10184
10294
  selectionInfos
10185
- } = getVisible$1(newState);
10295
+ } = getVisible(newState);
10186
10296
  const cursorsDom = getCursorsVirtualDom(cursorInfos);
10187
10297
  const selectionsDom = getSelectionsVirtualDom(selectionInfos);
10188
10298
  return [/* method */'setSelections', cursorsDom, selectionsDom];
@@ -10308,7 +10418,7 @@ const renderWidgets = {
10308
10418
  multiple: true
10309
10419
  };
10310
10420
  const render$6 = [renderLines, renderSelections, renderScrollBarX, renderScrollBarY, renderFocus$1, renderDecorations, renderGutterInfo, renderWidgets];
10311
- const renderEditor = async id => {
10421
+ const renderEditor = id => {
10312
10422
  const instance = get$4(id);
10313
10423
  if (!instance) {
10314
10424
  return [];
@@ -10321,7 +10431,7 @@ const renderEditor = async id => {
10321
10431
  set$6(id, newState, newState);
10322
10432
  for (const item of render$6) {
10323
10433
  if (!item.isEqual(oldState, newState)) {
10324
- const result = await item.apply(oldState, newState);
10434
+ const result = item.apply(oldState, newState);
10325
10435
  // @ts-ignore
10326
10436
  if (item.multiple) {
10327
10437
  commands.push(...result);
@@ -10453,16 +10563,24 @@ const effects = [editorDiagnosticEffect];
10453
10563
  const wrapCommand = fn => async (editorUid, ...args) => {
10454
10564
  const oldInstance = get$4(editorUid);
10455
10565
  const newEditor = await fn(oldInstance.newState, ...args);
10566
+ if (oldInstance.newState === newEditor) {
10567
+ return newEditor;
10568
+ }
10456
10569
  for (const effect of effects) {
10457
10570
  if (effect.isActive(oldInstance.newState, newEditor)) {
10458
10571
  effect.apply(newEditor);
10459
10572
  }
10460
10573
  }
10574
+ // TODO if editor did not change, no need to update furthur
10575
+
10576
+ // TODO combine neweditor with latest editor?
10577
+
10461
10578
  set$6(editorUid, oldInstance.newState, newEditor);
10462
- // TODO if possible, rendering should be sync
10463
- const commands = await renderEditor(editorUid);
10464
- newEditor.commands = commands;
10465
- return newEditor;
10579
+ const commands = renderEditor(editorUid);
10580
+ return {
10581
+ ...newEditor,
10582
+ commands
10583
+ };
10466
10584
  };
10467
10585
  const wrapCommands = commands => {
10468
10586
  for (const [key, value] of Object.entries(commands)) {
@@ -10497,6 +10615,7 @@ const commandMap = {
10497
10615
  'Editor.compositionEnd': compositionEnd,
10498
10616
  'Editor.compositionStart': compositionStart,
10499
10617
  'Editor.compositionUpdate': compositionUpdate,
10618
+ 'Editor.handleClickAtPosition': handleClickAtPosition,
10500
10619
  'Editor.applyDocumentEdits': applyDocumentEdits,
10501
10620
  'Editor.contextMenu': handleContextMenu,
10502
10621
  'Editor.copy': copy,