@lvce-editor/static-server 0.88.0 → 0.89.1

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 (2407) hide show
  1. package/config.json +2439 -2439
  2. package/dist/static-server.js +1 -1
  3. package/package.json +1 -1
  4. package/static/{684b9f1 → d7a85a3}/css/App.css +98 -94
  5. package/static/{684b9f1 → d7a85a3}/css/parts/ViewletSimpleBrowser.css +14 -0
  6. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-bat/extension.json +2 -2
  7. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-dotenv/extension.json +2 -2
  8. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-go/extension.json +2 -2
  9. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-java/extension.json +2 -2
  10. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-javascript/extension.json +2 -2
  11. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-json/extension.json +2 -2
  12. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-python/extension.json +2 -2
  13. package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-toml/extension.json +2 -2
  14. package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-ayu/extension.json +2 -2
  15. package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-gruvbox/extension.json +2 -2
  16. package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-monokai/extension.json +2 -2
  17. package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-palenight/extension.json +2 -2
  18. package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/extension.json +2 -2
  19. package/static/{684b9f1 → d7a85a3}/manifest.json +2 -2
  20. package/static/{684b9f1 → d7a85a3}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
  21. package/static/{684b9f1 → d7a85a3}/packages/diff-view/dist/diffViewWorkerMain.js +2954 -1267
  22. package/static/{684b9f1 → d7a85a3}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
  23. package/static/{684b9f1 → d7a85a3}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +116 -78
  24. package/static/{684b9f1 → d7a85a3}/packages/process-explorer-worker/index.js +39 -17
  25. package/static/{684b9f1 → d7a85a3}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
  26. package/static/{684b9f1 → d7a85a3}/packages/renderer-worker/dist/rendererWorkerMain.js +648 -334
  27. package/static/{684b9f1 → d7a85a3}/packages/status-bar-worker/dist/statusBarWorkerMain.js +11 -280
  28. package/static/{684b9f1 → d7a85a3}/packages/test-worker/dist/testWorkerMain.js +1 -0
  29. package/static/index.html +5 -5
  30. /package/static/{684b9f1 → d7a85a3}/LICENSE +0 -0
  31. /package/static/{684b9f1 → d7a85a3}/config/colorTheme.json +0 -0
  32. /package/static/{684b9f1 → d7a85a3}/config/defaultSettings.json +0 -0
  33. /package/static/{684b9f1 → d7a85a3}/config/fileMap.json +0 -0
  34. /package/static/{684b9f1 → d7a85a3}/config/webExtensions.json +0 -0
  35. /package/static/{684b9f1 → d7a85a3}/css/parts/AdditionalDetails.css +0 -0
  36. /package/static/{684b9f1 → d7a85a3}/css/parts/Animation.css +0 -0
  37. /package/static/{684b9f1 → d7a85a3}/css/parts/BrowserScrollBar.css +0 -0
  38. /package/static/{684b9f1 → d7a85a3}/css/parts/Category.css +0 -0
  39. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugButtons.css +0 -0
  40. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugChatDetails.css +0 -0
  41. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugChatDetailsClose.css +0 -0
  42. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugChatImagePreview.css +0 -0
  43. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugChatTable.css +0 -0
  44. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugChatTimeline.css +0 -0
  45. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugChatTop.css +0 -0
  46. /package/static/{684b9f1 → d7a85a3}/css/parts/DebugValue.css +0 -0
  47. /package/static/{684b9f1 → d7a85a3}/css/parts/E2eTest.css +0 -0
  48. /package/static/{684b9f1 → d7a85a3}/css/parts/E2eTests.css +0 -0
  49. /package/static/{684b9f1 → d7a85a3}/css/parts/EditorHover.css +0 -0
  50. /package/static/{684b9f1 → d7a85a3}/css/parts/EditorMessage.css +0 -0
  51. /package/static/{684b9f1 → d7a85a3}/css/parts/FeatureContent.css +0 -0
  52. /package/static/{684b9f1 → d7a85a3}/css/parts/Features.css +0 -0
  53. /package/static/{684b9f1 → d7a85a3}/css/parts/ImagePreview.css +0 -0
  54. /package/static/{684b9f1 → d7a85a3}/css/parts/InlineDiffEditor.css +0 -0
  55. /package/static/{684b9f1 → d7a85a3}/css/parts/InputBadge.css +0 -0
  56. /package/static/{684b9f1 → d7a85a3}/css/parts/Key.css +0 -0
  57. /package/static/{684b9f1 → d7a85a3}/css/parts/KeyBindingsHeader.css +0 -0
  58. /package/static/{684b9f1 → d7a85a3}/css/parts/KeyBindingsTable.css +0 -0
  59. /package/static/{684b9f1 → d7a85a3}/css/parts/LegacyDialog.css +0 -0
  60. /package/static/{684b9f1 → d7a85a3}/css/parts/Markdown.css +0 -0
  61. /package/static/{684b9f1 → d7a85a3}/css/parts/Message.css +0 -0
  62. /package/static/{684b9f1 → d7a85a3}/css/parts/Preview.css +0 -0
  63. /package/static/{684b9f1 → d7a85a3}/css/parts/ScrollToTop.css +0 -0
  64. /package/static/{684b9f1 → d7a85a3}/css/parts/SettingsHeader.css +0 -0
  65. /package/static/{684b9f1 → d7a85a3}/css/parts/SettingsItems.css +0 -0
  66. /package/static/{684b9f1 → d7a85a3}/css/parts/SettingsSideBar.css +0 -0
  67. /package/static/{684b9f1 → d7a85a3}/css/parts/SourceControlListItem.css +0 -0
  68. /package/static/{684b9f1 → d7a85a3}/css/parts/Table.css +0 -0
  69. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletAbout.css +0 -0
  70. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletBrowserViewOverview.css +0 -0
  71. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletDebugConsole.css +0 -0
  72. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletDefineKeyBinding.css +0 -0
  73. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletDiffEditor.css +0 -0
  74. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletEditorWidgetError.css +0 -0
  75. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletExtensionDetail.css +0 -0
  76. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  77. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  78. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletExtensions.css +0 -0
  79. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletIframeInspector.css +0 -0
  80. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletKeyBindings.css +0 -0
  81. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletLanguageModels.css +0 -0
  82. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletMainDragOverlay.css +0 -0
  83. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletMainEditorGroup.css +0 -0
  84. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletMainWaterMark.css +0 -0
  85. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletMedia.css +0 -0
  86. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletOutput.css +0 -0
  87. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletPanel.css +0 -0
  88. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletPanelTabs.css +0 -0
  89. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletPdf.css +0 -0
  90. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletProblems.css +0 -0
  91. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletProcessExplorer.css +0 -0
  92. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletReferences.css +0 -0
  93. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletRunAndDebug.css +0 -0
  94. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletRunningExtensions.css +0 -0
  95. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletScreenCapture.css +0 -0
  96. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletSearch.css +0 -0
  97. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletSettings.css +0 -0
  98. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletSourceControl.css +0 -0
  99. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletStorage.css +0 -0
  100. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletTerminal.css +0 -0
  101. /package/static/{684b9f1 → d7a85a3}/css/parts/ViewletTerminalTabs.css +0 -0
  102. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-bat/README.md +0 -0
  103. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  104. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  105. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-c/README.md +0 -0
  106. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-c/extension.json +0 -0
  107. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  108. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  109. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  110. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  111. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cpp/README.md +0 -0
  112. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  113. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  114. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  115. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cson/README.md +0 -0
  116. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cson/extension.json +0 -0
  117. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  118. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  119. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-css/README.md +0 -0
  120. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-css/extension.json +0 -0
  121. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  122. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  123. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-dart/README.md +0 -0
  124. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-dart/extension.json +0 -0
  125. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  126. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-desktop/README.md +0 -0
  127. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  128. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  129. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-docker/README.md +0 -0
  130. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-docker/extension.json +0 -0
  131. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  132. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  133. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  134. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  135. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  136. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  137. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-elixir/README.md +0 -0
  138. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  139. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  140. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-elm/README.md +0 -0
  141. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-elm/extension.json +0 -0
  142. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  143. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  144. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  145. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  146. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-gn/README.md +0 -0
  147. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-gn/extension.json +0 -0
  148. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  149. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-go/README.md +0 -0
  150. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  151. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-graphql/README.md +0 -0
  152. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  153. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  154. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-html/README.md +0 -0
  155. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-html/extension.json +0 -0
  156. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  157. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  158. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-java/README.md +0 -0
  159. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  160. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  161. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-javascript/README.md +0 -0
  162. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  163. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  164. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-json/README.md +0 -0
  165. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  166. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-json5/README.md +0 -0
  167. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-json5/extension.json +0 -0
  168. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  169. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-jsx/README.md +0 -0
  170. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  171. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  172. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-julia/README.md +0 -0
  173. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-julia/extension.json +0 -0
  174. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  175. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  176. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  177. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  178. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-less/LICENSE +0 -0
  179. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-less/README.md +0 -0
  180. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-less/extension.json +0 -0
  181. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  182. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  183. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-markdown/README.md +0 -0
  184. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  185. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  186. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-mdx/README.md +0 -0
  187. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  188. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  189. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nix/README.md +0 -0
  190. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nix/extension.json +0 -0
  191. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  192. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  193. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  194. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  195. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  196. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-perl/README.md +0 -0
  197. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-perl/extension.json +0 -0
  198. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  199. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  200. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  201. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  202. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-powershell/README.md +0 -0
  203. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  204. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  205. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-python/README.md +0 -0
  206. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  207. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  208. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-r/README.md +0 -0
  209. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-r/extension.json +0 -0
  210. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  211. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-ruby/README.md +0 -0
  212. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  213. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  214. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  215. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-rust/README.md +0 -0
  216. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-rust/extension.json +0 -0
  217. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  218. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  219. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-scss/README.md +0 -0
  220. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-scss/extension.json +0 -0
  221. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  222. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  223. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  224. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  225. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  226. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-svelte/README.md +0 -0
  227. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  228. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  229. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-terraform/README.md +0 -0
  230. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  231. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  232. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-toml/README.md +0 -0
  233. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  234. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-typescript/README.md +0 -0
  235. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  236. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
  237. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  238. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-vue/README.md +0 -0
  239. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-vue/extension.json +0 -0
  240. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  241. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  242. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  243. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  244. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  245. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-xml/README.md +0 -0
  246. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-xml/extension.json +0 -0
  247. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  248. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-yaml/README.md +0 -0
  249. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  250. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  251. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  252. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  253. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  254. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  255. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-ayu/README.md +0 -0
  256. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  257. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-ayu/images/demo.png +0 -0
  258. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-cobalt2/README.md +0 -0
  259. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  260. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  261. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  262. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  263. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-gruvbox/README.md +0 -0
  264. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  265. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
  266. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-high-contrast/README.md +0 -0
  267. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  268. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  269. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-material/README.md +0 -0
  270. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-material/color-theme.json +0 -0
  271. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-material/extension.json +0 -0
  272. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-monokai/README.md +0 -0
  273. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  274. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  275. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  276. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  277. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  278. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-palenight/README.md +0 -0
  279. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  280. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  281. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-slime/README.md +0 -0
  282. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-slime/color-theme.json +0 -0
  283. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-slime/extension.json +0 -0
  284. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.theme-slime/icon.png +0 -0
  285. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/README.md +0 -0
  286. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  287. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icon.png +0 -0
  288. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  289. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  290. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  291. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  292. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  293. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  294. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  295. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  296. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  297. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  298. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  299. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  300. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
  301. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  302. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  303. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  304. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  305. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
  306. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  307. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  308. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  309. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  310. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
  311. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  312. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
  313. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
  314. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  315. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  316. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  317. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  318. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  319. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  320. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  321. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  322. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  323. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  324. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  325. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  326. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  327. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  328. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  329. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  330. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  331. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
  332. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  333. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  334. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  335. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
  336. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  337. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  338. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  339. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  340. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  341. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  342. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  343. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  344. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  345. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  346. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  347. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  348. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  349. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  350. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  351. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  352. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  353. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  354. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  355. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  356. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  357. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  358. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  359. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  360. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  361. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  362. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  363. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  364. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  365. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  366. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  367. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  368. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  369. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  370. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  371. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  372. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  373. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  374. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  375. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  376. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  377. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  378. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  379. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  380. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  381. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  382. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  383. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  384. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  385. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  386. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  387. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  388. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  389. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  390. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  391. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  392. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  393. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  394. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  395. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  396. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  397. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  398. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  399. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  400. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  401. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  402. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  403. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  404. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  405. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  406. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  407. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  408. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  409. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
  410. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  411. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  412. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  413. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  414. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
  415. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  416. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  417. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  418. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  419. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  420. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  421. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  422. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  423. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  424. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  425. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  426. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  427. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  428. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  429. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  430. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  431. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  432. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  433. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  434. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  435. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  436. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  437. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  438. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  439. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  440. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  441. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  442. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  443. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  444. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  445. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  446. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  447. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  448. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  449. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  450. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  451. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  452. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  453. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  454. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  455. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  456. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  457. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  458. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  459. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  460. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  461. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  462. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  463. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  464. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  465. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  466. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  467. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  468. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  469. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  470. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  471. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  472. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  473. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  474. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  475. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  476. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
  477. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  478. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
  479. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  480. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  481. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  482. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  483. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  484. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  485. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  486. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  487. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  488. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  489. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  490. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  491. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  492. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  493. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  494. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  495. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  496. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  497. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  498. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  499. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  500. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  501. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  502. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  503. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  504. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  505. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  506. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  507. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  508. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  509. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  510. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  511. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  512. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
  513. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  514. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  515. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  516. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  517. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  518. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  519. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  520. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  521. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  522. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  523. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  524. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  525. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  526. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  527. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  528. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  529. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  530. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  531. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  532. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  533. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  534. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  535. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  536. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  537. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  538. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  539. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  540. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  541. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  542. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
  543. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  544. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  545. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  546. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  547. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  548. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  549. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  550. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  551. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  552. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  553. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  554. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  555. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  556. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  557. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  558. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  559. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  560. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  561. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  562. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  563. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  564. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  565. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  566. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  567. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  568. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  569. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  570. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  571. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  572. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  573. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  574. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  575. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
  576. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
  577. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  578. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
  579. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
  580. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  581. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  582. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  583. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  584. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  585. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  586. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  587. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
  588. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  589. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  590. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  591. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  592. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  593. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  594. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  595. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  596. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  597. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  598. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  599. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  600. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  601. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  602. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  603. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  604. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  605. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  606. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  607. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  608. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  609. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  610. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  611. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  612. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  613. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  614. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  615. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
  616. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  617. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  618. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  619. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  620. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  621. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  622. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  623. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  624. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  625. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  626. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  627. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  628. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  629. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  630. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  631. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  632. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  633. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  634. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  635. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  636. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  637. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  638. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  639. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  640. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  641. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  642. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  643. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  644. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  645. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  646. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  647. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  648. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  649. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  650. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  651. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  652. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  653. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  654. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  655. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  656. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  657. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  658. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  659. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  660. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  661. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  662. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  663. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  664. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  665. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  666. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  667. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  668. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  669. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  670. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  671. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  672. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  673. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  674. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  675. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
  676. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  677. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  678. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  679. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  680. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  681. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  682. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  683. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  684. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  685. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  686. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  687. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  688. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  689. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  690. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  691. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  692. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  693. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  694. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  695. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  696. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  697. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  698. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  699. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  700. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  701. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  702. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  703. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  704. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  705. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  706. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  707. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  708. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  709. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  710. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  711. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  712. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  713. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  714. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
  715. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
  716. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  717. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  718. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  719. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  720. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  721. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  722. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  723. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  724. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  725. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  726. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  727. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  728. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  729. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  730. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  731. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  732. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
  733. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  734. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  735. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  736. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  737. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  738. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  739. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  740. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  741. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  742. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  743. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  744. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  745. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  746. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  747. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  748. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  749. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  750. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  751. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  752. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  753. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  754. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  755. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  756. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  757. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  758. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  759. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  760. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  761. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  762. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  763. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  764. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  765. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  766. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  767. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  768. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  769. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  770. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  771. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  772. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  773. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  774. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  775. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  776. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  777. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
  778. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
  779. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  780. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  781. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  782. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
  783. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  784. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  785. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  786. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  787. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  788. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  789. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  790. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  791. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  792. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  793. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  794. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  795. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
  796. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  797. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  798. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  799. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  800. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  801. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  802. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  803. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  804. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  805. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  806. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  807. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  808. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  809. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  810. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  811. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  812. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  813. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  814. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
  815. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  816. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  817. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  818. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  819. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  820. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  821. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  822. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  823. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  824. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  825. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  826. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  827. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  828. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  829. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  830. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  831. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
  832. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  833. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  834. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  835. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  836. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  837. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  838. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  839. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  840. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  841. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  842. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  843. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  844. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  845. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  846. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  847. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  848. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  849. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  850. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  851. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  852. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  853. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  854. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  855. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  856. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  857. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  858. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  859. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  860. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  861. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  862. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  863. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  864. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  865. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  866. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  867. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  868. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  869. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  870. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  871. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  872. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  873. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  874. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  875. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  876. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  877. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
  878. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  879. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  880. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
  881. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  882. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  883. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  884. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  885. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  886. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  887. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  888. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  889. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  890. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  891. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  892. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  893. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  894. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  895. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  896. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  897. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  898. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  899. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  900. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  901. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  902. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  903. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  904. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  905. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  906. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  907. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
  908. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  909. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  910. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  911. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  912. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  913. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  914. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  915. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  916. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  917. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  918. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  919. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  920. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  921. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  922. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  923. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  924. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  925. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  926. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  927. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  928. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  929. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  930. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  931. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  932. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  933. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  934. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  935. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  936. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  937. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  938. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  939. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  940. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  941. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  942. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  943. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  944. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  945. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  946. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  947. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  948. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  949. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  950. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  951. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  952. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  953. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  954. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  955. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  956. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  957. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  958. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  959. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  960. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  961. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  962. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  963. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  964. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  965. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  966. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  967. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  968. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  969. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  970. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  971. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  972. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  973. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  974. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  975. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  976. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  977. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  978. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  979. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  980. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  981. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  982. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  983. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  984. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  985. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  986. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  987. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  988. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  989. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  990. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  991. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  992. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  993. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  994. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  995. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  996. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  997. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  998. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  999. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  1000. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  1001. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  1002. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  1003. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  1004. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
  1005. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  1006. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  1007. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  1008. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  1009. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  1010. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  1011. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  1012. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  1013. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  1014. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  1015. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  1016. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  1017. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  1018. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  1019. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  1020. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  1021. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  1022. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  1023. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
  1024. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  1025. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  1026. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
  1027. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  1028. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  1029. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  1030. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  1031. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  1032. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  1033. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  1034. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  1035. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  1036. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  1037. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  1038. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  1039. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  1040. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  1041. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  1042. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  1043. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  1044. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  1045. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  1046. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  1047. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  1048. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  1049. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  1050. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  1051. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1052. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1053. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1054. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1055. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1056. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1057. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1058. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1059. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1060. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1061. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1062. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1063. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1064. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1065. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1066. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
  1067. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1068. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1069. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1070. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1071. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1072. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1073. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1074. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1075. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1076. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1077. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1078. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1079. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1080. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1081. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1082. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1083. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1084. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1085. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1086. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
  1087. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1088. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1089. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1090. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1091. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1092. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1093. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1094. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1095. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1096. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1097. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1098. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1099. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1100. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1101. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1102. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1103. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1104. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1105. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1106. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1107. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1108. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1109. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1110. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1111. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1112. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1113. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1114. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1115. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1116. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1117. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1118. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1119. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1120. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1121. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1122. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1123. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1124. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1125. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1126. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1127. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1128. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1129. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1130. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1131. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1132. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1133. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1134. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1135. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1136. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1137. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1138. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1139. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1140. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1141. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1142. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
  1143. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1144. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1145. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1146. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1147. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1148. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1149. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1150. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1151. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1152. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1153. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1154. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1155. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1156. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1157. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1158. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1159. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1160. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1161. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1162. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1163. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1164. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1165. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1166. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1167. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1168. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1169. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1170. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1171. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1172. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1173. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1174. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1175. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1176. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1177. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1178. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
  1179. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1180. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1181. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1182. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1183. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1184. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1185. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
  1186. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1187. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1188. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1189. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1190. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1191. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1192. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1193. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1194. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1195. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1196. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1197. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
  1198. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1199. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1200. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1201. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1202. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1203. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1204. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1205. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1206. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1207. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1208. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1209. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1210. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1211. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1212. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1213. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1214. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1215. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1216. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1217. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1218. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1219. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1220. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1221. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1222. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1223. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1224. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1225. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1226. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1227. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1228. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1229. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1230. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1231. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1232. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1233. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1234. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1235. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1236. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1237. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1238. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1239. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1240. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1241. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1242. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1243. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1244. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1245. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1246. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1247. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1248. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1249. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1250. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1251. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1252. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1253. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1254. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1255. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1256. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1257. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1258. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1259. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1260. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1261. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1262. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1263. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1264. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1265. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1266. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1267. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1268. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
  1269. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1270. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1271. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1272. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1273. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1274. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1275. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1276. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1277. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1278. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1279. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1280. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
  1281. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1282. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1283. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1284. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1285. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1286. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1287. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1288. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1289. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1290. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1291. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1292. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1293. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1294. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1295. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1296. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1297. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1298. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
  1299. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1300. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1301. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1302. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1303. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1304. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1305. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1306. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1307. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1308. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1309. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1310. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1311. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1312. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1313. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1314. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1315. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1316. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1317. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1318. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1319. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1320. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1321. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1322. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
  1323. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1324. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1325. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1326. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1327. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1328. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1329. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1330. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1331. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1332. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
  1333. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1334. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1335. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1336. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1337. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1338. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1339. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1340. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1341. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1342. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1343. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1344. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1345. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1346. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1347. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1348. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1349. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1350. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1351. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1352. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1353. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1354. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1355. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
  1356. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1357. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1358. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1359. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1360. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1361. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1362. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1363. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1364. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1365. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1366. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1367. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1368. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1369. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1370. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1371. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1372. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1373. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1374. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1375. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1376. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1377. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1378. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1379. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1380. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
  1381. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
  1382. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
  1383. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
  1384. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1385. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1386. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1387. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1388. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1389. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1390. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1391. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1392. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
  1393. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
  1394. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1395. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1396. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1397. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1398. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1399. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1400. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1401. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1402. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1403. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1404. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1405. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1406. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1407. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1408. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1409. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1410. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1411. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1412. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1413. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1414. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1415. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1416. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1417. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1418. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
  1419. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
  1420. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1421. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1422. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1423. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1424. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1425. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1426. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1427. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1428. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
  1429. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
  1430. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1431. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1432. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1433. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1434. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
  1435. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
  1436. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1437. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1438. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1439. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1440. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1441. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1442. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1443. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1444. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1445. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1446. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1447. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1448. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1449. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1450. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1451. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1452. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1453. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1454. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1455. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1456. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
  1457. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
  1458. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1459. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1460. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1461. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1462. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
  1463. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
  1464. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1465. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1466. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1467. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1468. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1469. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1470. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1471. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1472. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1473. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1474. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1475. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1476. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1477. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1478. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1479. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1480. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1481. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1482. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1483. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1484. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1485. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1486. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1487. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1488. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1489. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1490. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1491. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1492. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
  1493. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
  1494. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1495. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1496. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1497. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1498. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1499. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1500. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1501. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1502. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1503. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1504. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1505. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1506. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
  1507. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
  1508. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1509. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1510. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1511. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1512. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1513. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1514. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1515. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1516. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1517. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1518. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1519. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1520. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
  1521. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
  1522. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1523. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1524. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1525. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1526. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1527. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1528. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1529. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1530. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1531. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1532. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1533. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1534. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1535. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1536. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1537. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1538. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1539. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1540. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1541. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1542. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
  1543. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
  1544. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
  1545. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
  1546. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1547. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1548. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1549. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1550. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1551. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1552. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
  1553. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
  1554. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1555. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1556. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1557. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1558. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1559. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1560. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1561. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1562. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1563. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1564. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1565. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1566. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1567. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1568. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1569. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1570. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1571. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1572. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1573. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1574. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1575. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1576. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
  1577. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
  1578. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1579. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1580. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1581. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1582. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1583. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1584. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1585. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1586. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1587. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1588. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1589. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1590. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1591. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1592. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1593. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1594. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1595. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1596. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1597. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1598. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1599. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1600. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1601. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1602. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1603. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1604. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1605. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1606. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1607. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1608. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1609. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1610. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1611. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1612. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1613. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1614. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1615. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1616. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1617. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1618. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1619. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1620. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1621. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1622. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1623. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1624. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1625. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1626. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1627. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1628. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1629. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1630. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1631. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1632. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1633. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1634. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1635. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1636. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1637. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1638. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1639. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1640. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1641. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1642. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1643. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1644. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1645. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1646. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1647. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1648. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1649. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1650. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1651. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1652. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1653. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1654. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1655. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1656. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1657. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1658. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1659. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1660. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1661. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1662. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1663. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1664. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1665. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1666. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1667. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1668. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1669. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1670. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1671. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1672. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1673. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1674. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1675. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1676. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1677. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1678. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1679. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1680. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1681. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1682. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1683. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1684. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1685. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1686. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1687. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1688. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1689. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1690. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1691. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1692. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1693. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1694. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1695. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1696. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1697. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1698. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1699. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1700. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1701. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1702. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1703. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1704. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1705. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1706. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1707. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1708. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1709. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1710. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1711. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1712. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1713. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1714. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1715. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1716. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1717. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1718. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1719. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1720. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1721. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1722. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1723. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1724. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
  1725. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
  1726. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1727. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1728. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1729. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1730. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1731. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1732. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1733. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1734. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1735. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1736. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1737. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1738. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1739. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1740. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1741. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1742. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
  1743. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
  1744. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1745. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1746. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1747. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1748. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
  1749. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
  1750. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1751. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1752. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1753. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1754. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1755. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1756. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
  1757. /package/static/{684b9f1 → d7a85a3}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
  1758. /package/static/{684b9f1 → d7a85a3}/fonts/FiraCode-VariableFont.ttf +0 -0
  1759. /package/static/{684b9f1 → d7a85a3}/icons/account.svg +0 -0
  1760. /package/static/{684b9f1 → d7a85a3}/icons/activate-breakpoints.svg +0 -0
  1761. /package/static/{684b9f1 → d7a85a3}/icons/add-small.svg +0 -0
  1762. /package/static/{684b9f1 → d7a85a3}/icons/add.svg +0 -0
  1763. /package/static/{684b9f1 → d7a85a3}/icons/agent.svg +0 -0
  1764. /package/static/{684b9f1 → d7a85a3}/icons/archive.svg +0 -0
  1765. /package/static/{684b9f1 → d7a85a3}/icons/arrow-both.svg +0 -0
  1766. /package/static/{684b9f1 → d7a85a3}/icons/arrow-circle-down.svg +0 -0
  1767. /package/static/{684b9f1 → d7a85a3}/icons/arrow-circle-left.svg +0 -0
  1768. /package/static/{684b9f1 → d7a85a3}/icons/arrow-circle-right.svg +0 -0
  1769. /package/static/{684b9f1 → d7a85a3}/icons/arrow-circle-up.svg +0 -0
  1770. /package/static/{684b9f1 → d7a85a3}/icons/arrow-down.svg +0 -0
  1771. /package/static/{684b9f1 → d7a85a3}/icons/arrow-left.svg +0 -0
  1772. /package/static/{684b9f1 → d7a85a3}/icons/arrow-right.svg +0 -0
  1773. /package/static/{684b9f1 → d7a85a3}/icons/arrow-small-down.svg +0 -0
  1774. /package/static/{684b9f1 → d7a85a3}/icons/arrow-small-left.svg +0 -0
  1775. /package/static/{684b9f1 → d7a85a3}/icons/arrow-small-right.svg +0 -0
  1776. /package/static/{684b9f1 → d7a85a3}/icons/arrow-small-up.svg +0 -0
  1777. /package/static/{684b9f1 → d7a85a3}/icons/arrow-swap.svg +0 -0
  1778. /package/static/{684b9f1 → d7a85a3}/icons/arrow-up.svg +0 -0
  1779. /package/static/{684b9f1 → d7a85a3}/icons/ask.svg +0 -0
  1780. /package/static/{684b9f1 → d7a85a3}/icons/attach.svg +0 -0
  1781. /package/static/{684b9f1 → d7a85a3}/icons/azure-devops.svg +0 -0
  1782. /package/static/{684b9f1 → d7a85a3}/icons/azure.svg +0 -0
  1783. /package/static/{684b9f1 → d7a85a3}/icons/beaker-stop.svg +0 -0
  1784. /package/static/{684b9f1 → d7a85a3}/icons/beaker.svg +0 -0
  1785. /package/static/{684b9f1 → d7a85a3}/icons/bell-dot.svg +0 -0
  1786. /package/static/{684b9f1 → d7a85a3}/icons/bell-slash-dot.svg +0 -0
  1787. /package/static/{684b9f1 → d7a85a3}/icons/bell-slash.svg +0 -0
  1788. /package/static/{684b9f1 → d7a85a3}/icons/bell.svg +0 -0
  1789. /package/static/{684b9f1 → d7a85a3}/icons/blank.svg +0 -0
  1790. /package/static/{684b9f1 → d7a85a3}/icons/bold.svg +0 -0
  1791. /package/static/{684b9f1 → d7a85a3}/icons/book.svg +0 -0
  1792. /package/static/{684b9f1 → d7a85a3}/icons/bookmark.svg +0 -0
  1793. /package/static/{684b9f1 → d7a85a3}/icons/bracket-dot.svg +0 -0
  1794. /package/static/{684b9f1 → d7a85a3}/icons/bracket-error.svg +0 -0
  1795. /package/static/{684b9f1 → d7a85a3}/icons/briefcase.svg +0 -0
  1796. /package/static/{684b9f1 → d7a85a3}/icons/broadcast.svg +0 -0
  1797. /package/static/{684b9f1 → d7a85a3}/icons/browser.svg +0 -0
  1798. /package/static/{684b9f1 → d7a85a3}/icons/bug.svg +0 -0
  1799. /package/static/{684b9f1 → d7a85a3}/icons/build.svg +0 -0
  1800. /package/static/{684b9f1 → d7a85a3}/icons/calendar.svg +0 -0
  1801. /package/static/{684b9f1 → d7a85a3}/icons/call-incoming.svg +0 -0
  1802. /package/static/{684b9f1 → d7a85a3}/icons/call-outgoing.svg +0 -0
  1803. /package/static/{684b9f1 → d7a85a3}/icons/case-sensitive.svg +0 -0
  1804. /package/static/{684b9f1 → d7a85a3}/icons/chat-sparkle-error.svg +0 -0
  1805. /package/static/{684b9f1 → d7a85a3}/icons/chat-sparkle-warning.svg +0 -0
  1806. /package/static/{684b9f1 → d7a85a3}/icons/chat-sparkle.svg +0 -0
  1807. /package/static/{684b9f1 → d7a85a3}/icons/check-all.svg +0 -0
  1808. /package/static/{684b9f1 → d7a85a3}/icons/check.svg +0 -0
  1809. /package/static/{684b9f1 → d7a85a3}/icons/checklist.svg +0 -0
  1810. /package/static/{684b9f1 → d7a85a3}/icons/chevron-down.svg +0 -0
  1811. /package/static/{684b9f1 → d7a85a3}/icons/chevron-left.svg +0 -0
  1812. /package/static/{684b9f1 → d7a85a3}/icons/chevron-right.svg +0 -0
  1813. /package/static/{684b9f1 → d7a85a3}/icons/chevron-up.svg +0 -0
  1814. /package/static/{684b9f1 → d7a85a3}/icons/chip.svg +0 -0
  1815. /package/static/{684b9f1 → d7a85a3}/icons/chrome-close.svg +0 -0
  1816. /package/static/{684b9f1 → d7a85a3}/icons/chrome-maximize.svg +0 -0
  1817. /package/static/{684b9f1 → d7a85a3}/icons/chrome-minimize.svg +0 -0
  1818. /package/static/{684b9f1 → d7a85a3}/icons/chrome-restore.svg +0 -0
  1819. /package/static/{684b9f1 → d7a85a3}/icons/circle-filled.svg +0 -0
  1820. /package/static/{684b9f1 → d7a85a3}/icons/circle-large-filled.svg +0 -0
  1821. /package/static/{684b9f1 → d7a85a3}/icons/circle-large.svg +0 -0
  1822. /package/static/{684b9f1 → d7a85a3}/icons/circle-slash.svg +0 -0
  1823. /package/static/{684b9f1 → d7a85a3}/icons/circle-small-filled.svg +0 -0
  1824. /package/static/{684b9f1 → d7a85a3}/icons/circle-small.svg +0 -0
  1825. /package/static/{684b9f1 → d7a85a3}/icons/circle.svg +0 -0
  1826. /package/static/{684b9f1 → d7a85a3}/icons/circuit-board.svg +0 -0
  1827. /package/static/{684b9f1 → d7a85a3}/icons/claude.svg +0 -0
  1828. /package/static/{684b9f1 → d7a85a3}/icons/clear-all.svg +0 -0
  1829. /package/static/{684b9f1 → d7a85a3}/icons/clippy.svg +0 -0
  1830. /package/static/{684b9f1 → d7a85a3}/icons/clockface.svg +0 -0
  1831. /package/static/{684b9f1 → d7a85a3}/icons/close-all.svg +0 -0
  1832. /package/static/{684b9f1 → d7a85a3}/icons/close.svg +0 -0
  1833. /package/static/{684b9f1 → d7a85a3}/icons/cloud-download.svg +0 -0
  1834. /package/static/{684b9f1 → d7a85a3}/icons/cloud-small.svg +0 -0
  1835. /package/static/{684b9f1 → d7a85a3}/icons/cloud-upload.svg +0 -0
  1836. /package/static/{684b9f1 → d7a85a3}/icons/cloud.svg +0 -0
  1837. /package/static/{684b9f1 → d7a85a3}/icons/code-oss.svg +0 -0
  1838. /package/static/{684b9f1 → d7a85a3}/icons/code-review.svg +0 -0
  1839. /package/static/{684b9f1 → d7a85a3}/icons/code.svg +0 -0
  1840. /package/static/{684b9f1 → d7a85a3}/icons/coffee.svg +0 -0
  1841. /package/static/{684b9f1 → d7a85a3}/icons/collapse-all.svg +0 -0
  1842. /package/static/{684b9f1 → d7a85a3}/icons/collection-small.svg +0 -0
  1843. /package/static/{684b9f1 → d7a85a3}/icons/collection.svg +0 -0
  1844. /package/static/{684b9f1 → d7a85a3}/icons/color-mode.svg +0 -0
  1845. /package/static/{684b9f1 → d7a85a3}/icons/combine.svg +0 -0
  1846. /package/static/{684b9f1 → d7a85a3}/icons/comment-discussion-quote.svg +0 -0
  1847. /package/static/{684b9f1 → d7a85a3}/icons/comment-discussion-sparkle.svg +0 -0
  1848. /package/static/{684b9f1 → d7a85a3}/icons/comment-discussion.svg +0 -0
  1849. /package/static/{684b9f1 → d7a85a3}/icons/comment-draft.svg +0 -0
  1850. /package/static/{684b9f1 → d7a85a3}/icons/comment-unresolved.svg +0 -0
  1851. /package/static/{684b9f1 → d7a85a3}/icons/comment.svg +0 -0
  1852. /package/static/{684b9f1 → d7a85a3}/icons/compass-active.svg +0 -0
  1853. /package/static/{684b9f1 → d7a85a3}/icons/compass-dot.svg +0 -0
  1854. /package/static/{684b9f1 → d7a85a3}/icons/compass.svg +0 -0
  1855. /package/static/{684b9f1 → d7a85a3}/icons/copilot-blocked.svg +0 -0
  1856. /package/static/{684b9f1 → d7a85a3}/icons/copilot-error.svg +0 -0
  1857. /package/static/{684b9f1 → d7a85a3}/icons/copilot-in-progress.svg +0 -0
  1858. /package/static/{684b9f1 → d7a85a3}/icons/copilot-large.svg +0 -0
  1859. /package/static/{684b9f1 → d7a85a3}/icons/copilot-not-connected.svg +0 -0
  1860. /package/static/{684b9f1 → d7a85a3}/icons/copilot-snooze.svg +0 -0
  1861. /package/static/{684b9f1 → d7a85a3}/icons/copilot-success.svg +0 -0
  1862. /package/static/{684b9f1 → d7a85a3}/icons/copilot-unavailable.svg +0 -0
  1863. /package/static/{684b9f1 → d7a85a3}/icons/copilot-warning-large.svg +0 -0
  1864. /package/static/{684b9f1 → d7a85a3}/icons/copilot-warning.svg +0 -0
  1865. /package/static/{684b9f1 → d7a85a3}/icons/copilot.svg +0 -0
  1866. /package/static/{684b9f1 → d7a85a3}/icons/copy.svg +0 -0
  1867. /package/static/{684b9f1 → d7a85a3}/icons/coverage.svg +0 -0
  1868. /package/static/{684b9f1 → d7a85a3}/icons/credit-card.svg +0 -0
  1869. /package/static/{684b9f1 → d7a85a3}/icons/cursor.svg +0 -0
  1870. /package/static/{684b9f1 → d7a85a3}/icons/dash.svg +0 -0
  1871. /package/static/{684b9f1 → d7a85a3}/icons/dashboard.svg +0 -0
  1872. /package/static/{684b9f1 → d7a85a3}/icons/database.svg +0 -0
  1873. /package/static/{684b9f1 → d7a85a3}/icons/debug-all.svg +0 -0
  1874. /package/static/{684b9f1 → d7a85a3}/icons/debug-alt-2.svg +0 -0
  1875. /package/static/{684b9f1 → d7a85a3}/icons/debug-alt-small.svg +0 -0
  1876. /package/static/{684b9f1 → d7a85a3}/icons/debug-alt.svg +0 -0
  1877. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  1878. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-conditional.svg +0 -0
  1879. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-data-unverified.svg +0 -0
  1880. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-data.svg +0 -0
  1881. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-function-unverified.svg +0 -0
  1882. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-function.svg +0 -0
  1883. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-log-unverified.svg +0 -0
  1884. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-log.svg +0 -0
  1885. /package/static/{684b9f1 → d7a85a3}/icons/debug-breakpoint-unsupported.svg +0 -0
  1886. /package/static/{684b9f1 → d7a85a3}/icons/debug-connected.svg +0 -0
  1887. /package/static/{684b9f1 → d7a85a3}/icons/debug-console.svg +0 -0
  1888. /package/static/{684b9f1 → d7a85a3}/icons/debug-continue-small.svg +0 -0
  1889. /package/static/{684b9f1 → d7a85a3}/icons/debug-continue.svg +0 -0
  1890. /package/static/{684b9f1 → d7a85a3}/icons/debug-coverage.svg +0 -0
  1891. /package/static/{684b9f1 → d7a85a3}/icons/debug-disconnect.svg +0 -0
  1892. /package/static/{684b9f1 → d7a85a3}/icons/debug-line-by-line.svg +0 -0
  1893. /package/static/{684b9f1 → d7a85a3}/icons/debug-pause.svg +0 -0
  1894. /package/static/{684b9f1 → d7a85a3}/icons/debug-rerun.svg +0 -0
  1895. /package/static/{684b9f1 → d7a85a3}/icons/debug-restart-frame.svg +0 -0
  1896. /package/static/{684b9f1 → d7a85a3}/icons/debug-restart.svg +0 -0
  1897. /package/static/{684b9f1 → d7a85a3}/icons/debug-reverse-continue.svg +0 -0
  1898. /package/static/{684b9f1 → d7a85a3}/icons/debug-stackframe-active.svg +0 -0
  1899. /package/static/{684b9f1 → d7a85a3}/icons/debug-stackframe.svg +0 -0
  1900. /package/static/{684b9f1 → d7a85a3}/icons/debug-start.svg +0 -0
  1901. /package/static/{684b9f1 → d7a85a3}/icons/debug-step-back.svg +0 -0
  1902. /package/static/{684b9f1 → d7a85a3}/icons/debug-step-into.svg +0 -0
  1903. /package/static/{684b9f1 → d7a85a3}/icons/debug-step-out.svg +0 -0
  1904. /package/static/{684b9f1 → d7a85a3}/icons/debug-step-over.svg +0 -0
  1905. /package/static/{684b9f1 → d7a85a3}/icons/debug-stop.svg +0 -0
  1906. /package/static/{684b9f1 → d7a85a3}/icons/debug.svg +0 -0
  1907. /package/static/{684b9f1 → d7a85a3}/icons/desktop-download.svg +0 -0
  1908. /package/static/{684b9f1 → d7a85a3}/icons/device-camera-video.svg +0 -0
  1909. /package/static/{684b9f1 → d7a85a3}/icons/device-camera.svg +0 -0
  1910. /package/static/{684b9f1 → d7a85a3}/icons/device-mobile.svg +0 -0
  1911. /package/static/{684b9f1 → d7a85a3}/icons/diff-added.svg +0 -0
  1912. /package/static/{684b9f1 → d7a85a3}/icons/diff-ignored.svg +0 -0
  1913. /package/static/{684b9f1 → d7a85a3}/icons/diff-modified.svg +0 -0
  1914. /package/static/{684b9f1 → d7a85a3}/icons/diff-multiple.svg +0 -0
  1915. /package/static/{684b9f1 → d7a85a3}/icons/diff-removed.svg +0 -0
  1916. /package/static/{684b9f1 → d7a85a3}/icons/diff-renamed.svg +0 -0
  1917. /package/static/{684b9f1 → d7a85a3}/icons/diff-single.svg +0 -0
  1918. /package/static/{684b9f1 → d7a85a3}/icons/diff.svg +0 -0
  1919. /package/static/{684b9f1 → d7a85a3}/icons/discard.svg +0 -0
  1920. /package/static/{684b9f1 → d7a85a3}/icons/download.svg +0 -0
  1921. /package/static/{684b9f1 → d7a85a3}/icons/edit-code.svg +0 -0
  1922. /package/static/{684b9f1 → d7a85a3}/icons/edit-session.svg +0 -0
  1923. /package/static/{684b9f1 → d7a85a3}/icons/edit-sparkle.svg +0 -0
  1924. /package/static/{684b9f1 → d7a85a3}/icons/edit.svg +0 -0
  1925. /package/static/{684b9f1 → d7a85a3}/icons/editor-layout.svg +0 -0
  1926. /package/static/{684b9f1 → d7a85a3}/icons/ellipsis.svg +0 -0
  1927. /package/static/{684b9f1 → d7a85a3}/icons/empty-window.svg +0 -0
  1928. /package/static/{684b9f1 → d7a85a3}/icons/eraser.svg +0 -0
  1929. /package/static/{684b9f1 → d7a85a3}/icons/error-small.svg +0 -0
  1930. /package/static/{684b9f1 → d7a85a3}/icons/error.svg +0 -0
  1931. /package/static/{684b9f1 → d7a85a3}/icons/exclude.svg +0 -0
  1932. /package/static/{684b9f1 → d7a85a3}/icons/expand-all.svg +0 -0
  1933. /package/static/{684b9f1 → d7a85a3}/icons/export.svg +0 -0
  1934. /package/static/{684b9f1 → d7a85a3}/icons/extensionDefaultIcon.png +0 -0
  1935. /package/static/{684b9f1 → d7a85a3}/icons/extensions-large.svg +0 -0
  1936. /package/static/{684b9f1 → d7a85a3}/icons/extensions.svg +0 -0
  1937. /package/static/{684b9f1 → d7a85a3}/icons/eye-closed.svg +0 -0
  1938. /package/static/{684b9f1 → d7a85a3}/icons/eye.svg +0 -0
  1939. /package/static/{684b9f1 → d7a85a3}/icons/feedback.svg +0 -0
  1940. /package/static/{684b9f1 → d7a85a3}/icons/file-binary.svg +0 -0
  1941. /package/static/{684b9f1 → d7a85a3}/icons/file-code.svg +0 -0
  1942. /package/static/{684b9f1 → d7a85a3}/icons/file-media.svg +0 -0
  1943. /package/static/{684b9f1 → d7a85a3}/icons/file-pdf.svg +0 -0
  1944. /package/static/{684b9f1 → d7a85a3}/icons/file-submodule.svg +0 -0
  1945. /package/static/{684b9f1 → d7a85a3}/icons/file-symlink-directory.svg +0 -0
  1946. /package/static/{684b9f1 → d7a85a3}/icons/file-symlink-file.svg +0 -0
  1947. /package/static/{684b9f1 → d7a85a3}/icons/file-text.svg +0 -0
  1948. /package/static/{684b9f1 → d7a85a3}/icons/file-zip.svg +0 -0
  1949. /package/static/{684b9f1 → d7a85a3}/icons/file.svg +0 -0
  1950. /package/static/{684b9f1 → d7a85a3}/icons/files.svg +0 -0
  1951. /package/static/{684b9f1 → d7a85a3}/icons/filter-filled.svg +0 -0
  1952. /package/static/{684b9f1 → d7a85a3}/icons/filter.svg +0 -0
  1953. /package/static/{684b9f1 → d7a85a3}/icons/flag.svg +0 -0
  1954. /package/static/{684b9f1 → d7a85a3}/icons/flame.svg +0 -0
  1955. /package/static/{684b9f1 → d7a85a3}/icons/fold-down.svg +0 -0
  1956. /package/static/{684b9f1 → d7a85a3}/icons/fold-up.svg +0 -0
  1957. /package/static/{684b9f1 → d7a85a3}/icons/fold.svg +0 -0
  1958. /package/static/{684b9f1 → d7a85a3}/icons/folder-active.svg +0 -0
  1959. /package/static/{684b9f1 → d7a85a3}/icons/folder-library.svg +0 -0
  1960. /package/static/{684b9f1 → d7a85a3}/icons/folder-opened.svg +0 -0
  1961. /package/static/{684b9f1 → d7a85a3}/icons/folder.svg +0 -0
  1962. /package/static/{684b9f1 → d7a85a3}/icons/forward.svg +0 -0
  1963. /package/static/{684b9f1 → d7a85a3}/icons/game.svg +0 -0
  1964. /package/static/{684b9f1 → d7a85a3}/icons/gear.svg +0 -0
  1965. /package/static/{684b9f1 → d7a85a3}/icons/gift.svg +0 -0
  1966. /package/static/{684b9f1 → d7a85a3}/icons/gist-secret.svg +0 -0
  1967. /package/static/{684b9f1 → d7a85a3}/icons/gist.svg +0 -0
  1968. /package/static/{684b9f1 → d7a85a3}/icons/git-branch-changes.svg +0 -0
  1969. /package/static/{684b9f1 → d7a85a3}/icons/git-branch-conflicts.svg +0 -0
  1970. /package/static/{684b9f1 → d7a85a3}/icons/git-branch-staged-changes.svg +0 -0
  1971. /package/static/{684b9f1 → d7a85a3}/icons/git-branch.svg +0 -0
  1972. /package/static/{684b9f1 → d7a85a3}/icons/git-commit.svg +0 -0
  1973. /package/static/{684b9f1 → d7a85a3}/icons/git-compare.svg +0 -0
  1974. /package/static/{684b9f1 → d7a85a3}/icons/git-fetch.svg +0 -0
  1975. /package/static/{684b9f1 → d7a85a3}/icons/git-merge.svg +0 -0
  1976. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request-closed.svg +0 -0
  1977. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request-create.svg +0 -0
  1978. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request-done.svg +0 -0
  1979. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request-draft.svg +0 -0
  1980. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request-go-to-changes.svg +0 -0
  1981. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request-new-changes.svg +0 -0
  1982. /package/static/{684b9f1 → d7a85a3}/icons/git-pull-request.svg +0 -0
  1983. /package/static/{684b9f1 → d7a85a3}/icons/git-stash-apply.svg +0 -0
  1984. /package/static/{684b9f1 → d7a85a3}/icons/git-stash-pop.svg +0 -0
  1985. /package/static/{684b9f1 → d7a85a3}/icons/git-stash.svg +0 -0
  1986. /package/static/{684b9f1 → d7a85a3}/icons/github-action.svg +0 -0
  1987. /package/static/{684b9f1 → d7a85a3}/icons/github-alt.svg +0 -0
  1988. /package/static/{684b9f1 → d7a85a3}/icons/github-inverted.svg +0 -0
  1989. /package/static/{684b9f1 → d7a85a3}/icons/github-project.svg +0 -0
  1990. /package/static/{684b9f1 → d7a85a3}/icons/github.svg +0 -0
  1991. /package/static/{684b9f1 → d7a85a3}/icons/globe.svg +0 -0
  1992. /package/static/{684b9f1 → d7a85a3}/icons/go-to-editing-session.svg +0 -0
  1993. /package/static/{684b9f1 → d7a85a3}/icons/go-to-file.svg +0 -0
  1994. /package/static/{684b9f1 → d7a85a3}/icons/go-to-search.svg +0 -0
  1995. /package/static/{684b9f1 → d7a85a3}/icons/grabber.svg +0 -0
  1996. /package/static/{684b9f1 → d7a85a3}/icons/graph-left.svg +0 -0
  1997. /package/static/{684b9f1 → d7a85a3}/icons/graph-line.svg +0 -0
  1998. /package/static/{684b9f1 → d7a85a3}/icons/graph-scatter.svg +0 -0
  1999. /package/static/{684b9f1 → d7a85a3}/icons/graph.svg +0 -0
  2000. /package/static/{684b9f1 → d7a85a3}/icons/gripper.svg +0 -0
  2001. /package/static/{684b9f1 → d7a85a3}/icons/group-by-ref-type.svg +0 -0
  2002. /package/static/{684b9f1 → d7a85a3}/icons/heart-filled.svg +0 -0
  2003. /package/static/{684b9f1 → d7a85a3}/icons/heart.svg +0 -0
  2004. /package/static/{684b9f1 → d7a85a3}/icons/history.svg +0 -0
  2005. /package/static/{684b9f1 → d7a85a3}/icons/home.svg +0 -0
  2006. /package/static/{684b9f1 → d7a85a3}/icons/horizontal-rule.svg +0 -0
  2007. /package/static/{684b9f1 → d7a85a3}/icons/hubot.svg +0 -0
  2008. /package/static/{684b9f1 → d7a85a3}/icons/icon-close.svg +0 -0
  2009. /package/static/{684b9f1 → d7a85a3}/icons/icon-source-control.svg +0 -0
  2010. /package/static/{684b9f1 → d7a85a3}/icons/icon-sync.svg +0 -0
  2011. /package/static/{684b9f1 → d7a85a3}/icons/icon.png +0 -0
  2012. /package/static/{684b9f1 → d7a85a3}/icons/icon.svg +0 -0
  2013. /package/static/{684b9f1 → d7a85a3}/icons/inbox.svg +0 -0
  2014. /package/static/{684b9f1 → d7a85a3}/icons/indent.svg +0 -0
  2015. /package/static/{684b9f1 → d7a85a3}/icons/index-zero.svg +0 -0
  2016. /package/static/{684b9f1 → d7a85a3}/icons/info.svg +0 -0
  2017. /package/static/{684b9f1 → d7a85a3}/icons/insert.svg +0 -0
  2018. /package/static/{684b9f1 → d7a85a3}/icons/inspect.svg +0 -0
  2019. /package/static/{684b9f1 → d7a85a3}/icons/issue-draft.svg +0 -0
  2020. /package/static/{684b9f1 → d7a85a3}/icons/issue-reopened.svg +0 -0
  2021. /package/static/{684b9f1 → d7a85a3}/icons/issues.svg +0 -0
  2022. /package/static/{684b9f1 → d7a85a3}/icons/italic.svg +0 -0
  2023. /package/static/{684b9f1 → d7a85a3}/icons/jersey.svg +0 -0
  2024. /package/static/{684b9f1 → d7a85a3}/icons/json.svg +0 -0
  2025. /package/static/{684b9f1 → d7a85a3}/icons/kebab-vertical.svg +0 -0
  2026. /package/static/{684b9f1 → d7a85a3}/icons/key.svg +0 -0
  2027. /package/static/{684b9f1 → d7a85a3}/icons/keyboard-tab-above.svg +0 -0
  2028. /package/static/{684b9f1 → d7a85a3}/icons/keyboard-tab-below.svg +0 -0
  2029. /package/static/{684b9f1 → d7a85a3}/icons/keyboard-tab.svg +0 -0
  2030. /package/static/{684b9f1 → d7a85a3}/icons/language-icon.svg +0 -0
  2031. /package/static/{684b9f1 → d7a85a3}/icons/law.svg +0 -0
  2032. /package/static/{684b9f1 → d7a85a3}/icons/layers-active.svg +0 -0
  2033. /package/static/{684b9f1 → d7a85a3}/icons/layers-dot.svg +0 -0
  2034. /package/static/{684b9f1 → d7a85a3}/icons/layers.svg +0 -0
  2035. /package/static/{684b9f1 → d7a85a3}/icons/layout-activitybar-left.svg +0 -0
  2036. /package/static/{684b9f1 → d7a85a3}/icons/layout-activitybar-right.svg +0 -0
  2037. /package/static/{684b9f1 → d7a85a3}/icons/layout-centered.svg +0 -0
  2038. /package/static/{684b9f1 → d7a85a3}/icons/layout-menubar.svg +0 -0
  2039. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel-center.svg +0 -0
  2040. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel-dock.svg +0 -0
  2041. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel-justify.svg +0 -0
  2042. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel-left.svg +0 -0
  2043. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel-off.svg +0 -0
  2044. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel-right.svg +0 -0
  2045. /package/static/{684b9f1 → d7a85a3}/icons/layout-panel.svg +0 -0
  2046. /package/static/{684b9f1 → d7a85a3}/icons/layout-sidebar-left-dock.svg +0 -0
  2047. /package/static/{684b9f1 → d7a85a3}/icons/layout-sidebar-left-off.svg +0 -0
  2048. /package/static/{684b9f1 → d7a85a3}/icons/layout-sidebar-left.svg +0 -0
  2049. /package/static/{684b9f1 → d7a85a3}/icons/layout-sidebar-right-dock.svg +0 -0
  2050. /package/static/{684b9f1 → d7a85a3}/icons/layout-sidebar-right-off.svg +0 -0
  2051. /package/static/{684b9f1 → d7a85a3}/icons/layout-sidebar-right.svg +0 -0
  2052. /package/static/{684b9f1 → d7a85a3}/icons/layout-statusbar.svg +0 -0
  2053. /package/static/{684b9f1 → d7a85a3}/icons/layout.svg +0 -0
  2054. /package/static/{684b9f1 → d7a85a3}/icons/library.svg +0 -0
  2055. /package/static/{684b9f1 → d7a85a3}/icons/lightbulb-autofix.svg +0 -0
  2056. /package/static/{684b9f1 → d7a85a3}/icons/lightbulb-empty.svg +0 -0
  2057. /package/static/{684b9f1 → d7a85a3}/icons/lightbulb-sparkle.svg +0 -0
  2058. /package/static/{684b9f1 → d7a85a3}/icons/lightbulb.svg +0 -0
  2059. /package/static/{684b9f1 → d7a85a3}/icons/link-external.svg +0 -0
  2060. /package/static/{684b9f1 → d7a85a3}/icons/link.svg +0 -0
  2061. /package/static/{684b9f1 → d7a85a3}/icons/list-filter.svg +0 -0
  2062. /package/static/{684b9f1 → d7a85a3}/icons/list-flat.svg +0 -0
  2063. /package/static/{684b9f1 → d7a85a3}/icons/list-ordered.svg +0 -0
  2064. /package/static/{684b9f1 → d7a85a3}/icons/list-selection.svg +0 -0
  2065. /package/static/{684b9f1 → d7a85a3}/icons/list-tree.svg +0 -0
  2066. /package/static/{684b9f1 → d7a85a3}/icons/list-unordered.svg +0 -0
  2067. /package/static/{684b9f1 → d7a85a3}/icons/live-share.svg +0 -0
  2068. /package/static/{684b9f1 → d7a85a3}/icons/loading.svg +0 -0
  2069. /package/static/{684b9f1 → d7a85a3}/icons/location.svg +0 -0
  2070. /package/static/{684b9f1 → d7a85a3}/icons/lock-small.svg +0 -0
  2071. /package/static/{684b9f1 → d7a85a3}/icons/lock.svg +0 -0
  2072. /package/static/{684b9f1 → d7a85a3}/icons/magnet.svg +0 -0
  2073. /package/static/{684b9f1 → d7a85a3}/icons/mail-read.svg +0 -0
  2074. /package/static/{684b9f1 → d7a85a3}/icons/mail.svg +0 -0
  2075. /package/static/{684b9f1 → d7a85a3}/icons/map-filled.svg +0 -0
  2076. /package/static/{684b9f1 → d7a85a3}/icons/map-vertical-filled.svg +0 -0
  2077. /package/static/{684b9f1 → d7a85a3}/icons/map-vertical.svg +0 -0
  2078. /package/static/{684b9f1 → d7a85a3}/icons/map.svg +0 -0
  2079. /package/static/{684b9f1 → d7a85a3}/icons/markdown.svg +0 -0
  2080. /package/static/{684b9f1 → d7a85a3}/icons/mcp.svg +0 -0
  2081. /package/static/{684b9f1 → d7a85a3}/icons/megaphone.svg +0 -0
  2082. /package/static/{684b9f1 → d7a85a3}/icons/mention.svg +0 -0
  2083. /package/static/{684b9f1 → d7a85a3}/icons/menu.svg +0 -0
  2084. /package/static/{684b9f1 → d7a85a3}/icons/merge-into.svg +0 -0
  2085. /package/static/{684b9f1 → d7a85a3}/icons/merge.svg +0 -0
  2086. /package/static/{684b9f1 → d7a85a3}/icons/mic-filled.svg +0 -0
  2087. /package/static/{684b9f1 → d7a85a3}/icons/mic.svg +0 -0
  2088. /package/static/{684b9f1 → d7a85a3}/icons/milestone.svg +0 -0
  2089. /package/static/{684b9f1 → d7a85a3}/icons/mirror.svg +0 -0
  2090. /package/static/{684b9f1 → d7a85a3}/icons/mortar-board.svg +0 -0
  2091. /package/static/{684b9f1 → d7a85a3}/icons/move.svg +0 -0
  2092. /package/static/{684b9f1 → d7a85a3}/icons/multiple-windows.svg +0 -0
  2093. /package/static/{684b9f1 → d7a85a3}/icons/music.svg +0 -0
  2094. /package/static/{684b9f1 → d7a85a3}/icons/mute.svg +0 -0
  2095. /package/static/{684b9f1 → d7a85a3}/icons/new-collection.svg +0 -0
  2096. /package/static/{684b9f1 → d7a85a3}/icons/new-file.svg +0 -0
  2097. /package/static/{684b9f1 → d7a85a3}/icons/new-folder.svg +0 -0
  2098. /package/static/{684b9f1 → d7a85a3}/icons/new-session.svg +0 -0
  2099. /package/static/{684b9f1 → d7a85a3}/icons/newline.svg +0 -0
  2100. /package/static/{684b9f1 → d7a85a3}/icons/no-newline.svg +0 -0
  2101. /package/static/{684b9f1 → d7a85a3}/icons/note.svg +0 -0
  2102. /package/static/{684b9f1 → d7a85a3}/icons/notebook-template.svg +0 -0
  2103. /package/static/{684b9f1 → d7a85a3}/icons/notebook.svg +0 -0
  2104. /package/static/{684b9f1 → d7a85a3}/icons/octoface.svg +0 -0
  2105. /package/static/{684b9f1 → d7a85a3}/icons/open-in-product.svg +0 -0
  2106. /package/static/{684b9f1 → d7a85a3}/icons/open-in-window.svg +0 -0
  2107. /package/static/{684b9f1 → d7a85a3}/icons/open-preview.svg +0 -0
  2108. /package/static/{684b9f1 → d7a85a3}/icons/openai.svg +0 -0
  2109. /package/static/{684b9f1 → d7a85a3}/icons/organization.svg +0 -0
  2110. /package/static/{684b9f1 → d7a85a3}/icons/output.svg +0 -0
  2111. /package/static/{684b9f1 → d7a85a3}/icons/package.svg +0 -0
  2112. /package/static/{684b9f1 → d7a85a3}/icons/paintcan.svg +0 -0
  2113. /package/static/{684b9f1 → d7a85a3}/icons/pass-filled.svg +0 -0
  2114. /package/static/{684b9f1 → d7a85a3}/icons/pass.svg +0 -0
  2115. /package/static/{684b9f1 → d7a85a3}/icons/percentage.svg +0 -0
  2116. /package/static/{684b9f1 → d7a85a3}/icons/person-add.svg +0 -0
  2117. /package/static/{684b9f1 → d7a85a3}/icons/person.svg +0 -0
  2118. /package/static/{684b9f1 → d7a85a3}/icons/piano.svg +0 -0
  2119. /package/static/{684b9f1 → d7a85a3}/icons/pie-chart.svg +0 -0
  2120. /package/static/{684b9f1 → d7a85a3}/icons/pin.svg +0 -0
  2121. /package/static/{684b9f1 → d7a85a3}/icons/pinned-dirty.svg +0 -0
  2122. /package/static/{684b9f1 → d7a85a3}/icons/pinned.svg +0 -0
  2123. /package/static/{684b9f1 → d7a85a3}/icons/play-circle.svg +0 -0
  2124. /package/static/{684b9f1 → d7a85a3}/icons/play.svg +0 -0
  2125. /package/static/{684b9f1 → d7a85a3}/icons/plug.svg +0 -0
  2126. /package/static/{684b9f1 → d7a85a3}/icons/preserve-case.svg +0 -0
  2127. /package/static/{684b9f1 → d7a85a3}/icons/preview.svg +0 -0
  2128. /package/static/{684b9f1 → d7a85a3}/icons/primitive-square.svg +0 -0
  2129. /package/static/{684b9f1 → d7a85a3}/icons/progress.svg +0 -0
  2130. /package/static/{684b9f1 → d7a85a3}/icons/project.svg +0 -0
  2131. /package/static/{684b9f1 → d7a85a3}/icons/pulse.svg +0 -0
  2132. /package/static/{684b9f1 → d7a85a3}/icons/pwa-icon-192.png +0 -0
  2133. /package/static/{684b9f1 → d7a85a3}/icons/pwa-icon-512.png +0 -0
  2134. /package/static/{684b9f1 → d7a85a3}/icons/python.svg +0 -0
  2135. /package/static/{684b9f1 → d7a85a3}/icons/question.svg +0 -0
  2136. /package/static/{684b9f1 → d7a85a3}/icons/quote.svg +0 -0
  2137. /package/static/{684b9f1 → d7a85a3}/icons/quotes.svg +0 -0
  2138. /package/static/{684b9f1 → d7a85a3}/icons/radio-tower.svg +0 -0
  2139. /package/static/{684b9f1 → d7a85a3}/icons/reactions.svg +0 -0
  2140. /package/static/{684b9f1 → d7a85a3}/icons/record-keys.svg +0 -0
  2141. /package/static/{684b9f1 → d7a85a3}/icons/record-small.svg +0 -0
  2142. /package/static/{684b9f1 → d7a85a3}/icons/record.svg +0 -0
  2143. /package/static/{684b9f1 → d7a85a3}/icons/redo.svg +0 -0
  2144. /package/static/{684b9f1 → d7a85a3}/icons/references.svg +0 -0
  2145. /package/static/{684b9f1 → d7a85a3}/icons/refresh.svg +0 -0
  2146. /package/static/{684b9f1 → d7a85a3}/icons/regex.svg +0 -0
  2147. /package/static/{684b9f1 → d7a85a3}/icons/remote-explorer.svg +0 -0
  2148. /package/static/{684b9f1 → d7a85a3}/icons/remote.svg +0 -0
  2149. /package/static/{684b9f1 → d7a85a3}/icons/remove-small.svg +0 -0
  2150. /package/static/{684b9f1 → d7a85a3}/icons/remove.svg +0 -0
  2151. /package/static/{684b9f1 → d7a85a3}/icons/rename.svg +0 -0
  2152. /package/static/{684b9f1 → d7a85a3}/icons/replace-all.svg +0 -0
  2153. /package/static/{684b9f1 → d7a85a3}/icons/replace.svg +0 -0
  2154. /package/static/{684b9f1 → d7a85a3}/icons/reply.svg +0 -0
  2155. /package/static/{684b9f1 → d7a85a3}/icons/repo-clone.svg +0 -0
  2156. /package/static/{684b9f1 → d7a85a3}/icons/repo-fetch.svg +0 -0
  2157. /package/static/{684b9f1 → d7a85a3}/icons/repo-force-push.svg +0 -0
  2158. /package/static/{684b9f1 → d7a85a3}/icons/repo-forked.svg +0 -0
  2159. /package/static/{684b9f1 → d7a85a3}/icons/repo-pinned.svg +0 -0
  2160. /package/static/{684b9f1 → d7a85a3}/icons/repo-pull.svg +0 -0
  2161. /package/static/{684b9f1 → d7a85a3}/icons/repo-push.svg +0 -0
  2162. /package/static/{684b9f1 → d7a85a3}/icons/repo-selected.svg +0 -0
  2163. /package/static/{684b9f1 → d7a85a3}/icons/repo.svg +0 -0
  2164. /package/static/{684b9f1 → d7a85a3}/icons/report.svg +0 -0
  2165. /package/static/{684b9f1 → d7a85a3}/icons/request-changes.svg +0 -0
  2166. /package/static/{684b9f1 → d7a85a3}/icons/robot.svg +0 -0
  2167. /package/static/{684b9f1 → d7a85a3}/icons/rocket.svg +0 -0
  2168. /package/static/{684b9f1 → d7a85a3}/icons/root-folder-opened.svg +0 -0
  2169. /package/static/{684b9f1 → d7a85a3}/icons/root-folder.svg +0 -0
  2170. /package/static/{684b9f1 → d7a85a3}/icons/rss.svg +0 -0
  2171. /package/static/{684b9f1 → d7a85a3}/icons/ruby.svg +0 -0
  2172. /package/static/{684b9f1 → d7a85a3}/icons/run-above.svg +0 -0
  2173. /package/static/{684b9f1 → d7a85a3}/icons/run-all-coverage.svg +0 -0
  2174. /package/static/{684b9f1 → d7a85a3}/icons/run-all.svg +0 -0
  2175. /package/static/{684b9f1 → d7a85a3}/icons/run-below.svg +0 -0
  2176. /package/static/{684b9f1 → d7a85a3}/icons/run-coverage.svg +0 -0
  2177. /package/static/{684b9f1 → d7a85a3}/icons/run-errors.svg +0 -0
  2178. /package/static/{684b9f1 → d7a85a3}/icons/run-with-deps.svg +0 -0
  2179. /package/static/{684b9f1 → d7a85a3}/icons/save-all.svg +0 -0
  2180. /package/static/{684b9f1 → d7a85a3}/icons/save-as.svg +0 -0
  2181. /package/static/{684b9f1 → d7a85a3}/icons/save.svg +0 -0
  2182. /package/static/{684b9f1 → d7a85a3}/icons/screen-cut.svg +0 -0
  2183. /package/static/{684b9f1 → d7a85a3}/icons/screen-full.svg +0 -0
  2184. /package/static/{684b9f1 → d7a85a3}/icons/screen-normal.svg +0 -0
  2185. /package/static/{684b9f1 → d7a85a3}/icons/search-fuzzy.svg +0 -0
  2186. /package/static/{684b9f1 → d7a85a3}/icons/search-large.svg +0 -0
  2187. /package/static/{684b9f1 → d7a85a3}/icons/search-sparkle.svg +0 -0
  2188. /package/static/{684b9f1 → d7a85a3}/icons/search-stop.svg +0 -0
  2189. /package/static/{684b9f1 → d7a85a3}/icons/search.svg +0 -0
  2190. /package/static/{684b9f1 → d7a85a3}/icons/send-to-remote-agent.svg +0 -0
  2191. /package/static/{684b9f1 → d7a85a3}/icons/send.svg +0 -0
  2192. /package/static/{684b9f1 → d7a85a3}/icons/server-environment.svg +0 -0
  2193. /package/static/{684b9f1 → d7a85a3}/icons/server-process.svg +0 -0
  2194. /package/static/{684b9f1 → d7a85a3}/icons/server.svg +0 -0
  2195. /package/static/{684b9f1 → d7a85a3}/icons/session-in-progress.svg +0 -0
  2196. /package/static/{684b9f1 → d7a85a3}/icons/settings-gear.svg +0 -0
  2197. /package/static/{684b9f1 → d7a85a3}/icons/settings.svg +0 -0
  2198. /package/static/{684b9f1 → d7a85a3}/icons/share.svg +0 -0
  2199. /package/static/{684b9f1 → d7a85a3}/icons/shield.svg +0 -0
  2200. /package/static/{684b9f1 → d7a85a3}/icons/sign-in.svg +0 -0
  2201. /package/static/{684b9f1 → d7a85a3}/icons/sign-out.svg +0 -0
  2202. /package/static/{684b9f1 → d7a85a3}/icons/skip.svg +0 -0
  2203. /package/static/{684b9f1 → d7a85a3}/icons/smiley.svg +0 -0
  2204. /package/static/{684b9f1 → d7a85a3}/icons/snake.svg +0 -0
  2205. /package/static/{684b9f1 → d7a85a3}/icons/sort-precedence.svg +0 -0
  2206. /package/static/{684b9f1 → d7a85a3}/icons/source-control.svg +0 -0
  2207. /package/static/{684b9f1 → d7a85a3}/icons/sparkle-filled.svg +0 -0
  2208. /package/static/{684b9f1 → d7a85a3}/icons/sparkle.svg +0 -0
  2209. /package/static/{684b9f1 → d7a85a3}/icons/split-horizontal.svg +0 -0
  2210. /package/static/{684b9f1 → d7a85a3}/icons/split-vertical.svg +0 -0
  2211. /package/static/{684b9f1 → d7a85a3}/icons/squiggly-error.svg +0 -0
  2212. /package/static/{684b9f1 → d7a85a3}/icons/squiggly-warning.svg +0 -0
  2213. /package/static/{684b9f1 → d7a85a3}/icons/squirrel.svg +0 -0
  2214. /package/static/{684b9f1 → d7a85a3}/icons/star-empty.svg +0 -0
  2215. /package/static/{684b9f1 → d7a85a3}/icons/star-full.svg +0 -0
  2216. /package/static/{684b9f1 → d7a85a3}/icons/star-half.svg +0 -0
  2217. /package/static/{684b9f1 → d7a85a3}/icons/stop-circle.svg +0 -0
  2218. /package/static/{684b9f1 → d7a85a3}/icons/strikethrough.svg +0 -0
  2219. /package/static/{684b9f1 → d7a85a3}/icons/surround-with.svg +0 -0
  2220. /package/static/{684b9f1 → d7a85a3}/icons/symbol-array.svg +0 -0
  2221. /package/static/{684b9f1 → d7a85a3}/icons/symbol-boolean.svg +0 -0
  2222. /package/static/{684b9f1 → d7a85a3}/icons/symbol-class.svg +0 -0
  2223. /package/static/{684b9f1 → d7a85a3}/icons/symbol-color.svg +0 -0
  2224. /package/static/{684b9f1 → d7a85a3}/icons/symbol-constant.svg +0 -0
  2225. /package/static/{684b9f1 → d7a85a3}/icons/symbol-enum-member.svg +0 -0
  2226. /package/static/{684b9f1 → d7a85a3}/icons/symbol-enum.svg +0 -0
  2227. /package/static/{684b9f1 → d7a85a3}/icons/symbol-event.svg +0 -0
  2228. /package/static/{684b9f1 → d7a85a3}/icons/symbol-field.svg +0 -0
  2229. /package/static/{684b9f1 → d7a85a3}/icons/symbol-file.svg +0 -0
  2230. /package/static/{684b9f1 → d7a85a3}/icons/symbol-interface.svg +0 -0
  2231. /package/static/{684b9f1 → d7a85a3}/icons/symbol-key.svg +0 -0
  2232. /package/static/{684b9f1 → d7a85a3}/icons/symbol-keyword.svg +0 -0
  2233. /package/static/{684b9f1 → d7a85a3}/icons/symbol-method-arrow.svg +0 -0
  2234. /package/static/{684b9f1 → d7a85a3}/icons/symbol-method.svg +0 -0
  2235. /package/static/{684b9f1 → d7a85a3}/icons/symbol-misc.svg +0 -0
  2236. /package/static/{684b9f1 → d7a85a3}/icons/symbol-namespace.svg +0 -0
  2237. /package/static/{684b9f1 → d7a85a3}/icons/symbol-numeric.svg +0 -0
  2238. /package/static/{684b9f1 → d7a85a3}/icons/symbol-operator.svg +0 -0
  2239. /package/static/{684b9f1 → d7a85a3}/icons/symbol-parameter.svg +0 -0
  2240. /package/static/{684b9f1 → d7a85a3}/icons/symbol-property.svg +0 -0
  2241. /package/static/{684b9f1 → d7a85a3}/icons/symbol-ruler.svg +0 -0
  2242. /package/static/{684b9f1 → d7a85a3}/icons/symbol-snippet.svg +0 -0
  2243. /package/static/{684b9f1 → d7a85a3}/icons/symbol-string.svg +0 -0
  2244. /package/static/{684b9f1 → d7a85a3}/icons/symbol-structure.svg +0 -0
  2245. /package/static/{684b9f1 → d7a85a3}/icons/symbol-variable.svg +0 -0
  2246. /package/static/{684b9f1 → d7a85a3}/icons/sync-ignored.svg +0 -0
  2247. /package/static/{684b9f1 → d7a85a3}/icons/sync.svg +0 -0
  2248. /package/static/{684b9f1 → d7a85a3}/icons/table.svg +0 -0
  2249. /package/static/{684b9f1 → d7a85a3}/icons/tag.svg +0 -0
  2250. /package/static/{684b9f1 → d7a85a3}/icons/target.svg +0 -0
  2251. /package/static/{684b9f1 → d7a85a3}/icons/tasklist.svg +0 -0
  2252. /package/static/{684b9f1 → d7a85a3}/icons/telescope.svg +0 -0
  2253. /package/static/{684b9f1 → d7a85a3}/icons/terminal-bash.svg +0 -0
  2254. /package/static/{684b9f1 → d7a85a3}/icons/terminal-cmd.svg +0 -0
  2255. /package/static/{684b9f1 → d7a85a3}/icons/terminal-debian.svg +0 -0
  2256. /package/static/{684b9f1 → d7a85a3}/icons/terminal-git-bash.svg +0 -0
  2257. /package/static/{684b9f1 → d7a85a3}/icons/terminal-linux.svg +0 -0
  2258. /package/static/{684b9f1 → d7a85a3}/icons/terminal-powershell.svg +0 -0
  2259. /package/static/{684b9f1 → d7a85a3}/icons/terminal-tmux.svg +0 -0
  2260. /package/static/{684b9f1 → d7a85a3}/icons/terminal-ubuntu.svg +0 -0
  2261. /package/static/{684b9f1 → d7a85a3}/icons/terminal.svg +0 -0
  2262. /package/static/{684b9f1 → d7a85a3}/icons/text-size.svg +0 -0
  2263. /package/static/{684b9f1 → d7a85a3}/icons/theme-icon.png +0 -0
  2264. /package/static/{684b9f1 → d7a85a3}/icons/thinking.svg +0 -0
  2265. /package/static/{684b9f1 → d7a85a3}/icons/three-bars.svg +0 -0
  2266. /package/static/{684b9f1 → d7a85a3}/icons/thumbsdown-filled.svg +0 -0
  2267. /package/static/{684b9f1 → d7a85a3}/icons/thumbsdown.svg +0 -0
  2268. /package/static/{684b9f1 → d7a85a3}/icons/thumbsup-filled.svg +0 -0
  2269. /package/static/{684b9f1 → d7a85a3}/icons/thumbsup.svg +0 -0
  2270. /package/static/{684b9f1 → d7a85a3}/icons/tools.svg +0 -0
  2271. /package/static/{684b9f1 → d7a85a3}/icons/trash.svg +0 -0
  2272. /package/static/{684b9f1 → d7a85a3}/icons/triangle-down.svg +0 -0
  2273. /package/static/{684b9f1 → d7a85a3}/icons/triangle-left.svg +0 -0
  2274. /package/static/{684b9f1 → d7a85a3}/icons/triangle-right.svg +0 -0
  2275. /package/static/{684b9f1 → d7a85a3}/icons/triangle-up.svg +0 -0
  2276. /package/static/{684b9f1 → d7a85a3}/icons/twitter.svg +0 -0
  2277. /package/static/{684b9f1 → d7a85a3}/icons/type-hierarchy-sub.svg +0 -0
  2278. /package/static/{684b9f1 → d7a85a3}/icons/type-hierarchy-super.svg +0 -0
  2279. /package/static/{684b9f1 → d7a85a3}/icons/type-hierarchy.svg +0 -0
  2280. /package/static/{684b9f1 → d7a85a3}/icons/unarchive.svg +0 -0
  2281. /package/static/{684b9f1 → d7a85a3}/icons/unfold.svg +0 -0
  2282. /package/static/{684b9f1 → d7a85a3}/icons/ungroup-by-ref-type.svg +0 -0
  2283. /package/static/{684b9f1 → d7a85a3}/icons/unlock.svg +0 -0
  2284. /package/static/{684b9f1 → d7a85a3}/icons/unmute.svg +0 -0
  2285. /package/static/{684b9f1 → d7a85a3}/icons/unverified.svg +0 -0
  2286. /package/static/{684b9f1 → d7a85a3}/icons/variable-group.svg +0 -0
  2287. /package/static/{684b9f1 → d7a85a3}/icons/verified-filled.svg +0 -0
  2288. /package/static/{684b9f1 → d7a85a3}/icons/verified.svg +0 -0
  2289. /package/static/{684b9f1 → d7a85a3}/icons/versions.svg +0 -0
  2290. /package/static/{684b9f1 → d7a85a3}/icons/vm-active.svg +0 -0
  2291. /package/static/{684b9f1 → d7a85a3}/icons/vm-connect.svg +0 -0
  2292. /package/static/{684b9f1 → d7a85a3}/icons/vm-outline.svg +0 -0
  2293. /package/static/{684b9f1 → d7a85a3}/icons/vm-pending.svg +0 -0
  2294. /package/static/{684b9f1 → d7a85a3}/icons/vm-running.svg +0 -0
  2295. /package/static/{684b9f1 → d7a85a3}/icons/vm-small.svg +0 -0
  2296. /package/static/{684b9f1 → d7a85a3}/icons/vm.svg +0 -0
  2297. /package/static/{684b9f1 → d7a85a3}/icons/vr.svg +0 -0
  2298. /package/static/{684b9f1 → d7a85a3}/icons/vscode-insiders.svg +0 -0
  2299. /package/static/{684b9f1 → d7a85a3}/icons/vscode.svg +0 -0
  2300. /package/static/{684b9f1 → d7a85a3}/icons/wand.svg +0 -0
  2301. /package/static/{684b9f1 → d7a85a3}/icons/warning.svg +0 -0
  2302. /package/static/{684b9f1 → d7a85a3}/icons/watch.svg +0 -0
  2303. /package/static/{684b9f1 → d7a85a3}/icons/whitespace.svg +0 -0
  2304. /package/static/{684b9f1 → d7a85a3}/icons/whole-word.svg +0 -0
  2305. /package/static/{684b9f1 → d7a85a3}/icons/window-active.svg +0 -0
  2306. /package/static/{684b9f1 → d7a85a3}/icons/window.svg +0 -0
  2307. /package/static/{684b9f1 → d7a85a3}/icons/word-wrap.svg +0 -0
  2308. /package/static/{684b9f1 → d7a85a3}/icons/workspace-trusted.svg +0 -0
  2309. /package/static/{684b9f1 → d7a85a3}/icons/workspace-unknown.svg +0 -0
  2310. /package/static/{684b9f1 → d7a85a3}/icons/workspace-untrusted.svg +0 -0
  2311. /package/static/{684b9f1 → d7a85a3}/icons/worktree-small.svg +0 -0
  2312. /package/static/{684b9f1 → d7a85a3}/icons/worktree.svg +0 -0
  2313. /package/static/{684b9f1 → d7a85a3}/icons/zoom-in.svg +0 -0
  2314. /package/static/{684b9f1 → d7a85a3}/icons/zoom-out.svg +0 -0
  2315. /package/static/{684b9f1 → d7a85a3}/js/babel-parser.js +0 -0
  2316. /package/static/{684b9f1 → d7a85a3}/js/ky.js +0 -0
  2317. /package/static/{684b9f1 → d7a85a3}/js/lvce-editor-import-script.js +0 -0
  2318. /package/static/{684b9f1 → d7a85a3}/js/lvce-editor-ipc.js +0 -0
  2319. /package/static/{684b9f1 → d7a85a3}/js/lvce-editor-json-rpc.js +0 -0
  2320. /package/static/{684b9f1 → d7a85a3}/js/lvce-editor-rpc.js +0 -0
  2321. /package/static/{684b9f1 → d7a85a3}/js/lvce-editor-verror.js +0 -0
  2322. /package/static/{684b9f1 → d7a85a3}/js/p-min-delay.js +0 -0
  2323. /package/static/{684b9f1 → d7a85a3}/js/pretty-bytes.js +0 -0
  2324. /package/static/{684b9f1 → d7a85a3}/js/preview-injected.js +0 -0
  2325. /package/static/{684b9f1 → d7a85a3}/js/register-extension-file-system-service-worker.js +0 -0
  2326. /package/static/{684b9f1 → d7a85a3}/js/yoctodelay.js +0 -0
  2327. /package/static/{684b9f1 → d7a85a3}/lib-css/termterm.css +0 -0
  2328. /package/static/{684b9f1 → d7a85a3}/lib-css/xterm.css +0 -0
  2329. /package/static/{684b9f1 → d7a85a3}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
  2330. /package/static/{684b9f1 → d7a85a3}/packages/auth-worker/dist/authWorkerMain.js +0 -0
  2331. /package/static/{684b9f1 → d7a85a3}/packages/chat-coordinator-worker/dist/chatCoordinatorWorkerMain.js +0 -0
  2332. /package/static/{684b9f1 → d7a85a3}/packages/chat-debug-view/dist/chatDebugViewWorkerMain.js +0 -0
  2333. /package/static/{684b9f1 → d7a85a3}/packages/chat-math-worker/dist/chatMathWorkerMain.js +0 -0
  2334. /package/static/{684b9f1 → d7a85a3}/packages/chat-message-parsing-worker/dist/chatMessageParsingWorkerMain.js +0 -0
  2335. /package/static/{684b9f1 → d7a85a3}/packages/chat-network-worker/dist/chatNetworkWorkerMain.js +0 -0
  2336. /package/static/{684b9f1 → d7a85a3}/packages/chat-storage-worker/dist/chatStorageWorkerMain.js +0 -0
  2337. /package/static/{684b9f1 → d7a85a3}/packages/chat-tool-worker/dist/chatToolWorkerMain.js +0 -0
  2338. /package/static/{684b9f1 → d7a85a3}/packages/chat-view/dist/chatViewWorkerMain.js +0 -0
  2339. /package/static/{684b9f1 → d7a85a3}/packages/chat-view-model/dist/chatViewModelWorkerMain.js +0 -0
  2340. /package/static/{684b9f1 → d7a85a3}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  2341. /package/static/{684b9f1 → d7a85a3}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  2342. /package/static/{684b9f1 → d7a85a3}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  2343. /package/static/{684b9f1 → d7a85a3}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  2344. /package/static/{684b9f1 → d7a85a3}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
  2345. /package/static/{684b9f1 → d7a85a3}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
  2346. /package/static/{684b9f1 → d7a85a3}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  2347. /package/static/{684b9f1 → d7a85a3}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  2348. /package/static/{684b9f1 → d7a85a3}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
  2349. /package/static/{684b9f1 → d7a85a3}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
  2350. /package/static/{684b9f1 → d7a85a3}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  2351. /package/static/{684b9f1 → d7a85a3}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
  2352. /package/static/{684b9f1 → d7a85a3}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
  2353. /package/static/{684b9f1 → d7a85a3}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  2354. /package/static/{684b9f1 → d7a85a3}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  2355. /package/static/{684b9f1 → d7a85a3}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  2356. /package/static/{684b9f1 → d7a85a3}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  2357. /package/static/{684b9f1 → d7a85a3}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  2358. /package/static/{684b9f1 → d7a85a3}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  2359. /package/static/{684b9f1 → d7a85a3}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  2360. /package/static/{684b9f1 → d7a85a3}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
  2361. /package/static/{684b9f1 → d7a85a3}/packages/main-area-worker/dist/mainAreaWorkerMain.js +0 -0
  2362. /package/static/{684b9f1 → d7a85a3}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  2363. /package/static/{684b9f1 → d7a85a3}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
  2364. /package/static/{684b9f1 → d7a85a3}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
  2365. /package/static/{684b9f1 → d7a85a3}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
  2366. /package/static/{684b9f1 → d7a85a3}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
  2367. /package/static/{684b9f1 → d7a85a3}/packages/preload/dist/index.js +0 -0
  2368. /package/static/{684b9f1 → d7a85a3}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
  2369. /package/static/{684b9f1 → d7a85a3}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
  2370. /package/static/{684b9f1 → d7a85a3}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
  2371. /package/static/{684b9f1 → d7a85a3}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
  2372. /package/static/{684b9f1 → d7a85a3}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  2373. /package/static/{684b9f1 → d7a85a3}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  2374. /package/static/{684b9f1 → d7a85a3}/packages/renderer-process/LICENSE +0 -0
  2375. /package/static/{684b9f1 → d7a85a3}/packages/renderer-process/README.md +0 -0
  2376. /package/static/{684b9f1 → d7a85a3}/packages/renderer-process/package.json +0 -0
  2377. /package/static/{684b9f1 → d7a85a3}/packages/running-extensions-view/dist/runningExtensionsViewMain.js +0 -0
  2378. /package/static/{684b9f1 → d7a85a3}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  2379. /package/static/{684b9f1 → d7a85a3}/packages/settings-view/dist/settingsWorkerMain.js +0 -0
  2380. /package/static/{684b9f1 → d7a85a3}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  2381. /package/static/{684b9f1 → d7a85a3}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  2382. /package/static/{684b9f1 → d7a85a3}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  2383. /package/static/{684b9f1 → d7a85a3}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
  2384. /package/static/{684b9f1 → d7a85a3}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
  2385. /package/static/{684b9f1 → d7a85a3}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  2386. /package/static/{684b9f1 → d7a85a3}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
  2387. /package/static/{684b9f1 → d7a85a3}/packages/update-worker/dist/updateWorkerMain.js +0 -0
  2388. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.cpp +0 -0
  2389. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.css +0 -0
  2390. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.csv +0 -0
  2391. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.dart +0 -0
  2392. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.env +0 -0
  2393. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.ex +0 -0
  2394. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.html +0 -0
  2395. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.java +0 -0
  2396. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.jl +0 -0
  2397. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.js +0 -0
  2398. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.json +0 -0
  2399. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.kt +0 -0
  2400. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.pl +0 -0
  2401. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.py +0 -0
  2402. /package/static/{684b9f1 → d7a85a3}/playground/languages/index.ts +0 -0
  2403. /package/static/{684b9f1 → d7a85a3}/playground/languages/scrolling.txt +0 -0
  2404. /package/static/{684b9f1 → d7a85a3}/playground/languages/tsconfig.json +0 -0
  2405. /package/static/{684b9f1 → d7a85a3}/playground/sample-folder/a.txt +0 -0
  2406. /package/static/{684b9f1 → d7a85a3}/playground/sample-folder/b.txt +0 -0
  2407. /package/static/{684b9f1 → d7a85a3}/playground/sample-folder/c.txt +0 -0
@@ -1117,10 +1117,14 @@ const create$1 = rpcId => {
1117
1117
  };
1118
1118
  };
1119
1119
 
1120
+ const Button$1 = 1;
1120
1121
  const Div = 4;
1122
+ const Input = 6;
1121
1123
  const Span = 8;
1122
1124
  const Text = 12;
1125
+ const Img = 17;
1123
1126
  const A = 53;
1127
+ const TextArea = 62;
1124
1128
  const Reference = 100;
1125
1129
 
1126
1130
  const Button = 'event.button';
@@ -1129,9 +1133,18 @@ const ClientY = 'event.clientY';
1129
1133
  const DeltaMode = 'event.deltaMode';
1130
1134
  const DeltaY = 'event.deltaY';
1131
1135
  const TargetName = 'event.target.name';
1132
- const TargetValue = 'event.target.value';
1133
1136
 
1134
- const User = 1;
1137
+ const Backspace = 1;
1138
+ const Enter = 3;
1139
+ const End = 255;
1140
+ const Home = 12;
1141
+ const LeftArrow = 13;
1142
+ const UpArrow = 14;
1143
+ const RightArrow = 15;
1144
+ const DownArrow = 16;
1145
+ const Delete = 18;
1146
+
1147
+ const User$1 = 1;
1135
1148
 
1136
1149
  const ErrorWorker = 3308;
1137
1150
  const ExtensionHostWorker = 44;
@@ -1141,46 +1154,63 @@ const IconThemeWorker = 7009;
1141
1154
  const MarkdownWorker = 300;
1142
1155
  const RendererWorker = 1;
1143
1156
 
1157
+ const FocusSelector = 'Viewlet.focusSelector';
1144
1158
  const SetCss = 'Viewlet.setCss';
1145
1159
  const SetDom2 = 'Viewlet.setDom2';
1146
1160
  const SetFocusContext = 'Viewlet.setFocusContext';
1147
1161
  const SetValueByName = 'Viewlet.setValueByName';
1148
1162
 
1149
1163
  const {
1150
- invoke: invoke$5,
1164
+ invoke: invoke$7,
1151
1165
  set: set$8
1152
1166
  } = create$1(218_933);
1153
1167
 
1154
1168
  const {
1155
- invoke: invoke$4,
1169
+ invoke: invoke$6,
1156
1170
  set: set$7
1157
1171
  } = create$1(ErrorWorker);
1158
1172
 
1159
1173
  const {
1160
- invoke: invoke$3,
1174
+ invoke: invoke$5,
1161
1175
  set: set$6
1162
1176
  } = create$1(ExtensionHostWorker);
1163
1177
 
1164
1178
  const {
1165
- invoke: invoke$2,
1179
+ invoke: invoke$4,
1166
1180
  set: set$5
1167
1181
  } = create$1(ExtensionManagementWorker);
1168
1182
 
1169
1183
  const {
1170
- invoke: invoke$1,
1184
+ invoke: invoke$3,
1171
1185
  set: set$4
1172
1186
  } = create$1(FileSystemWorker);
1173
- const readFile$1 = async uri => {
1174
- return invoke$1('FileSystem.readFile', uri);
1187
+ const readFile$2 = async uri => {
1188
+ return invoke$3('FileSystem.readFile', uri);
1175
1189
  };
1176
- const readFileAsBlob = async uri => {
1177
- return invoke$1('FileSystem.readFileAsBlob', uri);
1190
+
1191
+ const {
1192
+ invoke: invoke$2,
1193
+ set: set$3
1194
+ } = create$1(IconThemeWorker);
1195
+
1196
+ const TextMeasurementWorker = {
1197
+ __proto__: null,
1198
+ invoke: invoke$2,
1199
+ set: set$3
1178
1200
  };
1179
1201
 
1180
1202
  const {
1203
+ invoke: invoke$1,
1181
1204
  invokeAndTransfer,
1182
- set: set$3
1205
+ set: set$2
1183
1206
  } = create$1(RendererWorker);
1207
+ const showContextMenu2 = async (uid, menuId, x, y, args) => {
1208
+ number(uid);
1209
+ number(menuId);
1210
+ number(x);
1211
+ number(y);
1212
+ await invoke$1('ContextMenu.show2', uid, menuId, x, y, args);
1213
+ };
1184
1214
  const sendMessagePortToErrorWorker = async (port, rpcId) => {
1185
1215
  const command = 'Errors.handleMessagePort';
1186
1216
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToErrorWorker', port, command, rpcId);
@@ -1189,6 +1219,9 @@ const sendMessagePortToFileSystemWorker = async (port, rpcId) => {
1189
1219
  const command = 'FileSystem.handleMessagePort';
1190
1220
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
1191
1221
  };
1222
+ const readFile$1 = async uri => {
1223
+ return invoke$1('FileSystem.readFile', uri);
1224
+ };
1192
1225
  const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
1193
1226
  const command = 'HandleMessagePort.handleMessagePort2';
1194
1227
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
@@ -1209,10 +1242,6 @@ const sendMessagePortToDiffWorker = async (port, rpcId = 0) => {
1209
1242
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToDiffWorker', port, command, rpcId);
1210
1243
  };
1211
1244
 
1212
- const {
1213
- set: set$2
1214
- } = create$1(IconThemeWorker);
1215
-
1216
1245
  const {
1217
1246
  invoke,
1218
1247
  set: set$1
@@ -1236,13 +1265,13 @@ const create = () => {
1236
1265
  },
1237
1266
  diff(uid, modules, numbers) {
1238
1267
  const {
1239
- newState,
1240
- oldState
1268
+ oldState,
1269
+ scheduledState
1241
1270
  } = states[uid];
1242
1271
  const diffResult = [];
1243
1272
  for (let i = 0; i < modules.length; i++) {
1244
1273
  const fn = modules[i];
1245
- if (!fn(oldState, newState)) {
1274
+ if (!fn(oldState, scheduledState)) {
1246
1275
  diffResult.push(numbers[i]);
1247
1276
  }
1248
1277
  }
@@ -1260,17 +1289,16 @@ const create = () => {
1260
1289
  return ids;
1261
1290
  },
1262
1291
  getKeys() {
1263
- return Object.keys(states).map(key => {
1264
- return Number.parseFloat(key);
1265
- });
1292
+ return Object.keys(states).map(Number);
1266
1293
  },
1267
1294
  registerCommands(commandMap) {
1268
1295
  Object.assign(commandMapRef, commandMap);
1269
1296
  },
1270
- set(uid, oldState, newState) {
1297
+ set(uid, oldState, newState, scheduledState) {
1271
1298
  states[uid] = {
1272
1299
  newState,
1273
- oldState
1300
+ oldState,
1301
+ scheduledState: scheduledState ?? newState
1274
1302
  };
1275
1303
  },
1276
1304
  wrapCommand(fn) {
@@ -1290,7 +1318,8 @@ const create = () => {
1290
1318
  };
1291
1319
  states[uid] = {
1292
1320
  newState: latestNew,
1293
- oldState: latestOld.oldState
1321
+ oldState: latestOld.oldState,
1322
+ scheduledState: latestNew
1294
1323
  };
1295
1324
  };
1296
1325
  return wrapped;
@@ -1327,7 +1356,8 @@ const create = () => {
1327
1356
  };
1328
1357
  states[uid] = {
1329
1358
  newState: latestNew,
1330
- oldState: latestOld.oldState
1359
+ oldState: latestOld.oldState,
1360
+ scheduledState: latestNew
1331
1361
  };
1332
1362
  return {
1333
1363
  error
@@ -1346,6 +1376,7 @@ const defaultAllowedLinkSchemes = ['http', 'https', 'file'];
1346
1376
  const createDefaultState = () => ({
1347
1377
  allowedLinkSchemes: defaultAllowedLinkSchemes,
1348
1378
  assetDir: '',
1379
+ charWidth: 9,
1349
1380
  contentLeft: '',
1350
1381
  contentRight: '',
1351
1382
  deltaY: 0,
@@ -1358,6 +1389,9 @@ const createDefaultState = () => ({
1358
1389
  errorRightStack: '',
1359
1390
  finalDeltaY: 0,
1360
1391
  focus: 0,
1392
+ focusVersion: 0,
1393
+ fontFamily: 'monospace',
1394
+ fontSize: 12,
1361
1395
  gitRoot: '',
1362
1396
  gutterWidthVariable: 9,
1363
1397
  handleOffset: 0,
@@ -1378,7 +1412,12 @@ const createDefaultState = () => ({
1378
1412
  languageIdLeft: 'unknown',
1379
1413
  languageIdRight: 'unknown',
1380
1414
  layout: 'horizontal',
1415
+ leftEditor: {
1416
+ cursorColumnIndex: 0,
1417
+ cursorRowIndex: 0
1418
+ },
1381
1419
  leftWidth: 48,
1420
+ letterSpacing: 0,
1382
1421
  lineNumbers: true,
1383
1422
  maxInputLines: 5,
1384
1423
  maxLineY: 0,
@@ -1390,11 +1429,19 @@ const createDefaultState = () => ({
1390
1429
  renderModeRight: 'text',
1391
1430
  resizeOffsetX: 0,
1392
1431
  resizeOffsetY: 0,
1432
+ rightEditor: {
1433
+ cursorColumnIndex: 0,
1434
+ cursorRowIndex: 0
1435
+ },
1393
1436
  rightWidth: 48,
1394
1437
  root: '/',
1395
1438
  scrollBarActive: false,
1439
+ scrollBarBackgroundImage: 'none',
1396
1440
  scrollBarDragOffsetY: 0,
1397
1441
  scrollBarHeight: 0,
1442
+ searchQuery: '',
1443
+ searchVisible: false,
1444
+ showWhitespace: false,
1398
1445
  splitButtonEnabled: false,
1399
1446
  tokenizedLinesLeft: [],
1400
1447
  tokenizedLinesRight: [],
@@ -1408,23 +1455,37 @@ const createDefaultState = () => ({
1408
1455
  visibleLinesLeft: [],
1409
1456
  visibleLinesRight: [],
1410
1457
  width: 100,
1458
+ wordWrap: false,
1411
1459
  workspacePath: '',
1412
1460
  x: 0,
1413
1461
  y: 0
1414
1462
  });
1415
1463
 
1464
+ const registry = create();
1465
+ const {
1466
+ get
1467
+ } = registry;
1468
+ const {
1469
+ getCommandIds
1470
+ } = registry;
1471
+ const {
1472
+ getKeys: getKeys$1
1473
+ } = registry;
1474
+ const {
1475
+ registerCommands
1476
+ } = registry;
1477
+ const {
1478
+ set
1479
+ } = registry;
1416
1480
  const {
1417
- get,
1418
- getCommandIds,
1419
- registerCommands,
1420
- set,
1421
- wrapCommand} = create();
1481
+ wrapCommand
1482
+ } = registry;
1422
1483
 
1423
- const clamp = (value, minimum, maximum) => {
1484
+ const clamp$1 = (value, minimum, maximum) => {
1424
1485
  return Math.min(Math.max(value, minimum), maximum);
1425
1486
  };
1426
1487
 
1427
- const SASH_WIDTH = 4;
1488
+ const SASH_WIDTH = 6;
1428
1489
  const DEFAULT_MINIMUM_PANE_WIDTH = 50;
1429
1490
  const getAvailableSize = size => {
1430
1491
  return Math.max(size - SASH_WIDTH, 0);
@@ -1448,7 +1509,7 @@ const getClampedLeftWidth = (width, leftWidth) => {
1448
1509
  const availableWidth = getAvailableSize(width);
1449
1510
  const minimumPaneWidth = getMinimumPaneWidth(width);
1450
1511
  const maximumLeftWidth = availableWidth - minimumPaneWidth;
1451
- return clamp(leftWidth, minimumPaneWidth, maximumLeftWidth);
1512
+ return clamp$1(leftWidth, minimumPaneWidth, maximumLeftWidth);
1452
1513
  };
1453
1514
  const getRightWidth = (width, leftWidth) => {
1454
1515
  return getAvailableSize(width) - leftWidth;
@@ -1466,7 +1527,7 @@ const getClampedPaneSize = (size, leftWidth) => {
1466
1527
  const availableSize = getAvailableSize(size);
1467
1528
  const minimumPaneWidth = Math.min(DEFAULT_MINIMUM_PANE_WIDTH, Math.floor(availableSize / 2));
1468
1529
  const maximumLeftWidth = availableSize - minimumPaneWidth;
1469
- return clamp(leftWidth, minimumPaneWidth, maximumLeftWidth);
1530
+ return clamp$1(leftWidth, minimumPaneWidth, maximumLeftWidth);
1470
1531
  };
1471
1532
  const getRemainingPaneSize = (size, leftWidth) => {
1472
1533
  return getAvailableSize(size) - leftWidth;
@@ -1495,53 +1556,139 @@ const create2 = (id, uri, x, y, width, height, workspacePath, platform, assetDir
1495
1556
  set(id, state, state);
1496
1557
  };
1497
1558
 
1498
- const isEqual$3 = (oldState, newState) => {
1499
- return oldState.deltaY === newState.deltaY && oldState.diffMode === newState.diffMode && oldState.finalDeltaY === newState.finalDeltaY && oldState.gutterWidthVariable === newState.gutterWidthVariable && oldState.height === newState.height && oldState.itemHeight === newState.itemHeight && oldState.layout === newState.layout && oldState.leftWidth === newState.leftWidth && oldState.maxLineY === newState.maxLineY && oldState.minLineY === newState.minLineY && oldState.rightWidth === newState.rightWidth && oldState.scrollBarHeight === newState.scrollBarHeight && oldState.totalLineCount === newState.totalLineCount;
1559
+ const lineNumberCharWidth = 9;
1560
+ const getGutterWidthVariable = maxLineNumber => {
1561
+ const maxLineNumberCharCount = String(Math.max(maxLineNumber, 1)).length;
1562
+ return maxLineNumberCharCount * lineNumberCharWidth;
1500
1563
  };
1501
1564
 
1502
- const isEqual$2 = (oldState, newState) => {
1503
- return oldState.focus === newState.focus;
1565
+ const getInlineDiffChanges = (linesLeft, linesRight) => {
1566
+ return invoke$7('Diff.diffInline', linesLeft, linesRight);
1504
1567
  };
1505
1568
 
1506
- const isEqual$1 = (oldState, newState) => {
1507
- return oldState.deltaY === newState.deltaY && oldState.diffMode === newState.diffMode && oldState.lineNumbers === newState.lineNumbers && oldState.layout === newState.layout && oldState.maxLineY === newState.maxLineY && oldState.minLineY === newState.minLineY;
1508
- };
1569
+ const None = 0;
1570
+ const Insertion = 1;
1571
+ const Deletion = 2;
1509
1572
 
1510
- const RenderItems = 4;
1511
- const RenderFocusContext = 7;
1512
- const RenderValue = 8;
1513
- const RenderCss = 10;
1514
- const RenderIncremental = 11;
1573
+ const getVisibleInlineDiffRows = inlineChanges => {
1574
+ const visibleRows = [];
1575
+ for (let index = 0; index < inlineChanges.length; index++) {
1576
+ const inlineChange = inlineChanges[index];
1577
+ const nextInlineChange = inlineChanges[index + 1];
1578
+ if (inlineChange.type === Deletion && nextInlineChange?.type === Insertion) {
1579
+ visibleRows.push({
1580
+ leftChange: inlineChange,
1581
+ rightChange: nextInlineChange
1582
+ });
1583
+ index++;
1584
+ continue;
1585
+ }
1586
+ if (inlineChange.type === Deletion) {
1587
+ visibleRows.push({
1588
+ leftChange: inlineChange
1589
+ });
1590
+ continue;
1591
+ }
1592
+ if (inlineChange.type === Insertion) {
1593
+ visibleRows.push({
1594
+ rightChange: inlineChange
1595
+ });
1596
+ continue;
1597
+ }
1598
+ visibleRows.push({
1599
+ leftChange: inlineChange,
1600
+ rightChange: inlineChange
1601
+ });
1602
+ }
1603
+ return visibleRows;
1604
+ };
1515
1605
 
1516
- const isEqual = (oldState, newState) => {
1517
- return newState.inputSource === User || oldState.inputValue === newState.inputValue;
1606
+ const getInlineDiffState = async (contentLeft, contentRight) => {
1607
+ const linesLeft = contentLeft ? contentLeft.split('\n') : [''];
1608
+ const linesRight = contentRight ? contentRight.split('\n') : [''];
1609
+ const inlineChanges = await getInlineDiffChanges(linesLeft, linesRight);
1610
+ return {
1611
+ inlineChanges,
1612
+ totalLineCount: Math.max(getVisibleInlineDiffRows(inlineChanges).length, 1)
1613
+ };
1518
1614
  };
1519
1615
 
1520
- const modules = [isEqual$1, isEqual, isEqual$3, isEqual$2];
1521
- const numbers = [RenderIncremental, RenderValue, RenderCss, RenderFocusContext];
1616
+ const getLineCount = content => {
1617
+ if (!content) {
1618
+ return 1;
1619
+ }
1620
+ return content.split('\n').length;
1621
+ };
1522
1622
 
1523
- const diff = (oldState, newState) => {
1524
- const diffResult = [];
1525
- for (let i = 0; i < modules.length; i++) {
1526
- const fn = modules[i];
1527
- if (!fn(oldState, newState)) {
1528
- diffResult.push(numbers[i]);
1623
+ const AddedColor = 'rgba(46, 160, 67, 0.72)';
1624
+ const DeletedColor = 'rgba(248, 81, 73, 0.72)';
1625
+ const formatPercentage = value => {
1626
+ return String(Number(value.toFixed(4)));
1627
+ };
1628
+ const getScrollBarMarkerType = changeType => {
1629
+ if (changeType === Insertion) {
1630
+ return 'added';
1631
+ }
1632
+ if (changeType === Deletion) {
1633
+ return 'deleted';
1634
+ }
1635
+ return '';
1636
+ };
1637
+ const getScrollBarMarkerColor = type => {
1638
+ if (type === 'added') {
1639
+ return AddedColor;
1640
+ }
1641
+ return DeletedColor;
1642
+ };
1643
+ const getScrollBarMarkersForSide = (rows, side, totalLineCount) => {
1644
+ const markers = [];
1645
+ let start = 0;
1646
+ let activeType = '';
1647
+ for (let index = 0; index < rows.length; index++) {
1648
+ const row = rows[index];
1649
+ const change = side === 'left' ? row.leftChange : row.rightChange;
1650
+ const nextType = getScrollBarMarkerType(change?.type);
1651
+ if (nextType === activeType) {
1652
+ continue;
1653
+ }
1654
+ if (activeType) {
1655
+ markers.push({
1656
+ color: getScrollBarMarkerColor(activeType),
1657
+ end: index / totalLineCount * 100,
1658
+ start: start / totalLineCount * 100
1659
+ });
1529
1660
  }
1661
+ activeType = nextType;
1662
+ start = index;
1530
1663
  }
1531
- return diffResult;
1664
+ if (activeType) {
1665
+ markers.push({
1666
+ color: getScrollBarMarkerColor(activeType),
1667
+ end: rows.length / totalLineCount * 100,
1668
+ start: start / totalLineCount * 100
1669
+ });
1670
+ }
1671
+ return markers;
1532
1672
  };
1533
-
1534
- const diff2 = uid => {
1535
- const {
1536
- newState,
1537
- oldState
1538
- } = get(uid);
1539
- const result = diff(oldState, newState);
1540
- return result;
1673
+ const getScrollBarMarkerBackgroundImage = ({
1674
+ color,
1675
+ end,
1676
+ start
1677
+ }) => {
1678
+ const formattedStart = formatPercentage(start);
1679
+ const formattedEnd = formatPercentage(end);
1680
+ return `linear-gradient(to bottom, transparent ${formattedStart}%, ${color} ${formattedStart}%, ${color} ${formattedEnd}%, transparent ${formattedEnd}%)`;
1541
1681
  };
1542
-
1543
- const handleContextMenu = (state, button, clientX, clientY) => {
1544
- return state;
1682
+ const getScrollBarBackgroundImage = (inlineChanges, totalLineCount) => {
1683
+ if (inlineChanges.length === 0 || totalLineCount === 0) {
1684
+ return 'none';
1685
+ }
1686
+ const rows = getVisibleInlineDiffRows(inlineChanges);
1687
+ const markers = [...getScrollBarMarkersForSide(rows, 'left', totalLineCount), ...getScrollBarMarkersForSide(rows, 'right', totalLineCount)];
1688
+ if (markers.length === 0) {
1689
+ return 'none';
1690
+ }
1691
+ return markers.map(getScrollBarMarkerBackgroundImage).join(', ');
1545
1692
  };
1546
1693
 
1547
1694
  const getNumberOfVisibleItems = (height, itemHeight) => {
@@ -1566,7 +1713,7 @@ const getScrollState = (height, itemHeight, totalLineCount, minimumSliderSize, d
1566
1713
  const safeTotalLineCount = Math.max(totalLineCount, 1);
1567
1714
  const contentHeight = safeTotalLineCount * safeItemHeight;
1568
1715
  const finalDeltaY = Math.max(contentHeight - height, 0);
1569
- const clampedDeltaY = clamp(deltaY, 0, finalDeltaY);
1716
+ const clampedDeltaY = clamp$1(deltaY, 0, finalDeltaY);
1570
1717
  const minLineY = Math.floor(clampedDeltaY / safeItemHeight);
1571
1718
  const numberOfVisibleItems = getNumberOfVisibleItems(height, safeItemHeight);
1572
1719
  const maxLineY = Math.min(minLineY + numberOfVisibleItems, safeTotalLineCount);
@@ -1581,42 +1728,54 @@ const getScrollState = (height, itemHeight, totalLineCount, minimumSliderSize, d
1581
1728
  };
1582
1729
  };
1583
1730
 
1584
- const None = 0;
1585
- const Insertion = 1;
1586
- const Deletion = 2;
1587
-
1588
- const getVisibleInlineDiffRows = inlineChanges => {
1589
- const visibleRows = [];
1590
- for (let index = 0; index < inlineChanges.length; index++) {
1591
- const inlineChange = inlineChanges[index];
1592
- const nextInlineChange = inlineChanges[index + 1];
1593
- if (inlineChange.type === Deletion && nextInlineChange?.type === Insertion) {
1594
- visibleRows.push({
1595
- leftChange: inlineChange,
1596
- rightChange: nextInlineChange
1597
- });
1598
- index++;
1599
- continue;
1600
- }
1601
- if (inlineChange.type === Deletion) {
1602
- visibleRows.push({
1603
- leftChange: inlineChange
1604
- });
1605
- continue;
1606
- }
1607
- if (inlineChange.type === Insertion) {
1608
- visibleRows.push({
1609
- rightChange: inlineChange
1610
- });
1611
- continue;
1612
- }
1613
- visibleRows.push({
1614
- leftChange: inlineChange,
1615
- rightChange: inlineChange
1616
- });
1617
- }
1618
- return visibleRows;
1619
- };
1731
+ const DiffEditor = 'DiffEditor';
1732
+ const DiffEditorBody = 'DiffEditorBody';
1733
+ const DiffEditorButtons = 'DiffEditorButtons';
1734
+ const DiffEditorContent = 'DiffEditorContent';
1735
+ const DiffEditorContentLeft = 'DiffEditorContentLeft';
1736
+ const DiffEditorContentRight = 'DiffEditorContentRight';
1737
+ const DiffEditorError = 'DiffEditorError';
1738
+ const DiffEditorErrorCodeFrame = 'DiffEditorErrorCodeFrame';
1739
+ const DiffEditorErrorMessage = 'DiffEditorErrorMessage';
1740
+ const DiffEditorErrorStack = 'DiffEditorErrorStack';
1741
+ const DiffEditorErrorStackLink = 'DiffEditorErrorStackLink';
1742
+ const DiffEditorGutter = 'DiffEditorGutter';
1743
+ const DiffEditorHorizontal = 'DiffEditorHorizontal';
1744
+ const DiffEditorInput$1 = 'DiffEditorInput';
1745
+ const DiffEditorInputWrapper = 'DiffEditorInputWrapper';
1746
+ const DiffEditorLineMissing = 'DiffEditorLineMissing';
1747
+ const DiffEditorLineNumber = 'DiffEditorLineNumber';
1748
+ const DiffEditorLineNumberDeletion = 'DiffEditorLineNumberDeletion';
1749
+ const DiffEditorLineNumberEmpty = 'DiffEditorLineNumberEmpty';
1750
+ const DiffEditorLineNumberInsertion = 'DiffEditorLineNumberInsertion';
1751
+ const DiffEditorLineNumberMeta = 'DiffEditorLineNumberMeta';
1752
+ const DiffEditorModeToggle = 'DiffEditorModeToggle';
1753
+ const DiffEditorRows = 'DiffEditorRows';
1754
+ const DiffEditorSelections = 'DiffEditorSelections';
1755
+ const DiffEditorVertical = 'DiffEditorVertical';
1756
+ const DiffEditorWithSearch = 'DiffEditorWithSearch';
1757
+ const DiffEditorWhitespaceToggle = 'DiffEditorWhitespaceToggle';
1758
+ const DiffEditorWhitespaceToggleActive = 'DiffEditorWhitespaceToggleActive';
1759
+ const DiffSearchHeader = 'DiffSearchHeader';
1760
+ const DiffSearchInput = 'DiffSearchInput';
1761
+ const DiffScrollBar = 'DiffScrollBar';
1762
+ const DiffScrollBarThumb = 'DiffScrollBarThumb';
1763
+ const DiffTokenChanged = 'DiffToken--changed';
1764
+ const EditorCursor = 'EditorCursor';
1765
+ const EditorCursorRight = 'EditorCursorRight';
1766
+ const EditorRow = 'EditorRow';
1767
+ const EditorRowDeletion = 'EditorRow Deletion';
1768
+ const EditorRowGitButtons = 'EditorRow GitButtons';
1769
+ const EditorRowIncomingChange = 'EditorRow IncomingChange';
1770
+ const EditorRowInsertion = 'EditorRow Insertion';
1771
+ const ImageContent = 'ImageContent';
1772
+ const ImageElement = 'ImageElement';
1773
+ const InlineDiffEditor = 'InlineDiffEditor';
1774
+ const InlineDiffEditorContent = 'InlineDiffEditorContent';
1775
+ const Sash = 'Sash';
1776
+ const SashHorizontal = 'SashHorizontal';
1777
+ const SashVertical = 'SashVertical';
1778
+ const Viewlet = 'Viewlet';
1620
1779
 
1621
1780
  const getVisibleRows = (content, totalLineCount, minLineY, maxLineY) => {
1622
1781
  const lines = content ? content.split('\n') : [''];
@@ -1676,23 +1835,253 @@ const getVisibleLineType = (inlineChange, side) => {
1676
1835
  }
1677
1836
  };
1678
1837
 
1679
- const getVisibleLines = (content, totalLineCount, inlineChanges, minLineY, maxLineY, side, tokenizedLines = []) => {
1680
- if (inlineChanges.length === 0) {
1681
- return getVisibleRows(content, totalLineCount, minLineY, maxLineY).map((line, index) => ({
1682
- lineNumber: minLineY + index + 1,
1683
- tokens: getTokens(tokenizedLines, minLineY + index, line),
1684
- type: VisibleLineType.Normal
1685
- }));
1838
+ const maxInlineDiffMatrixSize = 10_000;
1839
+ const getInlineChangeLineIndex = (inlineChange, side) => {
1840
+ if (!inlineChange) {
1841
+ return -1;
1686
1842
  }
1687
- const lines = content ? content.split('\n') : [''];
1688
- return getVisibleInlineDiffRows(inlineChanges).slice(minLineY, maxLineY).map(visibleRow => {
1843
+ if (side === 'left') {
1844
+ return inlineChange.leftIndex;
1845
+ }
1846
+ return inlineChange.rightIndex;
1847
+ };
1848
+ const getCommonPrefixLength = (chars, otherChars) => {
1849
+ const max = Math.min(chars.length, otherChars.length);
1850
+ let index = 0;
1851
+ while (index < max && chars[index] === otherChars[index]) {
1852
+ index++;
1853
+ }
1854
+ return index;
1855
+ };
1856
+ const getCommonSuffixLength = (chars, otherChars, prefixLength) => {
1857
+ const max = Math.min(chars.length, otherChars.length) - prefixLength;
1858
+ let index = 0;
1859
+ while (index < max && chars[chars.length - index - 1] === otherChars[otherChars.length - index - 1]) {
1860
+ index++;
1861
+ }
1862
+ return index;
1863
+ };
1864
+ const getCharacterOffset = (chars, endIndex) => {
1865
+ let offset = 0;
1866
+ for (let index = 0; index < endIndex; index++) {
1867
+ offset += chars[index].length;
1868
+ }
1869
+ return offset;
1870
+ };
1871
+ const getChangedRangesFallback = (chars, prefixLength, suffixLength) => {
1872
+ const start = getCharacterOffset(chars, prefixLength);
1873
+ const end = getCharacterOffset(chars, chars.length - suffixLength);
1874
+ if (start === end) {
1875
+ return [];
1876
+ }
1877
+ return [{
1878
+ end,
1879
+ start
1880
+ }];
1881
+ };
1882
+ const getSubsequenceLengths = (diffChars, diffOtherChars) => {
1883
+ const rowCount = diffChars.length + 1;
1884
+ const columnCount = diffOtherChars.length + 1;
1885
+ const lengths = Array.from({
1886
+ length: rowCount
1887
+ }, () => Array(columnCount).fill(0));
1888
+ for (let row = diffChars.length - 1; row >= 0; row--) {
1889
+ for (let column = diffOtherChars.length - 1; column >= 0; column--) {
1890
+ lengths[row][column] = diffChars[row] === diffOtherChars[column] ? lengths[row + 1][column + 1] + 1 : Math.max(lengths[row + 1][column], lengths[row][column + 1]);
1891
+ }
1892
+ }
1893
+ return lengths;
1894
+ };
1895
+ const finishRange = (ranges, rangeStart, offset) => {
1896
+ if (rangeStart !== -1 && rangeStart !== offset) {
1897
+ return {
1898
+ ranges: [...ranges, {
1899
+ end: offset,
1900
+ start: rangeStart
1901
+ }],
1902
+ rangeStart: -1
1903
+ };
1904
+ }
1905
+ return {
1906
+ ranges,
1907
+ rangeStart: -1
1908
+ };
1909
+ };
1910
+ const advanceDeletedCharacter = (rangeStart, offset, char) => {
1911
+ return {
1912
+ offset: offset + char.length,
1913
+ rangeStart: rangeStart === -1 ? offset : rangeStart
1914
+ };
1915
+ };
1916
+ const getMatrixChangedRanges = (chars, diffChars, diffOtherChars, lengths, prefixLength) => {
1917
+ let ranges = [];
1918
+ let row = 0;
1919
+ let column = 0;
1920
+ let offset = getCharacterOffset(chars, prefixLength);
1921
+ let rangeStart = -1;
1922
+ while (row < diffChars.length && column < diffOtherChars.length) {
1923
+ if (diffChars[row] === diffOtherChars[column]) {
1924
+ const finishedRangeState = finishRange(ranges, rangeStart, offset);
1925
+ ({
1926
+ ranges,
1927
+ rangeStart
1928
+ } = finishedRangeState);
1929
+ offset += diffChars[row].length;
1930
+ row++;
1931
+ column++;
1932
+ continue;
1933
+ }
1934
+ if (lengths[row + 1][column] >= lengths[row][column + 1]) {
1935
+ const state = advanceDeletedCharacter(rangeStart, offset, diffChars[row]);
1936
+ ({
1937
+ offset,
1938
+ rangeStart
1939
+ } = state);
1940
+ row++;
1941
+ continue;
1942
+ }
1943
+ column++;
1944
+ }
1945
+ while (row < diffChars.length) {
1946
+ const state = advanceDeletedCharacter(rangeStart, offset, diffChars[row]);
1947
+ ({
1948
+ offset,
1949
+ rangeStart
1950
+ } = state);
1951
+ row++;
1952
+ }
1953
+ return finishRange(ranges, rangeStart, offset).ranges;
1954
+ };
1955
+ const getChangedRanges = (text, otherText) => {
1956
+ if (text === otherText) {
1957
+ return [];
1958
+ }
1959
+ const chars = [...text];
1960
+ const otherChars = [...otherText];
1961
+ const prefixLength = getCommonPrefixLength(chars, otherChars);
1962
+ const suffixLength = getCommonSuffixLength(chars, otherChars, prefixLength);
1963
+ const diffLength = chars.length - prefixLength - suffixLength;
1964
+ if (diffLength <= 0) {
1965
+ return [];
1966
+ }
1967
+ const otherDiffLength = otherChars.length - prefixLength - suffixLength;
1968
+ if (diffLength * otherDiffLength > maxInlineDiffMatrixSize) {
1969
+ return getChangedRangesFallback(chars, prefixLength, suffixLength);
1970
+ }
1971
+ const diffChars = chars.slice(prefixLength, chars.length - suffixLength);
1972
+ const diffOtherChars = otherChars.slice(prefixLength, otherChars.length - suffixLength);
1973
+ const lengths = getSubsequenceLengths(diffChars, diffOtherChars);
1974
+ return getMatrixChangedRanges(chars, diffChars, diffOtherChars, lengths, prefixLength);
1975
+ };
1976
+ const mergeChangedClassName = className => {
1977
+ if (!className) {
1978
+ return DiffTokenChanged;
1979
+ }
1980
+ return `${className} ${DiffTokenChanged}`;
1981
+ };
1982
+ const getTokenSlice = (token, tokenStart, sliceStart, sliceEnd, type) => {
1983
+ return {
1984
+ text: token.text.slice(sliceStart - tokenStart, sliceEnd - tokenStart),
1985
+ type
1986
+ };
1987
+ };
1988
+ const skipFinishedRanges = (ranges, rangeIndex, tokenStart) => {
1989
+ let nextRangeIndex = rangeIndex;
1990
+ while (nextRangeIndex < ranges.length && ranges[nextRangeIndex].end <= tokenStart) {
1991
+ nextRangeIndex++;
1992
+ }
1993
+ return nextRangeIndex;
1994
+ };
1995
+ const applyRangeToToken = (token, tokenStart, tokenEnd, range, cursor) => {
1996
+ const changedStart = Math.max(range.start, tokenStart);
1997
+ const changedEnd = Math.min(range.end, tokenEnd);
1998
+ const tokens = [];
1999
+ if (cursor < changedStart) {
2000
+ tokens.push(getTokenSlice(token, tokenStart, cursor, changedStart, token.type));
2001
+ }
2002
+ if (changedStart < changedEnd) {
2003
+ tokens.push(getTokenSlice(token, tokenStart, changedStart, changedEnd, mergeChangedClassName(token.type)));
2004
+ }
2005
+ return {
2006
+ cursor: changedEnd,
2007
+ tokens
2008
+ };
2009
+ };
2010
+ const applyRangesToToken = (token, tokenStart, tokenEnd, rangeIndex, ranges) => {
2011
+ let cursor = tokenStart;
2012
+ let nextRangeIndex = rangeIndex;
2013
+ let tokens = [];
2014
+ while (nextRangeIndex < ranges.length && ranges[nextRangeIndex].start < tokenEnd) {
2015
+ const range = ranges[nextRangeIndex];
2016
+ const tokenSegmentState = applyRangeToToken(token, tokenStart, tokenEnd, range, cursor);
2017
+ ({
2018
+ cursor
2019
+ } = tokenSegmentState);
2020
+ tokens = [...tokens, ...tokenSegmentState.tokens];
2021
+ if (range.end > tokenEnd) {
2022
+ return {
2023
+ cursor,
2024
+ nextRangeIndex,
2025
+ tokens
2026
+ };
2027
+ }
2028
+ nextRangeIndex++;
2029
+ }
2030
+ return {
2031
+ cursor,
2032
+ nextRangeIndex,
2033
+ tokens
2034
+ };
2035
+ };
2036
+ const applyChangedRanges = (tokens, ranges) => {
2037
+ if (ranges.length === 0) {
2038
+ return tokens;
2039
+ }
2040
+ const changedTokens = [];
2041
+ let tokenStart = 0;
2042
+ let rangeIndex = 0;
2043
+ for (const token of tokens) {
2044
+ const tokenEnd = tokenStart + token.text.length;
2045
+ rangeIndex = skipFinishedRanges(ranges, rangeIndex, tokenStart);
2046
+ const {
2047
+ cursor,
2048
+ nextRangeIndex,
2049
+ tokens
2050
+ } = applyRangesToToken(token, tokenStart, tokenEnd, rangeIndex, ranges);
2051
+ changedTokens.push(...tokens);
2052
+ if (cursor < tokenEnd) {
2053
+ changedTokens.push(getTokenSlice(token, tokenStart, cursor, tokenEnd, token.type));
2054
+ }
2055
+ tokenStart = tokenEnd;
2056
+ rangeIndex = nextRangeIndex;
2057
+ }
2058
+ return changedTokens.filter(token => token.text.length > 0);
2059
+ };
2060
+ const isPairedChange = visibleRow => {
2061
+ return visibleRow.leftChange?.type === Deletion && visibleRow.rightChange?.type === Insertion;
2062
+ };
2063
+ const getVisibleLines = (content, otherContent, totalLineCount, inlineChanges, minLineY, maxLineY, side, tokenizedLines = []) => {
2064
+ if (inlineChanges.length === 0) {
2065
+ return getVisibleRows(content, totalLineCount, minLineY, maxLineY).map((line, index) => ({
2066
+ lineNumber: minLineY + index + 1,
2067
+ tokens: getTokens(tokenizedLines, minLineY + index, line),
2068
+ type: VisibleLineType.Normal
2069
+ }));
2070
+ }
2071
+ const lines = content ? content.split('\n') : [''];
2072
+ const otherLines = otherContent ? otherContent.split('\n') : [''];
2073
+ return getVisibleInlineDiffRows(inlineChanges).slice(minLineY, maxLineY).map(visibleRow => {
1689
2074
  const inlineChange = side === 'left' ? visibleRow.leftChange : visibleRow.rightChange;
1690
2075
  const type = inlineChange ? getVisibleLineType(inlineChange, side) : VisibleLineType.Normal;
1691
- const lineIndex = inlineChange ? side === 'left' ? inlineChange.leftIndex : inlineChange.rightIndex : -1;
1692
- const tokens = inlineChange && lineIndex >= 0 ? getTokens(tokenizedLines, lineIndex, getLine(lines, lineIndex)) : [];
2076
+ const lineIndex = getInlineChangeLineIndex(inlineChange, side);
2077
+ const line = getLine(lines, lineIndex);
2078
+ const tokens = inlineChange && lineIndex >= 0 ? getTokens(tokenizedLines, lineIndex, line) : [];
2079
+ const otherLineIndex = side === 'left' ? visibleRow.rightChange?.rightIndex : visibleRow.leftChange?.leftIndex;
2080
+ const otherLine = typeof otherLineIndex === 'number' ? getLine(otherLines, otherLineIndex) : '';
2081
+ const visibleTokens = otherContent && isPairedChange(visibleRow) ? applyChangedRanges(tokens, getChangedRanges(line, otherLine)) : tokens;
1693
2082
  return {
1694
2083
  lineNumber: lineIndex >= 0 ? lineIndex + 1 : -1,
1695
- tokens,
2084
+ tokens: visibleTokens,
1696
2085
  type
1697
2086
  };
1698
2087
  });
@@ -1710,32 +2099,229 @@ const getVisibleLinesState = ({
1710
2099
  totalLineCountRight
1711
2100
  }) => {
1712
2101
  return {
1713
- visibleLinesLeft: getVisibleLines(contentLeft, totalLineCountLeft, inlineChanges, minLineY, maxLineY, 'left', tokenizedLinesLeft),
1714
- visibleLinesRight: getVisibleLines(contentRight, totalLineCountRight, inlineChanges, minLineY, maxLineY, 'right', tokenizedLinesRight)
2102
+ visibleLinesLeft: getVisibleLines(contentLeft, contentRight, totalLineCountLeft, inlineChanges, minLineY, maxLineY, 'left', tokenizedLinesLeft),
2103
+ visibleLinesRight: getVisibleLines(contentRight, contentLeft, totalLineCountRight, inlineChanges, minLineY, maxLineY, 'right', tokenizedLinesRight)
1715
2104
  };
1716
2105
  };
1717
2106
 
1718
- const getNextPaneSizes$1 = (state, width, height) => {
1719
- const totalPaneSize = state.leftWidth + state.rightWidth;
1720
- const ratio = totalPaneSize === 0 ? 0.5 : state.leftWidth / totalPaneSize;
1721
- const size = state.layout === 'vertical' ? height : width;
1722
- return getPaneSizes(size, ratio);
2107
+ const User = 1;
2108
+
2109
+ const languageCache = {
2110
+ assetDir: '',
2111
+ languages: [],
2112
+ platform: -1
1723
2113
  };
1724
- const handleResize = (state, width, height) => {
1725
- if (state.width === width && state.height === height) {
2114
+ const getLanguages = async (platform, assetDir) => {
2115
+ if (languageCache.platform === platform && languageCache.assetDir === assetDir) {
2116
+ return languageCache.languages;
2117
+ }
2118
+ try {
2119
+ const languages = await invoke$4('Extensions.getLanguages', platform, assetDir);
2120
+ if (!Array.isArray(languages)) {
2121
+ return [];
2122
+ }
2123
+ languageCache.platform = platform;
2124
+ languageCache.assetDir = assetDir;
2125
+ languageCache.languages = languages;
2126
+ return languageCache.languages;
2127
+ } catch {
2128
+ return [];
2129
+ }
2130
+ };
2131
+
2132
+ const getPath = (protocol, uri) => {
2133
+ if (!uri) {
2134
+ return '';
2135
+ }
2136
+ if (protocol === 'file' && !uri.startsWith('file://')) {
2137
+ return uri;
2138
+ }
2139
+ return uri.slice(protocol.length + 3);
2140
+ };
2141
+
2142
+ const protocolRegex = /^([a-z-]+):\/\//;
2143
+ const getProtocol = uri => {
2144
+ if (!uri) {
2145
+ return 'file';
2146
+ }
2147
+ const match = uri.match(protocolRegex);
2148
+ if (match) {
2149
+ return match[1];
2150
+ }
2151
+ return 'file';
2152
+ };
2153
+
2154
+ const queryOrHashRegex = /[?#]/;
2155
+ const getFileName = uri => {
2156
+ const protocol = getProtocol(uri);
2157
+ const path = getPath(protocol, uri).split(queryOrHashRegex, 1)[0];
2158
+ const lastSlashIndex = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\'));
2159
+ if (lastSlashIndex === -1) {
2160
+ return path;
2161
+ }
2162
+ return path.slice(lastSlashIndex + 1);
2163
+ };
2164
+ const getExtensionIndexes = fileName => {
2165
+ const lastIndex = fileName.lastIndexOf('.');
2166
+ if (lastIndex === -1) {
2167
+ return [-1, -1];
2168
+ }
2169
+ return [lastIndex, fileName.lastIndexOf('.', lastIndex - 1)];
2170
+ };
2171
+ const hasMatchingExtension = (language, extension) => {
2172
+ if (!extension || !language.extensions) {
2173
+ return false;
2174
+ }
2175
+ const extensionLower = extension.toLowerCase();
2176
+ return language.extensions.some(value => value.toLowerCase() === extensionLower);
2177
+ };
2178
+ const hasMatchingFileName = (language, fileName) => {
2179
+ if (!fileName || !language.fileNames) {
2180
+ return false;
2181
+ }
2182
+ const fileNameLower = fileName.toLowerCase();
2183
+ return language.fileNames.some(value => value.toLowerCase() === fileNameLower);
2184
+ };
2185
+ const getSyntaxLanguage = (uri, languages) => {
2186
+ const fileName = getFileName(uri);
2187
+ if (!fileName) {
2188
+ return {
2189
+ languageId: 'unknown',
2190
+ tokenizerPath: ''
2191
+ };
2192
+ }
2193
+ const [lastExtensionIndex, secondExtensionIndex] = getExtensionIndexes(fileName);
2194
+ const extension = lastExtensionIndex === -1 ? '' : fileName.slice(lastExtensionIndex);
2195
+ const secondExtension = secondExtensionIndex === -1 ? '' : fileName.slice(secondExtensionIndex);
2196
+ for (const language of languages) {
2197
+ if (hasMatchingExtension(language, extension) || hasMatchingExtension(language, secondExtension) || hasMatchingFileName(language, fileName)) {
2198
+ return {
2199
+ languageId: language.id,
2200
+ tokenizerPath: language.tokenize || ''
2201
+ };
2202
+ }
2203
+ }
2204
+ return {
2205
+ languageId: 'unknown',
2206
+ tokenizerPath: ''
2207
+ };
2208
+ };
2209
+
2210
+ const getUniqueLanguages = (languageLeft, languageRight) => {
2211
+ return new Map([languageLeft, languageRight].map(language => [`${language.languageId}:${language.tokenizerPath}`, language])).values().toArray();
2212
+ };
2213
+
2214
+ const canTokenize = language => {
2215
+ return language.languageId !== 'unknown' && !!language.tokenizerPath;
2216
+ };
2217
+
2218
+ const loadTokenizer = async language => {
2219
+ if (!canTokenize(language)) {
2220
+ return;
2221
+ }
2222
+ await loadTokenizer$1(language.languageId, language.tokenizerPath);
2223
+ };
2224
+
2225
+ const tokenizeCodeBlock = async (content, language) => {
2226
+ if (!canTokenize(language)) {
2227
+ return [];
2228
+ }
2229
+ try {
2230
+ const result = await invoke('Tokenizer.tokenizeCodeBlock', content, language.languageId, language.tokenizerPath);
2231
+ if (!Array.isArray(result)) {
2232
+ return [];
2233
+ }
2234
+ return result;
2235
+ } catch {
2236
+ return [];
2237
+ }
2238
+ };
2239
+
2240
+ const emptySyntaxHighlightingState = {
2241
+ languageIdLeft: 'unknown',
2242
+ languageIdRight: 'unknown',
2243
+ tokenizedLinesLeft: [],
2244
+ tokenizedLinesRight: []
2245
+ };
2246
+ const loadSyntaxHighlighting = async (contentLeft, contentRight, uriLeft, uriRight, platform, assetDir) => {
2247
+ try {
2248
+ const languages = await getLanguages(platform, assetDir);
2249
+ const languageLeft = getSyntaxLanguage(uriLeft, languages);
2250
+ const languageRight = getSyntaxLanguage(uriRight, languages);
2251
+ const uniqueLanguages = getUniqueLanguages(languageLeft, languageRight);
2252
+ await Promise.all(uniqueLanguages.map(loadTokenizer));
2253
+ const [tokenizedLinesLeft, tokenizedLinesRight] = await Promise.all([tokenizeCodeBlock(contentLeft, languageLeft), tokenizeCodeBlock(contentRight, languageRight)]);
2254
+ return {
2255
+ languageIdLeft: languageLeft.languageId,
2256
+ languageIdRight: languageRight.languageId,
2257
+ tokenizedLinesLeft,
2258
+ tokenizedLinesRight
2259
+ };
2260
+ } catch {
2261
+ return emptySyntaxHighlightingState;
2262
+ }
2263
+ };
2264
+
2265
+ const getBaseContentRight$2 = state => {
2266
+ if (state.inputValue && state.contentRight.startsWith(state.inputValue)) {
2267
+ return state.contentRight.slice(state.inputValue.length);
2268
+ }
2269
+ return state.contentRight;
2270
+ };
2271
+ const applyEditInput = async (state, inputValue) => {
2272
+ if (inputValue === state.inputValue || state.renderModeRight !== 'text' || state.errorRightMessage || getLineCount(inputValue) > state.maxInputLines) {
1726
2273
  return state;
1727
2274
  }
1728
2275
  const {
1729
- leftWidth,
1730
- rightWidth
1731
- } = getNextPaneSizes$1(state, width, height);
1732
- const scrollState = getScrollState(height, state.itemHeight, state.totalLineCount, state.minimumSliderSize, state.deltaY);
2276
+ totalLineCountLeft
2277
+ } = state;
2278
+ // compute base content without any previously-applied input buffer
2279
+ const baseContent = getBaseContentRight$2(state);
2280
+
2281
+ // derive insertion index from cursor position (row/column)
2282
+ // compute full content index (including any previously-applied inputValue prefix)
2283
+ const fullLines = state.contentRight ? state.contentRight.split('\n') : [''];
2284
+ const fullCursorRow = Math.max(0, Math.min(state.rightEditor.cursorRowIndex, fullLines.length - 1));
2285
+ const fullCurrentLine = fullLines[fullCursorRow] ?? '';
2286
+ const fullCursorCol = Math.max(0, Math.min(state.rightEditor.cursorColumnIndex, fullCurrentLine.length));
2287
+ let fullIndex = 0;
2288
+ for (let i = 0; i < fullCursorRow; i++) {
2289
+ fullIndex += (fullLines[i] ?? '').length + 1;
2290
+ }
2291
+ fullIndex += fullCursorCol;
2292
+ const prefixLength = state.inputValue && state.contentRight.startsWith(state.inputValue) ? state.inputValue.length : 0;
2293
+ const index = Math.max(0, fullIndex - prefixLength);
2294
+ // base content split into lines is available if needed
2295
+
2296
+ const before = baseContent.slice(0, index);
2297
+ const after = baseContent.slice(index);
2298
+ const contentRight = `${before}${inputValue}${after}`;
2299
+ const totalLineCountRight = getLineCount(contentRight);
2300
+ const canComputeInlineDiff = state.renderModeLeft === 'text' && !state.errorLeftMessage;
2301
+ const {
2302
+ inlineChanges,
2303
+ totalLineCount
2304
+ } = canComputeInlineDiff ? await getInlineDiffState(state.contentLeft, contentRight) : {
2305
+ inlineChanges: [],
2306
+ totalLineCount: Math.max(totalLineCountLeft, totalLineCountRight)
2307
+ };
2308
+ const scrollState = getScrollState(state.height, state.itemHeight, totalLineCount, state.minimumSliderSize, state.deltaY);
2309
+ const syntaxHighlightingState = state.renderModeRight === 'text' && !state.errorRightMessage ? await loadSyntaxHighlighting(state.contentLeft, contentRight, state.uriLeft, state.uriRight, state.platform, state.assetDir) : undefined;
1733
2310
  const nextState = {
1734
2311
  ...state,
1735
- height,
1736
- leftWidth,
1737
- rightWidth,
1738
- width,
2312
+ contentRight,
2313
+ gutterWidthVariable: getGutterWidthVariable(Math.max(totalLineCountLeft, totalLineCountRight)),
2314
+ inlineChanges,
2315
+ inputSource: User,
2316
+ inputValue,
2317
+ languageIdLeft: syntaxHighlightingState?.languageIdLeft || state.languageIdLeft,
2318
+ languageIdRight: syntaxHighlightingState?.languageIdRight || state.languageIdRight,
2319
+ scrollBarBackgroundImage: getScrollBarBackgroundImage(inlineChanges, totalLineCount),
2320
+ tokenizedLinesLeft: syntaxHighlightingState?.tokenizedLinesLeft || state.tokenizedLinesLeft,
2321
+ tokenizedLinesRight: syntaxHighlightingState?.tokenizedLinesRight || [],
2322
+ totalLineCount,
2323
+ totalLineCountLeft,
2324
+ totalLineCountRight,
1739
2325
  ...scrollState
1740
2326
  };
1741
2327
  return {
@@ -1754,308 +2340,1182 @@ const handleResize = (state, width, height) => {
1754
2340
  };
1755
2341
  };
1756
2342
 
1757
- const handleSashPointerDown = (state, clientX, clientY) => {
1758
- const isVertical = state.layout === 'vertical';
1759
- return {
1760
- ...state,
1761
- isResizing: true,
1762
- resizeOffsetX: isVertical ? 0 : clientX - state.x - state.leftWidth,
1763
- resizeOffsetY: isVertical ? clientY - state.y - state.leftWidth : 0
1764
- };
2343
+ const getBaseContentRight$1 = state => {
2344
+ if (state.inputValue && state.contentRight.startsWith(state.inputValue)) {
2345
+ return state.contentRight.slice(state.inputValue.length);
2346
+ }
2347
+ return state.contentRight;
1765
2348
  };
2349
+ const deleteLeft = async state => {
2350
+ if (state.inputValue) {
2351
+ return applyEditInput(state, state.inputValue.slice(0, -1));
2352
+ }
2353
+ const baseContent = getBaseContentRight$1(state);
2354
+ const cursorRow = Math.max(0, Math.min(state.rightEditor.cursorRowIndex, getLineCount(baseContent) - 1));
2355
+ const lines = baseContent.split('\n');
2356
+ const currentLine = lines[cursorRow] ?? '';
2357
+ const cursorCol = Math.max(0, Math.min(state.rightEditor.cursorColumnIndex, currentLine.length));
1766
2358
 
1767
- const getSashPointerMoveWidths = (state, clientX, clientY) => {
1768
- if (state.layout === 'vertical') {
1769
- const rawTopHeight = clientY - state.y - state.resizeOffsetY;
1770
- const leftWidth = getClampedPaneSize(state.height, rawTopHeight);
1771
- const rightWidth = getRemainingPaneSize(state.height, leftWidth);
1772
- return {
1773
- leftWidth,
1774
- rightWidth
1775
- };
2359
+ // compute absolute index
2360
+ let index = 0;
2361
+ for (let i = 0; i < cursorRow; i++) {
2362
+ index += (lines[i] ?? '').length + 1;
1776
2363
  }
1777
- const rawLeftWidth = clientX - state.x - state.resizeOffsetX;
1778
- const leftWidth = getClampedLeftWidth(state.width, rawLeftWidth);
1779
- const rightWidth = getRightWidth(state.width, leftWidth);
1780
- return {
1781
- leftWidth,
1782
- rightWidth
1783
- };
1784
- };
1785
- const handleSashPointerMove = (state, clientX, clientY) => {
1786
- if (!state.isResizing) {
2364
+ index += cursorCol;
2365
+ if (index <= 0) {
1787
2366
  return state;
1788
2367
  }
2368
+ const contentRight = baseContent.slice(0, index - 1) + baseContent.slice(index);
1789
2369
  const {
1790
- leftWidth,
1791
- rightWidth
1792
- } = getSashPointerMoveWidths(state, clientX, clientY);
1793
- return {
1794
- ...state,
1795
- leftWidth,
1796
- rightWidth
1797
- };
1798
- };
1799
-
1800
- const handleSashPointerUp = (state, clientX, clientY) => {
1801
- if (!state.isResizing) {
1802
- return state;
1803
- }
2370
+ totalLineCountLeft
2371
+ } = state;
2372
+ const totalLineCountRight = getLineCount(contentRight);
2373
+ const canComputeInlineDiff = state.renderModeLeft === 'text' && !state.errorLeftMessage;
1804
2374
  const {
1805
- leftWidth,
1806
- rightWidth
1807
- } = getSashPointerMoveWidths(state, clientX, clientY);
1808
- return {
1809
- ...state,
1810
- isResizing: false,
1811
- leftWidth,
1812
- resizeOffsetX: 0,
1813
- resizeOffsetY: 0,
1814
- rightWidth
2375
+ inlineChanges,
2376
+ totalLineCount
2377
+ } = canComputeInlineDiff ? await getInlineDiffState(state.contentLeft, contentRight) : {
2378
+ inlineChanges: [],
2379
+ totalLineCount: Math.max(totalLineCountLeft, totalLineCountRight)
1815
2380
  };
1816
- };
1817
-
1818
- const getScrollBarThumbTop = (height, scrollBarHeight, deltaY, finalDeltaY) => {
1819
- const scrollRange = Math.max(height - scrollBarHeight, 0);
1820
- if (scrollRange === 0 || finalDeltaY <= 0) {
1821
- return 0;
1822
- }
1823
- return deltaY / finalDeltaY * scrollRange;
1824
- };
1825
-
1826
- const normalizeFloatingPointError = value => {
1827
- return Number(value.toPrecision(16));
1828
- };
1829
- const handleScrollBarPointerDown = (state, clientY) => {
1830
- if (!state.scrollBarActive) {
1831
- return state;
1832
- }
1833
- const thumbTop = getScrollBarThumbTop(state.height, state.scrollBarHeight, state.deltaY, state.finalDeltaY);
1834
- return {
2381
+ const scrollState = getScrollState(state.height, state.itemHeight, totalLineCount, state.minimumSliderSize, state.deltaY);
2382
+ const nextState = {
1835
2383
  ...state,
1836
- isScrollBarDragging: true,
1837
- scrollBarDragOffsetY: normalizeFloatingPointError(clientY - state.y - thumbTop)
2384
+ contentRight,
2385
+ gutterWidthVariable: getGutterWidthVariable(Math.max(totalLineCountLeft, totalLineCountRight)),
2386
+ inlineChanges,
2387
+ inputSource: User,
2388
+ inputValue: '',
2389
+ scrollBarBackgroundImage: getScrollBarBackgroundImage(inlineChanges, totalLineCount),
2390
+ tokenizedLinesRight: [],
2391
+ totalLineCount,
2392
+ totalLineCountLeft,
2393
+ totalLineCountRight,
2394
+ ...scrollState
1838
2395
  };
1839
- };
1840
-
1841
- const getDeltaYFromScrollBarThumbTop = (height, scrollBarHeight, thumbTop, finalDeltaY) => {
1842
- const scrollRange = Math.max(height - scrollBarHeight, 0);
1843
- if (scrollRange === 0 || finalDeltaY <= 0) {
1844
- return 0;
1845
- }
1846
- const clampedThumbTop = Math.min(Math.max(thumbTop, 0), scrollRange);
1847
- return clampedThumbTop / scrollRange * finalDeltaY;
1848
- };
1849
-
1850
- const handleScrollBarPointerMove = (state, clientY) => {
1851
- if (!state.isScrollBarDragging) {
1852
- return state;
1853
- }
1854
- const thumbTop = clientY - state.y - state.scrollBarDragOffsetY;
1855
- const deltaY = getDeltaYFromScrollBarThumbTop(state.height, state.scrollBarHeight, thumbTop, state.finalDeltaY);
1856
- const scrollState = getScrollState(state.height, state.itemHeight, state.totalLineCount, state.minimumSliderSize, deltaY);
1857
2396
  return {
1858
- ...state,
1859
- ...scrollState,
2397
+ ...nextState,
1860
2398
  ...getVisibleLinesState({
1861
- contentLeft: state.contentLeft,
1862
- contentRight: state.contentRight,
1863
- inlineChanges: state.inlineChanges,
1864
- maxLineY: scrollState.maxLineY,
1865
- minLineY: scrollState.minLineY,
1866
- tokenizedLinesLeft: state.tokenizedLinesLeft,
1867
- tokenizedLinesRight: state.tokenizedLinesRight,
1868
- totalLineCountLeft: state.totalLineCountLeft,
1869
- totalLineCountRight: state.totalLineCountRight
2399
+ contentLeft: nextState.contentLeft,
2400
+ contentRight: nextState.contentRight,
2401
+ inlineChanges: nextState.inlineChanges,
2402
+ maxLineY: nextState.maxLineY,
2403
+ minLineY: nextState.minLineY,
2404
+ tokenizedLinesLeft: nextState.tokenizedLinesLeft,
2405
+ tokenizedLinesRight: nextState.tokenizedLinesRight,
2406
+ totalLineCountLeft: nextState.totalLineCountLeft,
2407
+ totalLineCountRight: nextState.totalLineCountRight
1870
2408
  })
1871
2409
  };
1872
2410
  };
1873
2411
 
1874
- const handleScrollBarPointerUp = (state, clientY) => {
1875
- const nextState = handleScrollBarPointerMove(state, clientY);
1876
- return {
1877
- ...nextState,
1878
- isScrollBarDragging: false,
1879
- scrollBarDragOffsetY: 0
1880
- };
1881
- };
1882
-
1883
- const getWheelDeltaY = (deltaMode, deltaY, itemHeight, height) => {
1884
- switch (deltaMode) {
1885
- case 1:
1886
- return deltaY * itemHeight;
1887
- case 2:
1888
- return deltaY * height;
1889
- default:
1890
- return deltaY;
2412
+ const getBaseContentRight = state => {
2413
+ if (state.inputValue && state.contentRight.startsWith(state.inputValue)) {
2414
+ return state.contentRight.slice(state.inputValue.length);
1891
2415
  }
2416
+ return state.contentRight;
1892
2417
  };
2418
+ const deleteRight = async state => {
2419
+ // If there is an active input buffer, let applyEditInput handle changes via HandleInput
2420
+ if (state.inputValue) {
2421
+ return state;
2422
+ }
2423
+ const baseContent = getBaseContentRight(state);
2424
+ const cursorRow = Math.max(0, Math.min(state.rightEditor.cursorRowIndex, getLineCount(baseContent) - 1));
2425
+ const lines = baseContent.split('\n');
2426
+ const currentLine = lines[cursorRow] ?? '';
2427
+ const cursorCol = Math.max(0, Math.min(state.rightEditor.cursorColumnIndex, currentLine.length));
1893
2428
 
1894
- const handleWheel = (state, deltaMode, eventDeltaY) => {
1895
- if (!state.scrollBarActive) {
2429
+ // compute absolute index
2430
+ let index = 0;
2431
+ for (let i = 0; i < cursorRow; i++) {
2432
+ index += (lines[i] ?? '').length + 1;
2433
+ }
2434
+ index += cursorCol;
2435
+ if (index >= baseContent.length) {
1896
2436
  return state;
1897
2437
  }
2438
+ const contentRight = baseContent.slice(0, index) + baseContent.slice(index + 1);
1898
2439
  const {
1899
- contentLeft,
1900
- contentRight,
1901
- deltaY,
1902
- height,
1903
- inlineChanges,
1904
- itemHeight,
1905
- minimumSliderSize,
1906
- tokenizedLinesLeft,
1907
- tokenizedLinesRight,
1908
- totalLineCount,
1909
- totalLineCountLeft,
1910
- totalLineCountRight
2440
+ totalLineCountLeft
1911
2441
  } = state;
1912
- const nextDeltaY = deltaY + getWheelDeltaY(deltaMode, eventDeltaY, itemHeight, height);
1913
- const scrollState = getScrollState(height, itemHeight, totalLineCount, minimumSliderSize, nextDeltaY);
2442
+ const totalLineCountRight = getLineCount(contentRight);
2443
+ const canComputeInlineDiff = state.renderModeLeft === 'text' && !state.errorLeftMessage;
1914
2444
  const {
1915
- visibleLinesLeft,
1916
- visibleLinesRight
1917
- } = getVisibleLinesState({
1918
- contentLeft,
2445
+ inlineChanges,
2446
+ totalLineCount
2447
+ } = canComputeInlineDiff ? await getInlineDiffState(state.contentLeft, contentRight) : {
2448
+ inlineChanges: [],
2449
+ totalLineCount: Math.max(totalLineCountLeft, totalLineCountRight)
2450
+ };
2451
+ const scrollState = getScrollState(state.height, state.itemHeight, totalLineCount, state.minimumSliderSize, state.deltaY);
2452
+ const nextState = {
2453
+ ...state,
1919
2454
  contentRight,
2455
+ gutterWidthVariable: getGutterWidthVariable(Math.max(totalLineCountLeft, totalLineCountRight)),
1920
2456
  inlineChanges,
1921
- maxLineY: scrollState.maxLineY,
1922
- minLineY: scrollState.minLineY,
1923
- tokenizedLinesLeft,
1924
- tokenizedLinesRight,
2457
+ inputSource: User,
2458
+ inputValue: '',
2459
+ scrollBarBackgroundImage: getScrollBarBackgroundImage(inlineChanges, totalLineCount),
2460
+ tokenizedLinesRight: [],
2461
+ totalLineCount,
1925
2462
  totalLineCountLeft,
1926
- totalLineCountRight
1927
- });
2463
+ totalLineCountRight,
2464
+ ...scrollState
2465
+ };
1928
2466
  return {
1929
- ...state,
1930
- ...scrollState,
1931
- visibleLinesLeft,
1932
- visibleLinesRight
2467
+ ...nextState,
2468
+ ...getVisibleLinesState({
2469
+ contentLeft: nextState.contentLeft,
2470
+ contentRight: nextState.contentRight,
2471
+ inlineChanges: nextState.inlineChanges,
2472
+ maxLineY: nextState.maxLineY,
2473
+ minLineY: nextState.minLineY,
2474
+ tokenizedLinesLeft: nextState.tokenizedLinesLeft,
2475
+ tokenizedLinesRight: nextState.tokenizedLinesRight,
2476
+ totalLineCountLeft: nextState.totalLineCountLeft,
2477
+ totalLineCountRight: nextState.totalLineCountRight
2478
+ })
1933
2479
  };
1934
2480
  };
1935
2481
 
1936
- const sendMessagePortToExtensionHostWorker = async port => {
1937
- await sendMessagePortToExtensionHostWorker$1(port, 0);
2482
+ const isEqual$3 = (oldState, newState) => {
2483
+ return oldState.deltaY === newState.deltaY && oldState.diffMode === newState.diffMode && oldState.finalDeltaY === newState.finalDeltaY && oldState.gutterWidthVariable === newState.gutterWidthVariable && oldState.height === newState.height && oldState.itemHeight === newState.itemHeight && oldState.layout === newState.layout && oldState.leftWidth === newState.leftWidth && oldState.maxLineY === newState.maxLineY && oldState.minLineY === newState.minLineY && oldState.rightEditor.cursorColumnIndex === newState.rightEditor.cursorColumnIndex && oldState.rightEditor.cursorRowIndex === newState.rightEditor.cursorRowIndex && oldState.rightWidth === newState.rightWidth && oldState.scrollBarBackgroundImage === newState.scrollBarBackgroundImage && oldState.scrollBarHeight === newState.scrollBarHeight && oldState.totalLineCount === newState.totalLineCount;
1938
2484
  };
1939
2485
 
1940
- const createExtensionHostRpc = async () => {
1941
- try {
1942
- const rpc = await create$4({
1943
- commandMap: {},
1944
- send: sendMessagePortToExtensionHostWorker
1945
- });
1946
- set$6(rpc);
1947
- } catch (error) {
1948
- throw new VError(error, `Failed to create extension host rpc`);
1949
- }
2486
+ const isEqual$2 = (oldState, newState) => {
2487
+ return oldState.focus === newState.focus && oldState.focusVersion === newState.focusVersion;
1950
2488
  };
1951
2489
 
1952
- const sendMessagePortToTextMeasurementWorker = async port => {
1953
- await sendMessagePortToTextMeasurementWorker$1(port);
2490
+ const isEqual$1 = (oldState, newState) => {
2491
+ return oldState.contentLeft === newState.contentLeft && oldState.contentRight === newState.contentRight && oldState.deltaY === newState.deltaY && oldState.diffMode === newState.diffMode && oldState.lineNumbers === newState.lineNumbers && oldState.layout === newState.layout && oldState.maxLineY === newState.maxLineY && oldState.minLineY === newState.minLineY && oldState.searchVisible === newState.searchVisible && oldState.showWhitespace === newState.showWhitespace;
1954
2492
  };
1955
2493
 
1956
- const createTextMeasurementWorkerRpc = async () => {
1957
- try {
1958
- const rpc = await create$4({
1959
- commandMap: {},
1960
- send: sendMessagePortToTextMeasurementWorker
1961
- });
1962
- set$2(rpc);
1963
- } catch (error) {
1964
- throw new VError(error, `Failed to create text measurement rpc`);
1965
- }
1966
- };
2494
+ const RenderItems = 4;
2495
+ const RenderFocus = 6;
2496
+ const RenderFocusContext = 7;
2497
+ const RenderValue = 8;
2498
+ const RenderCss = 10;
2499
+ const RenderIncremental = 11;
1967
2500
 
1968
- const initializeDiffWorker = async () => {
1969
- const rpc = await create$3({
1970
- commandMap: {},
1971
- send(port) {
1972
- return sendMessagePortToDiffWorker(port, 0);
1973
- }
1974
- });
1975
- set$8(rpc);
2501
+ const isEqual = (oldState, newState) => {
2502
+ return newState.inputSource === User$1 || oldState.inputValue === newState.inputValue;
1976
2503
  };
1977
2504
 
1978
- const initializeErrorWorker = async () => {
1979
- const rpc = await create$3({
1980
- commandMap: {},
1981
- send(port) {
1982
- return sendMessagePortToErrorWorker(port, 0);
2505
+ const modules = [isEqual$1, isEqual, isEqual$3, isEqual$2, isEqual$2];
2506
+ const numbers = [RenderIncremental, RenderValue, RenderCss, RenderFocus, RenderFocusContext];
2507
+
2508
+ const diff = (oldState, newState) => {
2509
+ const diffResult = [];
2510
+ for (let i = 0; i < modules.length; i++) {
2511
+ const fn = modules[i];
2512
+ if (!fn(oldState, newState)) {
2513
+ diffResult.push(numbers[i]);
1983
2514
  }
1984
- });
1985
- set$7(rpc);
2515
+ }
2516
+ return diffResult;
1986
2517
  };
1987
2518
 
1988
- const createExtensionManagementWorkerRpc = async () => {
1989
- const rpc = await create$3({
1990
- commandMap: {},
1991
- send: port => sendMessagePortToExtensionManagementWorker(port, 0)
1992
- });
1993
- return rpc;
2519
+ const diff2 = uid => {
2520
+ const {
2521
+ newState,
2522
+ oldState
2523
+ } = get(uid);
2524
+ const result = diff(oldState, newState);
2525
+ return result;
1994
2526
  };
1995
2527
 
1996
- const initializeExtensionManagementWorker = async () => {
1997
- const rpc = await createExtensionManagementWorkerRpc();
1998
- set$5(rpc);
2528
+ const mergeClassNames = (...classNames) => {
2529
+ return classNames.filter(Boolean).join(' ');
1999
2530
  };
2000
2531
 
2001
- const initializeFileSystemWorker = async () => {
2002
- const rpc = await create$3({
2003
- commandMap: {},
2004
- send(port) {
2005
- return sendMessagePortToFileSystemWorker(port, 0);
2532
+ const text = data => {
2533
+ return {
2534
+ childCount: 0,
2535
+ text: data,
2536
+ type: Text
2537
+ };
2538
+ };
2539
+
2540
+ const SetText = 1;
2541
+ const Replace = 2;
2542
+ const SetAttribute = 3;
2543
+ const RemoveAttribute = 4;
2544
+ const Add = 6;
2545
+ const NavigateChild = 7;
2546
+ const NavigateParent = 8;
2547
+ const RemoveChild = 9;
2548
+ const NavigateSibling = 10;
2549
+ const SetReferenceNodeUid = 11;
2550
+
2551
+ const isKey = key => {
2552
+ return key !== 'type' && key !== 'childCount';
2553
+ };
2554
+
2555
+ const getKeys = node => {
2556
+ const keys = Object.keys(node).filter(isKey);
2557
+ return keys;
2558
+ };
2559
+
2560
+ const arrayToTree = nodes => {
2561
+ const result = [];
2562
+ let i = 0;
2563
+ while (i < nodes.length) {
2564
+ const node = nodes[i];
2565
+ const {
2566
+ children,
2567
+ nodesConsumed
2568
+ } = getChildrenWithCount(nodes, i + 1, node.childCount || 0);
2569
+ result.push({
2570
+ node,
2571
+ children
2572
+ });
2573
+ i += 1 + nodesConsumed;
2574
+ }
2575
+ return result;
2576
+ };
2577
+ const getChildrenWithCount = (nodes, startIndex, childCount) => {
2578
+ if (childCount === 0) {
2579
+ return {
2580
+ children: [],
2581
+ nodesConsumed: 0
2582
+ };
2583
+ }
2584
+ const children = [];
2585
+ let i = startIndex;
2586
+ let remaining = childCount;
2587
+ let totalConsumed = 0;
2588
+ while (remaining > 0 && i < nodes.length) {
2589
+ const node = nodes[i];
2590
+ const nodeChildCount = node.childCount || 0;
2591
+ const {
2592
+ children: nodeChildren,
2593
+ nodesConsumed
2594
+ } = getChildrenWithCount(nodes, i + 1, nodeChildCount);
2595
+ children.push({
2596
+ node,
2597
+ children: nodeChildren
2598
+ });
2599
+ const nodeSize = 1 + nodesConsumed;
2600
+ i += nodeSize;
2601
+ totalConsumed += nodeSize;
2602
+ remaining--;
2603
+ }
2604
+ return {
2605
+ children,
2606
+ nodesConsumed: totalConsumed
2607
+ };
2608
+ };
2609
+
2610
+ const compareNodes = (oldNode, newNode) => {
2611
+ // Check if node type changed - return null to signal incompatible nodes
2612
+ // (caller should handle this with a Replace operation)
2613
+ if (oldNode.type !== newNode.type) {
2614
+ return null;
2615
+ }
2616
+ const patches = [];
2617
+ // Handle reference nodes - special handling for uid changes
2618
+ if (oldNode.type === Reference) {
2619
+ if (oldNode.uid !== newNode.uid) {
2620
+ patches.push({
2621
+ type: SetReferenceNodeUid,
2622
+ uid: newNode.uid
2623
+ });
2624
+ }
2625
+ return patches;
2626
+ }
2627
+ // Handle text nodes
2628
+ if (oldNode.type === Text && newNode.type === Text) {
2629
+ if (oldNode.text !== newNode.text) {
2630
+ patches.push({
2631
+ type: SetText,
2632
+ value: newNode.text
2633
+ });
2634
+ }
2635
+ return patches;
2636
+ }
2637
+ // Compare attributes
2638
+ const oldKeys = getKeys(oldNode);
2639
+ const newKeys = getKeys(newNode);
2640
+ // Check for attribute changes
2641
+ for (const key of newKeys) {
2642
+ if (oldNode[key] !== newNode[key]) {
2643
+ patches.push({
2644
+ type: SetAttribute,
2645
+ key,
2646
+ value: newNode[key]
2647
+ });
2648
+ }
2649
+ }
2650
+ // Check for removed attributes
2651
+ for (const key of oldKeys) {
2652
+ if (!Object.hasOwn(newNode, key)) {
2653
+ patches.push({
2654
+ type: RemoveAttribute,
2655
+ key
2656
+ });
2006
2657
  }
2658
+ }
2659
+ return patches;
2660
+ };
2661
+
2662
+ const treeToArray = node => {
2663
+ const result = [node.node];
2664
+ for (const child of node.children) {
2665
+ result.push(...treeToArray(child));
2666
+ }
2667
+ return result;
2668
+ };
2669
+
2670
+ const navigateToChild = (patches, currentChildIndex, index) => {
2671
+ if (currentChildIndex === -1) {
2672
+ patches.push({
2673
+ type: NavigateChild,
2674
+ index
2675
+ });
2676
+ return index;
2677
+ }
2678
+ if (currentChildIndex !== index) {
2679
+ patches.push({
2680
+ type: NavigateSibling,
2681
+ index
2682
+ });
2683
+ }
2684
+ return index;
2685
+ };
2686
+ const navigateToParent = (patches, currentChildIndex) => {
2687
+ if (currentChildIndex >= 0) {
2688
+ patches.push({
2689
+ type: NavigateParent
2690
+ });
2691
+ }
2692
+ return -1;
2693
+ };
2694
+ const addTree = (newNode, patches) => {
2695
+ patches.push({
2696
+ type: Add,
2697
+ nodes: treeToArray(newNode)
2007
2698
  });
2008
- set$4(rpc);
2699
+ };
2700
+ const replaceTree = (newNode, patches) => {
2701
+ patches.push({
2702
+ type: Replace,
2703
+ nodes: treeToArray(newNode)
2704
+ });
2705
+ };
2706
+ const diffExistingChild = (oldNode, newNode, patches, currentChildIndex, index) => {
2707
+ const nodePatches = compareNodes(oldNode.node, newNode.node);
2708
+ if (nodePatches === null) {
2709
+ const nextChildIndex = navigateToChild(patches, currentChildIndex, index);
2710
+ replaceTree(newNode, patches);
2711
+ return nextChildIndex;
2712
+ }
2713
+ const hasChildrenToCompare = oldNode.children.length > 0 || newNode.children.length > 0;
2714
+ if (nodePatches.length === 0 && !hasChildrenToCompare) {
2715
+ return currentChildIndex;
2716
+ }
2717
+ const nextChildIndex = navigateToChild(patches, currentChildIndex, index);
2718
+ if (nodePatches.length > 0) {
2719
+ patches.push(...nodePatches);
2720
+ }
2721
+ if (hasChildrenToCompare) {
2722
+ diffChildren(oldNode.children, newNode.children, patches);
2723
+ }
2724
+ return nextChildIndex;
2725
+ };
2726
+ const diffRootNode = (oldNode, newNode, patches) => {
2727
+ const nodePatches = compareNodes(oldNode.node, newNode.node);
2728
+ if (nodePatches === null) {
2729
+ replaceTree(newNode, patches);
2730
+ return;
2731
+ }
2732
+ if (nodePatches.length > 0) {
2733
+ patches.push(...nodePatches);
2734
+ }
2735
+ if (oldNode.children.length > 0 || newNode.children.length > 0) {
2736
+ diffChildren(oldNode.children, newNode.children, patches);
2737
+ }
2738
+ };
2739
+ const diffChildren = (oldChildren, newChildren, patches) => {
2740
+ const maxLength = Math.max(oldChildren.length, newChildren.length);
2741
+ let currentChildIndex = -1;
2742
+ const indicesToRemove = [];
2743
+ for (let i = 0; i < maxLength; i++) {
2744
+ const oldNode = oldChildren[i];
2745
+ const newNode = newChildren[i];
2746
+ if (!oldNode && !newNode) {
2747
+ continue;
2748
+ }
2749
+ if (!oldNode) {
2750
+ currentChildIndex = navigateToParent(patches, currentChildIndex);
2751
+ addTree(newNode, patches);
2752
+ continue;
2753
+ }
2754
+ if (!newNode) {
2755
+ indicesToRemove.push(i);
2756
+ continue;
2757
+ }
2758
+ currentChildIndex = diffExistingChild(oldNode, newNode, patches, currentChildIndex, i);
2759
+ }
2760
+ navigateToParent(patches, currentChildIndex);
2761
+ for (let j = indicesToRemove.length - 1; j >= 0; j--) {
2762
+ patches.push({
2763
+ type: RemoveChild,
2764
+ index: indicesToRemove[j]
2765
+ });
2766
+ }
2767
+ };
2768
+ const diffTrees = (oldTree, newTree, patches, path) => {
2769
+ if (path.length === 0 && oldTree.length === 1 && newTree.length === 1) {
2770
+ diffRootNode(oldTree[0], newTree[0], patches);
2771
+ return;
2772
+ }
2773
+ diffChildren(oldTree, newTree, patches);
2774
+ };
2775
+
2776
+ const removeTrailingNavigationPatches = patches => {
2777
+ // Find the last non-navigation patch
2778
+ let lastNonNavigationIndex = -1;
2779
+ for (let i = patches.length - 1; i >= 0; i--) {
2780
+ const patch = patches[i];
2781
+ if (patch.type !== NavigateChild && patch.type !== NavigateParent && patch.type !== NavigateSibling) {
2782
+ lastNonNavigationIndex = i;
2783
+ break;
2784
+ }
2785
+ }
2786
+ // Return patches up to and including the last non-navigation patch
2787
+ return lastNonNavigationIndex === -1 ? [] : patches.slice(0, lastNonNavigationIndex + 1);
2788
+ };
2789
+
2790
+ const diffTree = (oldNodes, newNodes) => {
2791
+ // Step 1: Convert flat arrays to tree structures
2792
+ const oldTree = arrayToTree(oldNodes);
2793
+ const newTree = arrayToTree(newNodes);
2794
+ // Step 3: Compare the trees
2795
+ const patches = [];
2796
+ diffTrees(oldTree, newTree, patches, []);
2797
+ // Remove trailing navigation patches since they serve no purpose
2798
+ return removeTrailingNavigationPatches(patches);
2799
+ };
2800
+
2801
+ const FocusDiffEditorText = 812_221;
2802
+
2803
+ const getKeyBindings = () => {
2804
+ return [{
2805
+ command: 'DiffView.insertLineBreak',
2806
+ key: Enter,
2807
+ when: FocusDiffEditorText
2808
+ }, {
2809
+ command: 'DiffView.deleteLeft',
2810
+ key: Backspace,
2811
+ when: FocusDiffEditorText
2812
+ }, {
2813
+ command: 'DiffView.deleteRight',
2814
+ key: Delete,
2815
+ when: FocusDiffEditorText
2816
+ }, {
2817
+ command: 'DiffView.moveCursorLeft',
2818
+ key: LeftArrow,
2819
+ when: FocusDiffEditorText
2820
+ }, {
2821
+ command: 'DiffView.moveCursorRight',
2822
+ key: RightArrow,
2823
+ when: FocusDiffEditorText
2824
+ }, {
2825
+ command: 'DiffView.moveCursorUp',
2826
+ key: UpArrow,
2827
+ when: FocusDiffEditorText
2828
+ }, {
2829
+ command: 'DiffView.moveCursorDown',
2830
+ key: DownArrow,
2831
+ when: FocusDiffEditorText
2832
+ }, {
2833
+ command: 'DiffView.moveCursorToStartOfLine',
2834
+ key: Home,
2835
+ when: FocusDiffEditorText
2836
+ }, {
2837
+ command: 'DiffView.moveCursorToEndOfLine',
2838
+ key: End,
2839
+ when: FocusDiffEditorText
2840
+ }];
2841
+ };
2842
+
2843
+ const emptyObject = {};
2844
+ const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
2845
+ const i18nString = (key, placeholders = emptyObject) => {
2846
+ if (placeholders === emptyObject) {
2847
+ return key;
2848
+ }
2849
+ const replacer = (match, rest) => {
2850
+ return placeholders[rest];
2851
+ };
2852
+ return key.replaceAll(RE_PLACEHOLDER, replacer);
2853
+ };
2854
+
2855
+ const Copy = 'Copy';
2856
+ const Cut = 'Cut';
2857
+ const HideWhitespace = 'Hide whitespace';
2858
+ const IncomingChange = 'Incoming Change';
2859
+ const Inline = 'Inline';
2860
+ const Paste = 'Paste';
2861
+ const Search = 'Search';
2862
+ const ShowWhitespace = 'Show whitespace';
2863
+ const SideBySide = 'Side by side';
2864
+ const AcceptCurrentChangeAcceptIncomingChangeAcceptBoth = 'Accept current change | Accept incoming change | Accept both';
2865
+ const SwitchToDiff = 'Switch to {PH1} diff';
2866
+
2867
+ const copy = () => {
2868
+ return i18nString(Copy);
2869
+ };
2870
+ const acceptCurrentChangeAcceptIncomingChangeAcceptBoth = () => {
2871
+ return i18nString(AcceptCurrentChangeAcceptIncomingChangeAcceptBoth);
2872
+ };
2873
+ const cut = () => {
2874
+ return i18nString(Cut);
2875
+ };
2876
+ const hideWhitespace = () => {
2877
+ return i18nString(HideWhitespace);
2878
+ };
2879
+ const incomingChange = () => {
2880
+ return i18nString(IncomingChange);
2881
+ };
2882
+ const inline = () => {
2883
+ return i18nString(Inline);
2884
+ };
2885
+ const paste = () => {
2886
+ return i18nString(Paste);
2887
+ };
2888
+ const search = () => {
2889
+ return i18nString(Search);
2890
+ };
2891
+ const showWhitespace = () => {
2892
+ return i18nString(ShowWhitespace);
2893
+ };
2894
+ const sideBySide = () => {
2895
+ return i18nString(SideBySide);
2896
+ };
2897
+ const switchToDiff = label => {
2898
+ return i18nString(SwitchToDiff, {
2899
+ PH1: label
2900
+ });
2901
+ };
2902
+
2903
+ const RestoreFocus = 6;
2904
+
2905
+ const menuEntryCut = {
2906
+ command: 'DiffView.handleCut',
2907
+ flags: RestoreFocus,
2908
+ id: 'cut',
2909
+ label: cut()
2910
+ };
2911
+ const menuEntryCopy = {
2912
+ command: 'DiffView.handleCopy',
2913
+ flags: RestoreFocus,
2914
+ id: 'copy',
2915
+ label: copy()
2916
+ };
2917
+ const menuEntryPaste = {
2918
+ command: 'DiffView.handlePaste',
2919
+ flags: RestoreFocus,
2920
+ id: 'paste',
2921
+ label: paste()
2922
+ };
2923
+ const getMenuEntries = () => {
2924
+ return [menuEntryCut, menuEntryCopy, menuEntryPaste];
2925
+ };
2926
+
2927
+ const getMenuEntries2 = state => {
2928
+ return getMenuEntries();
2929
+ };
2930
+
2931
+ const Diff = 321_678;
2932
+
2933
+ const getMenuIds = () => {
2934
+ return [Diff];
2935
+ };
2936
+
2937
+ const handleBeforeInput = async (state, inputType, data) => {
2938
+ switch (inputType) {
2939
+ case 'insertText':
2940
+ {
2941
+ const newInputValue = `${state.inputValue ?? ''}${data ?? ''}`;
2942
+ return applyEditInput(state, newInputValue);
2943
+ }
2944
+ default:
2945
+ return state;
2946
+ }
2947
+ };
2948
+
2949
+ const ToggleDiffMode = 'toggleDiffMode';
2950
+ const ToggleWhitespace = 'toggleWhitespace';
2951
+
2952
+ const InlineDiffRowType$1 = {
2953
+ Context: 'context',
2954
+ Deletion: 'deletion',
2955
+ GitButtons: 'git-buttons',
2956
+ IncomingChange: 'incoming-change',
2957
+ Insertion: 'insertion'
2958
+ };
2959
+
2960
+ const getContextRow = (lineNumberLeft, lineNumberRight, text) => ({
2961
+ lineNumberLeft,
2962
+ lineNumberRight,
2963
+ text,
2964
+ type: InlineDiffRowType$1.Context
2965
+ });
2966
+
2967
+ const getDeletionRow = (lineNumberLeft, text) => ({
2968
+ lineNumberLeft,
2969
+ lineNumberRight: null,
2970
+ text,
2971
+ type: InlineDiffRowType$1.Deletion
2972
+ });
2973
+
2974
+ const getInsertionRow = (lineNumberRight, text) => ({
2975
+ lineNumberLeft: null,
2976
+ lineNumberRight,
2977
+ text,
2978
+ type: InlineDiffRowType$1.Insertion
2979
+ });
2980
+
2981
+ const getLines$1 = content => {
2982
+ return content ? content.split('\n') : [''];
2983
+ };
2984
+
2985
+ const lookAheadLimit = 3;
2986
+ const findLookAheadMatch = (lines, startIndex, needle) => {
2987
+ const endIndex = Math.min(startIndex + lookAheadLimit, lines.length - 1);
2988
+ for (let i = startIndex; i <= endIndex; i++) {
2989
+ if (lines[i] === needle) {
2990
+ return i;
2991
+ }
2992
+ }
2993
+ return -1;
2994
+ };
2995
+
2996
+ const getDeletionRows = (lines, startIndex, endIndex, startLineNumber) => {
2997
+ const rows = [];
2998
+ for (let index = startIndex; index < endIndex; index++) {
2999
+ rows.push(getDeletionRow(startLineNumber + index - startIndex, lines[index]));
3000
+ }
3001
+ return rows;
3002
+ };
3003
+
3004
+ const getInsertionRows = (lines, startIndex, endIndex, startLineNumber) => {
3005
+ const rows = [];
3006
+ for (let index = startIndex; index < endIndex; index++) {
3007
+ rows.push(getInsertionRow(startLineNumber + index - startIndex, lines[index]));
3008
+ }
3009
+ return rows;
3010
+ };
3011
+
3012
+ const getLookAheadRows = (leftLines, rightLines, leftIndex, rightIndex, leftLineNumber, rightLineNumber) => {
3013
+ const leftLine = leftLines[leftIndex];
3014
+ const rightLine = rightLines[rightIndex];
3015
+ const leftMatch = findLookAheadMatch(leftLines, leftIndex + 1, rightLine);
3016
+ const rightMatch = findLookAheadMatch(rightLines, rightIndex + 1, leftLine);
3017
+ if (leftMatch !== -1 && (rightMatch === -1 || leftMatch - leftIndex <= rightMatch - rightIndex)) {
3018
+ return {
3019
+ leftCount: leftMatch - leftIndex,
3020
+ rightCount: 0,
3021
+ rows: getDeletionRows(leftLines, leftIndex, leftMatch, leftLineNumber)
3022
+ };
3023
+ }
3024
+ if (rightMatch !== -1) {
3025
+ return {
3026
+ leftCount: 0,
3027
+ rightCount: rightMatch - rightIndex,
3028
+ rows: getInsertionRows(rightLines, rightIndex, rightMatch, rightLineNumber)
3029
+ };
3030
+ }
3031
+ return undefined;
3032
+ };
3033
+
3034
+ const InlineDiffRowType = InlineDiffRowType$1;
3035
+ const conflictStartMarker = '<<<<<<< ';
3036
+ const conflictDividerMarker = '=======';
3037
+ const conflictEndMarker = '>>>>>>>';
3038
+ const getGitButtonsRow = () => {
3039
+ return {
3040
+ lineNumberLeft: null,
3041
+ lineNumberRight: null,
3042
+ text: acceptCurrentChangeAcceptIncomingChangeAcceptBoth(),
3043
+ type: InlineDiffRowType$1.GitButtons
3044
+ };
3045
+ };
3046
+ const getIncomingChangeRow = () => {
3047
+ return {
3048
+ lineNumberLeft: null,
3049
+ lineNumberRight: null,
3050
+ text: incomingChange(),
3051
+ type: InlineDiffRowType$1.IncomingChange
3052
+ };
3053
+ };
3054
+ const isConflictStart = text => {
3055
+ return text.startsWith(conflictStartMarker);
3056
+ };
3057
+ const isConflictDivider = text => {
3058
+ return text === conflictDividerMarker;
3059
+ };
3060
+ const isConflictEnd = text => {
3061
+ return text.startsWith(conflictEndMarker);
3062
+ };
3063
+ const addConflictDecoratorRows = rows => {
3064
+ const decoratedRows = [];
3065
+ let insideConflict = false;
3066
+ for (const row of rows) {
3067
+ if (isConflictStart(row.text)) {
3068
+ decoratedRows.push(getGitButtonsRow());
3069
+ insideConflict = true;
3070
+ }
3071
+ decoratedRows.push(row);
3072
+ if (insideConflict && isConflictDivider(row.text)) {
3073
+ decoratedRows.push(getIncomingChangeRow());
3074
+ }
3075
+ if (insideConflict && isConflictEnd(row.text)) {
3076
+ insideConflict = false;
3077
+ }
3078
+ }
3079
+ return decoratedRows;
3080
+ };
3081
+ const getInlineDiffRows = (contentLeft, contentRight) => {
3082
+ const leftLines = getLines$1(contentLeft);
3083
+ const rightLines = getLines$1(contentRight);
3084
+ const rows = [];
3085
+ let leftIndex = 0;
3086
+ let rightIndex = 0;
3087
+ let leftLineNumber = 1;
3088
+ let rightLineNumber = 1;
3089
+ while (leftIndex < leftLines.length || rightIndex < rightLines.length) {
3090
+ const leftLine = leftLines[leftIndex];
3091
+ const rightLine = rightLines[rightIndex];
3092
+ if (leftIndex < leftLines.length && rightIndex < rightLines.length && leftLine === rightLine) {
3093
+ rows.push(getContextRow(leftLineNumber, rightLineNumber, leftLine));
3094
+ leftIndex++;
3095
+ rightIndex++;
3096
+ leftLineNumber++;
3097
+ rightLineNumber++;
3098
+ continue;
3099
+ }
3100
+ if (leftIndex < leftLines.length && rightIndex < rightLines.length) {
3101
+ const lookAheadRows = getLookAheadRows(leftLines, rightLines, leftIndex, rightIndex, leftLineNumber, rightLineNumber);
3102
+ if (lookAheadRows) {
3103
+ rows.push(...lookAheadRows.rows);
3104
+ leftIndex += lookAheadRows.leftCount;
3105
+ leftLineNumber += lookAheadRows.leftCount;
3106
+ rightIndex += lookAheadRows.rightCount;
3107
+ rightLineNumber += lookAheadRows.rightCount;
3108
+ continue;
3109
+ }
3110
+ }
3111
+ if (leftIndex < leftLines.length) {
3112
+ rows.push(getDeletionRow(leftLineNumber, leftLines[leftIndex]));
3113
+ leftIndex++;
3114
+ leftLineNumber++;
3115
+ }
3116
+ if (rightIndex < rightLines.length) {
3117
+ rows.push(getInsertionRow(rightLineNumber, rightLines[rightIndex]));
3118
+ rightIndex++;
3119
+ rightLineNumber++;
3120
+ }
3121
+ }
3122
+ return addConflictDecoratorRows(rows);
3123
+ };
3124
+
3125
+ const getDisplayedContent = (content, errorMessage, errorCodeFrame, errorStack) => {
3126
+ if (!errorMessage) {
3127
+ return content;
3128
+ }
3129
+ return [errorMessage, errorCodeFrame, errorStack].filter(Boolean).join('\n\n');
3130
+ };
3131
+ const getTotalLineCount = (diffMode, contentLeft, contentRight, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, errorRightMessage, errorRightCodeFrame, errorRightStack, renderModeLeft, renderModeRight) => {
3132
+ if (diffMode === 'inline' && renderModeLeft === 'text' && renderModeRight === 'text' && !errorLeftMessage && !errorRightMessage) {
3133
+ return getInlineDiffRows(contentLeft, contentRight).length;
3134
+ }
3135
+ return Math.max(renderModeLeft === 'image' ? 1 : getLineCount(getDisplayedContent(contentLeft, errorLeftMessage, errorLeftCodeFrame, errorLeftStack)), renderModeRight === 'image' ? 1 : getLineCount(getDisplayedContent(contentRight, errorRightMessage, errorRightCodeFrame, errorRightStack)));
3136
+ };
3137
+
3138
+ const setDiffMode = (state, diffMode) => {
3139
+ if (state.diffMode === diffMode) {
3140
+ return state;
3141
+ }
3142
+ const totalLineCount = getTotalLineCount(diffMode, state.contentLeft, state.contentRight, state.errorLeftMessage, state.errorLeftCodeFrame, state.errorLeftStack, state.errorRightMessage, state.errorRightCodeFrame, state.errorRightStack, state.renderModeLeft, state.renderModeRight);
3143
+ const scrollState = getScrollState(state.height, state.itemHeight, totalLineCount, state.minimumSliderSize, state.deltaY);
3144
+ const scrollBarBackgroundImage = getScrollBarBackgroundImage(state.inlineChanges, totalLineCount);
3145
+ const nextState = {
3146
+ ...state,
3147
+ diffMode,
3148
+ scrollBarBackgroundImage,
3149
+ totalLineCount,
3150
+ ...scrollState
3151
+ };
3152
+ return {
3153
+ ...nextState,
3154
+ ...getVisibleLinesState({
3155
+ contentLeft: nextState.contentLeft,
3156
+ contentRight: nextState.contentRight,
3157
+ inlineChanges: nextState.inlineChanges,
3158
+ maxLineY: nextState.maxLineY,
3159
+ minLineY: nextState.minLineY,
3160
+ tokenizedLinesLeft: nextState.tokenizedLinesLeft,
3161
+ tokenizedLinesRight: nextState.tokenizedLinesRight,
3162
+ totalLineCountLeft: nextState.totalLineCountLeft,
3163
+ totalLineCountRight: nextState.totalLineCountRight
3164
+ })
3165
+ };
2009
3166
  };
2010
3167
 
2011
- const initializeSyntaxHighlightingWorker = async () => {
2012
- const rpc = await create$3({
2013
- commandMap: {},
2014
- send(port) {
2015
- return sendMessagePortToSyntaxHighlightingWorker(port);
3168
+ const toggleDiffMode = state => {
3169
+ const nextDiffMode = state.diffMode === 'inline' ? 'side-by-side' : 'inline';
3170
+ return setDiffMode(state, nextDiffMode);
3171
+ };
3172
+
3173
+ const toggleWhitespace = state => {
3174
+ return {
3175
+ ...state,
3176
+ showWhitespace: !state.showWhitespace
3177
+ };
3178
+ };
3179
+
3180
+ const handleClickAction = (state, targetName) => {
3181
+ if (targetName === ToggleDiffMode) {
3182
+ return toggleDiffMode(state);
3183
+ }
3184
+ if (targetName === ToggleWhitespace) {
3185
+ return toggleWhitespace(state);
3186
+ }
3187
+ return state;
3188
+ };
3189
+
3190
+ const DefaultCharWidth = 9;
3191
+ const LineHeight = 20;
3192
+ const GutterPaddingWidth = 28;
3193
+ const RowPaddingLeft = 12;
3194
+ const getCharWidth = state => {
3195
+ return state.charWidth ?? DefaultCharWidth;
3196
+ };
3197
+
3198
+ const getCursorPositionFromCoordinates = (state, clientX, clientY) => {
3199
+ const contentLeft = state.layout === 'vertical' ? state.x : state.x + state.leftWidth;
3200
+ const contentTop = state.layout === 'vertical' ? state.y + state.leftWidth : state.y;
3201
+ const gutterWidth = state.lineNumbers ? state.gutterWidthVariable + GutterPaddingWidth : 0;
3202
+ const charWidth = getCharWidth(state);
3203
+ const rawCursorColumnIndex = Math.floor((clientX - contentLeft - gutterWidth - RowPaddingLeft) / charWidth);
3204
+ const rawCursorRowIndex = state.minLineY + Math.floor((clientY - contentTop) / LineHeight);
3205
+ const maxCursorRowIndex = Math.max(state.totalLineCountRight - 1, 0);
3206
+ return {
3207
+ cursorColumnIndex: Math.max(rawCursorColumnIndex, 0),
3208
+ cursorRowIndex: Math.min(Math.max(rawCursorRowIndex, 0), maxCursorRowIndex)
3209
+ };
3210
+ };
3211
+
3212
+ const setCursorPosition = (state, cursorColumnIndex, cursorRowIndex) => {
3213
+ return {
3214
+ ...state,
3215
+ rightEditor: {
3216
+ ...state.rightEditor,
3217
+ cursorColumnIndex,
3218
+ cursorRowIndex
2016
3219
  }
3220
+ };
3221
+ };
3222
+
3223
+ const handleClickRightSide = (state, clientX, clientY) => {
3224
+ const cursorPosition = getCursorPositionFromCoordinates(state, clientX, clientY);
3225
+ const focusedState = {
3226
+ ...state,
3227
+ focus: FocusDiffEditorText,
3228
+ focusVersion: state.focusVersion + 1
3229
+ };
3230
+ return setCursorPosition(focusedState, cursorPosition.cursorColumnIndex, cursorPosition.cursorRowIndex);
3231
+ };
3232
+
3233
+ const handleClickAt = (state, clientX, clientY, targetName) => {
3234
+ const isVertical = state.layout === 'vertical';
3235
+ const isRightSide = isVertical ? clientY >= state.y + state.leftWidth : clientX >= state.x + state.leftWidth;
3236
+ if (!isRightSide) {
3237
+ return state;
3238
+ }
3239
+ return handleClickRightSide(state, clientX, clientY);
3240
+ };
3241
+
3242
+ const handleClickLeftSide = state => {
3243
+ return state;
3244
+ };
3245
+
3246
+ const show2 = async (uid, menuId, x, y, args) => {
3247
+ await showContextMenu2(uid, menuId, x, y, args);
3248
+ };
3249
+
3250
+ const handleContextMenu = async (state, button, clientX, clientY) => {
3251
+ await show2(state.id, Diff, clientX, clientY, {
3252
+ menuId: Diff
2017
3253
  });
2018
- set$1(rpc);
3254
+ return state;
2019
3255
  };
2020
3256
 
2021
- const initialize = async () => {
2022
- await Promise.all([createExtensionHostRpc(), createTextMeasurementWorkerRpc(), initializeDiffWorker(), initializeExtensionManagementWorker(), initializeFileSystemWorker(), initializeErrorWorker(), initializeSyntaxHighlightingWorker()]);
3257
+ const handleCopy = state => {
3258
+ return state;
2023
3259
  };
2024
3260
 
2025
- const inlineDiffPrefix = 'inline-diff://';
2026
- const diffPrefix = 'diff://';
2027
- const diffSeparator = '<->';
2028
- const parseDiffUris = contentPart => {
2029
- const separatorIndex = contentPart.indexOf(diffSeparator);
2030
- if (separatorIndex === -1) {
2031
- return ['', contentPart];
3261
+ const handleCut = state => {
3262
+ return state;
3263
+ };
3264
+
3265
+ const handleInput = async (state, value) => {
3266
+ return applyEditInput(state, value);
3267
+ };
3268
+
3269
+ const handlePaste = state => {
3270
+ return state;
3271
+ };
3272
+
3273
+ const getNextPaneSizes = (state, layout, width, height) => {
3274
+ const totalPaneSize = state.leftWidth + state.rightWidth;
3275
+ const ratio = totalPaneSize === 0 ? 0.5 : state.leftWidth / totalPaneSize;
3276
+ const size = layout === 'vertical' ? height : width;
3277
+ return getPaneSizes(size, ratio);
3278
+ };
3279
+
3280
+ const handleResize = (state, {
3281
+ height,
3282
+ width
3283
+ }) => {
3284
+ // const {} = state
3285
+ if (state.width === width && state.height === height) {
3286
+ return state;
2032
3287
  }
2033
- const uriLeft = contentPart.slice(0, separatorIndex);
2034
- const uriRight = contentPart.slice(separatorIndex + diffSeparator.length);
2035
- return [uriLeft, uriRight];
3288
+ const {
3289
+ leftWidth,
3290
+ rightWidth
3291
+ } = getNextPaneSizes(state, state.layout, width, height);
3292
+ const scrollState = getScrollState(height, state.itemHeight, state.totalLineCount, state.minimumSliderSize, state.deltaY);
3293
+ const nextState = {
3294
+ ...state,
3295
+ height,
3296
+ leftWidth,
3297
+ rightWidth,
3298
+ width,
3299
+ ...scrollState
3300
+ };
3301
+ return {
3302
+ ...nextState,
3303
+ ...getVisibleLinesState({
3304
+ contentLeft: nextState.contentLeft,
3305
+ contentRight: nextState.contentRight,
3306
+ inlineChanges: nextState.inlineChanges,
3307
+ maxLineY: nextState.maxLineY,
3308
+ minLineY: nextState.minLineY,
3309
+ tokenizedLinesLeft: nextState.tokenizedLinesLeft,
3310
+ tokenizedLinesRight: nextState.tokenizedLinesRight,
3311
+ totalLineCountLeft: nextState.totalLineCountLeft,
3312
+ totalLineCountRight: nextState.totalLineCountRight
3313
+ })
3314
+ };
2036
3315
  };
2037
- const getInlineDiffUris = uri => {
2038
- if (uri.startsWith(inlineDiffPrefix)) {
2039
- return parseDiffUris(uri.slice(inlineDiffPrefix.length));
3316
+
3317
+ const handleSashPointerDown = (state, clientX, clientY) => {
3318
+ const {
3319
+ layout,
3320
+ leftWidth,
3321
+ x,
3322
+ y
3323
+ } = state;
3324
+ const isVertical = layout === 'vertical';
3325
+ return {
3326
+ ...state,
3327
+ isResizing: true,
3328
+ resizeOffsetX: isVertical ? 0 : clientX - x - leftWidth,
3329
+ resizeOffsetY: isVertical ? clientY - y - leftWidth : 0
3330
+ };
3331
+ };
3332
+
3333
+ const getSashPointerMoveWidths = (state, clientX, clientY) => {
3334
+ const {
3335
+ height,
3336
+ layout,
3337
+ resizeOffsetX,
3338
+ resizeOffsetY,
3339
+ width,
3340
+ x,
3341
+ y
3342
+ } = state;
3343
+ if (layout === 'vertical') {
3344
+ const rawTopHeight = clientY - y - resizeOffsetY;
3345
+ const leftWidth = getClampedPaneSize(height, rawTopHeight);
3346
+ const rightWidth = getRemainingPaneSize(height, leftWidth);
3347
+ return {
3348
+ leftWidth,
3349
+ rightWidth
3350
+ };
2040
3351
  }
2041
- if (uri.startsWith(diffPrefix)) {
2042
- return parseDiffUris(uri.slice(diffPrefix.length));
2043
- } else {
2044
- return ['', uri];
3352
+ const rawLeftWidth = clientX - x - resizeOffsetX;
3353
+ const leftWidth = getClampedLeftWidth(width, rawLeftWidth);
3354
+ const rightWidth = getRightWidth(width, leftWidth);
3355
+ return {
3356
+ leftWidth,
3357
+ rightWidth
3358
+ };
3359
+ };
3360
+ const handleSashPointerMove = (state, clientX, clientY) => {
3361
+ const {
3362
+ isResizing
3363
+ } = state;
3364
+ if (!isResizing) {
3365
+ return state;
2045
3366
  }
3367
+ const {
3368
+ leftWidth,
3369
+ rightWidth
3370
+ } = getSashPointerMoveWidths(state, clientX, clientY);
3371
+ return {
3372
+ ...state,
3373
+ leftWidth,
3374
+ rightWidth
3375
+ };
2046
3376
  };
2047
3377
 
2048
- const getMinLineY = savedState => {
2049
- if (!savedState || typeof savedState !== 'object') {
3378
+ const handleSashPointerUp = (state, clientX, clientY) => {
3379
+ if (!state.isResizing) {
3380
+ return state;
3381
+ }
3382
+ const {
3383
+ leftWidth,
3384
+ rightWidth
3385
+ } = getSashPointerMoveWidths(state, clientX, clientY);
3386
+ return {
3387
+ ...state,
3388
+ isResizing: false,
3389
+ leftWidth,
3390
+ resizeOffsetX: 0,
3391
+ resizeOffsetY: 0,
3392
+ rightWidth
3393
+ };
3394
+ };
3395
+
3396
+ const getScrollBarThumbTop = (height, scrollBarHeight, deltaY, finalDeltaY) => {
3397
+ const scrollRange = Math.max(height - scrollBarHeight, 0);
3398
+ if (scrollRange === 0 || finalDeltaY <= 0) {
3399
+ return 0;
3400
+ }
3401
+ return deltaY / finalDeltaY * scrollRange;
3402
+ };
3403
+
3404
+ const normalizeFloatingPointError = value => {
3405
+ return Number(value.toPrecision(16));
3406
+ };
3407
+ const handleScrollBarPointerDown = (state, clientY) => {
3408
+ if (!state.scrollBarActive) {
3409
+ return state;
3410
+ }
3411
+ const thumbTop = getScrollBarThumbTop(state.height, state.scrollBarHeight, state.deltaY, state.finalDeltaY);
3412
+ return {
3413
+ ...state,
3414
+ isScrollBarDragging: true,
3415
+ scrollBarDragOffsetY: normalizeFloatingPointError(clientY - state.y - thumbTop)
3416
+ };
3417
+ };
3418
+
3419
+ const getDeltaYFromScrollBarThumbTop = (height, scrollBarHeight, thumbTop, finalDeltaY) => {
3420
+ const scrollRange = Math.max(height - scrollBarHeight, 0);
3421
+ if (scrollRange === 0 || finalDeltaY <= 0) {
2050
3422
  return 0;
2051
3423
  }
3424
+ const clampedThumbTop = Math.min(Math.max(thumbTop, 0), scrollRange);
3425
+ return clampedThumbTop / scrollRange * finalDeltaY;
3426
+ };
3427
+
3428
+ const handleScrollBarPointerMove = (state, clientY) => {
3429
+ if (!state.isScrollBarDragging) {
3430
+ return state;
3431
+ }
3432
+ const thumbTop = clientY - state.y - state.scrollBarDragOffsetY;
3433
+ const deltaY = getDeltaYFromScrollBarThumbTop(state.height, state.scrollBarHeight, thumbTop, state.finalDeltaY);
3434
+ const scrollState = getScrollState(state.height, state.itemHeight, state.totalLineCount, state.minimumSliderSize, deltaY);
3435
+ return {
3436
+ ...state,
3437
+ ...scrollState,
3438
+ ...getVisibleLinesState({
3439
+ contentLeft: state.contentLeft,
3440
+ contentRight: state.contentRight,
3441
+ inlineChanges: state.inlineChanges,
3442
+ maxLineY: scrollState.maxLineY,
3443
+ minLineY: scrollState.minLineY,
3444
+ tokenizedLinesLeft: state.tokenizedLinesLeft,
3445
+ tokenizedLinesRight: state.tokenizedLinesRight,
3446
+ totalLineCountLeft: state.totalLineCountLeft,
3447
+ totalLineCountRight: state.totalLineCountRight
3448
+ })
3449
+ };
3450
+ };
3451
+
3452
+ const handleScrollBarPointerUp = (state, clientY) => {
3453
+ const nextState = handleScrollBarPointerMove(state, clientY);
3454
+ return {
3455
+ ...nextState,
3456
+ isScrollBarDragging: false,
3457
+ scrollBarDragOffsetY: 0
3458
+ };
3459
+ };
3460
+
3461
+ const handleSearchInput = async (state, value) => {
3462
+ return {
3463
+ ...state,
3464
+ searchQuery: value
3465
+ };
3466
+ };
3467
+
3468
+ const getWheelDeltaY = (deltaMode, deltaY, itemHeight, height) => {
3469
+ switch (deltaMode) {
3470
+ case 1:
3471
+ return deltaY * itemHeight;
3472
+ case 2:
3473
+ return deltaY * height;
3474
+ default:
3475
+ return deltaY;
3476
+ }
3477
+ };
3478
+
3479
+ const handleWheel = (state, deltaMode, eventDeltaY) => {
3480
+ if (!state.scrollBarActive) {
3481
+ return state;
3482
+ }
2052
3483
  const {
2053
- minLineY
2054
- } = savedState;
2055
- if (typeof minLineY === 'number') {
2056
- return minLineY;
2057
- }
2058
- return 0;
3484
+ contentLeft,
3485
+ contentRight,
3486
+ deltaY,
3487
+ height,
3488
+ inlineChanges,
3489
+ itemHeight,
3490
+ minimumSliderSize,
3491
+ tokenizedLinesLeft,
3492
+ tokenizedLinesRight,
3493
+ totalLineCount,
3494
+ totalLineCountLeft,
3495
+ totalLineCountRight
3496
+ } = state;
3497
+ const nextDeltaY = deltaY + getWheelDeltaY(deltaMode, eventDeltaY, itemHeight, height);
3498
+ const scrollState = getScrollState(height, itemHeight, totalLineCount, minimumSliderSize, nextDeltaY);
3499
+ const {
3500
+ visibleLinesLeft,
3501
+ visibleLinesRight
3502
+ } = getVisibleLinesState({
3503
+ contentLeft,
3504
+ contentRight,
3505
+ inlineChanges,
3506
+ maxLineY: scrollState.maxLineY,
3507
+ minLineY: scrollState.minLineY,
3508
+ tokenizedLinesLeft,
3509
+ tokenizedLinesRight,
3510
+ totalLineCountLeft,
3511
+ totalLineCountRight
3512
+ });
3513
+ return {
3514
+ ...state,
3515
+ ...scrollState,
3516
+ visibleLinesLeft,
3517
+ visibleLinesRight
3518
+ };
2059
3519
  };
2060
3520
 
2061
3521
  const getErrorMessage = error => {
@@ -2097,393 +3557,117 @@ const normalizePreparedError = (error, preparedError) => {
2097
3557
  };
2098
3558
  const prepareError = async error => {
2099
3559
  try {
2100
- const preparedError = await invoke$4('Errors.prepare', error);
2101
- return normalizePreparedError(error, preparedError);
2102
- } catch {
2103
- return normalizePreparedError(error, undefined);
2104
- }
2105
- };
2106
-
2107
- const getPath = (protocol, uri) => {
2108
- if (!uri) {
2109
- return '';
2110
- }
2111
- if (protocol === 'file' && !uri.startsWith('file://')) {
2112
- return uri;
2113
- }
2114
- return uri.slice(protocol.length + 3);
2115
- };
2116
-
2117
- const protocolRegex = /^([a-z-]+):\/\//;
2118
- const getProtocol = uri => {
2119
- if (!uri) {
2120
- return 'file';
2121
- }
2122
- const match = uri.match(protocolRegex);
2123
- if (match) {
2124
- return match[1];
2125
- }
2126
- return 'file';
2127
- };
2128
-
2129
- const windowsDriveLetterRegex = /^[a-zA-Z]:\\/;
2130
- const encodeFilePath = path => {
2131
- return encodeURI(path).replaceAll('#', '%23').replaceAll('?', '%3F');
2132
- };
2133
- const toFileUri = path => {
2134
- if (path.startsWith('file://')) {
2135
- return path;
2136
- }
2137
- if (windowsDriveLetterRegex.test(path)) {
2138
- const normalizedPath = path.replaceAll('\\', '/');
2139
- return `file:///${encodeFilePath(normalizedPath)}`;
2140
- }
2141
- return `file://${encodeFilePath(path)}`;
2142
- };
2143
-
2144
- const readFile = async uri => {
2145
- if (!uri || uri.startsWith('untitled://')) {
2146
- return '';
2147
- }
2148
- const protocol = getProtocol(uri);
2149
- if (protocol === 'data') {
2150
- return uri.slice('data://'.length);
2151
- }
2152
- if (protocol === 'file') {
2153
- return readFile$1(toFileUri(uri));
2154
- }
2155
- const path = getPath(protocol, uri);
2156
- if (protocol === 'memfs') {
2157
- return invoke$3('FileSystemMemory.readFile', path);
2158
- }
2159
- return invoke$3('ExtensionHostFileSystem.readFile', protocol, path);
2160
- };
2161
-
2162
- const loadFileContent = async uri => {
2163
- try {
2164
- const content = await readFile(uri);
2165
- return {
2166
- content,
2167
- errorCodeFrame: '',
2168
- errorMessage: '',
2169
- errorStack: ''
2170
- };
2171
- } catch (error) {
2172
- const prettyError = await prepareError(error);
2173
- return {
2174
- content: '',
2175
- errorCodeFrame: prettyError.codeFrame,
2176
- errorMessage: prettyError.message,
2177
- errorStack: prettyError.stack
2178
- };
2179
- }
2180
- };
2181
-
2182
- const loadFileContents = async (uriLeft, uriRight) => {
2183
- const [leftResult, rightResult] = await Promise.all([loadFileContent(uriLeft), loadFileContent(uriRight)]);
2184
- return {
2185
- contentLeft: leftResult.content,
2186
- contentRight: rightResult.content,
2187
- errorLeftCodeFrame: leftResult.errorCodeFrame,
2188
- errorLeftMessage: leftResult.errorMessage,
2189
- errorLeftStack: leftResult.errorStack,
2190
- errorRightCodeFrame: rightResult.errorCodeFrame,
2191
- errorRightMessage: rightResult.errorMessage,
2192
- errorRightStack: rightResult.errorStack
2193
- };
2194
- };
2195
-
2196
- const lineNumberCharWidth = 9;
2197
- const getGutterWidthVariable = maxLineNumber => {
2198
- const maxLineNumberCharCount = String(Math.max(maxLineNumber, 1)).length;
2199
- return maxLineNumberCharCount * lineNumberCharWidth;
2200
- };
2201
-
2202
- const getInlineDiffChanges = (linesLeft, linesRight) => {
2203
- return invoke$5('Diff.diffInline', linesLeft, linesRight);
2204
- };
2205
-
2206
- const getInlineDiffState = async (contentLeft, contentRight) => {
2207
- const linesLeft = contentLeft ? contentLeft.split('\n') : [''];
2208
- const linesRight = contentRight ? contentRight.split('\n') : [''];
2209
- const inlineChanges = await getInlineDiffChanges(linesLeft, linesRight);
2210
- return {
2211
- inlineChanges,
2212
- totalLineCount: Math.max(getVisibleInlineDiffRows(inlineChanges).length, 1)
2213
- };
2214
- };
2215
-
2216
- const getLineCount = content => {
2217
- if (!content) {
2218
- return 1;
2219
- }
2220
- return content.split('\n').length;
2221
- };
2222
-
2223
- const getFileExtension = uri => {
2224
- const protocol = getProtocol(uri);
2225
- const path = getPath(protocol, uri);
2226
- const cleanPath = path.split('?')[0].split('#')[0];
2227
- const extensionIndex = cleanPath.lastIndexOf('.');
2228
- if (extensionIndex === -1) {
2229
- return '';
2230
- }
2231
- return cleanPath.slice(extensionIndex).toLowerCase();
2232
- };
2233
- const getRenderMode = (uri, knownImageExtensions) => {
2234
- const extension = getFileExtension(uri);
2235
- if (knownImageExtensions.includes(extension)) {
2236
- return 'image';
2237
- }
2238
- return 'text';
2239
- };
2240
-
2241
- const InlineDiffRowType = {
2242
- Context: 'context',
2243
- Deletion: 'deletion',
2244
- Insertion: 'insertion'
2245
- };
2246
- const lookAheadLimit = 3;
2247
- const getLines = content => {
2248
- return content ? content.split('\n') : [''];
2249
- };
2250
- const findLookAheadMatch = (lines, startIndex, needle) => {
2251
- const endIndex = Math.min(startIndex + lookAheadLimit, lines.length - 1);
2252
- for (let i = startIndex; i <= endIndex; i++) {
2253
- if (lines[i] === needle) {
2254
- return i;
2255
- }
2256
- }
2257
- return -1;
2258
- };
2259
- const getInlineDiffRows = (contentLeft, contentRight) => {
2260
- const leftLines = getLines(contentLeft);
2261
- const rightLines = getLines(contentRight);
2262
- const rows = [];
2263
- let leftIndex = 0;
2264
- let rightIndex = 0;
2265
- let leftLineNumber = 1;
2266
- let rightLineNumber = 1;
2267
- while (leftIndex < leftLines.length || rightIndex < rightLines.length) {
2268
- const leftLine = leftLines[leftIndex];
2269
- const rightLine = rightLines[rightIndex];
2270
- if (leftIndex < leftLines.length && rightIndex < rightLines.length && leftLine === rightLine) {
2271
- rows.push({
2272
- lineNumberLeft: leftLineNumber,
2273
- lineNumberRight: rightLineNumber,
2274
- text: leftLine,
2275
- type: InlineDiffRowType.Context
2276
- });
2277
- leftIndex++;
2278
- rightIndex++;
2279
- leftLineNumber++;
2280
- rightLineNumber++;
2281
- continue;
2282
- }
2283
- if (leftIndex < leftLines.length && rightIndex < rightLines.length) {
2284
- const leftMatch = findLookAheadMatch(leftLines, leftIndex + 1, rightLine);
2285
- const rightMatch = findLookAheadMatch(rightLines, rightIndex + 1, leftLine);
2286
- if (leftMatch !== -1 && (rightMatch === -1 || leftMatch - leftIndex <= rightMatch - rightIndex)) {
2287
- while (leftIndex < leftMatch) {
2288
- rows.push({
2289
- lineNumberLeft: leftLineNumber,
2290
- lineNumberRight: null,
2291
- text: leftLines[leftIndex],
2292
- type: InlineDiffRowType.Deletion
2293
- });
2294
- leftIndex++;
2295
- leftLineNumber++;
2296
- }
2297
- continue;
2298
- }
2299
- if (rightMatch !== -1) {
2300
- while (rightIndex < rightMatch) {
2301
- rows.push({
2302
- lineNumberLeft: null,
2303
- lineNumberRight: rightLineNumber,
2304
- text: rightLines[rightIndex],
2305
- type: InlineDiffRowType.Insertion
2306
- });
2307
- rightIndex++;
2308
- rightLineNumber++;
2309
- }
2310
- continue;
2311
- }
2312
- }
2313
- if (leftIndex < leftLines.length) {
2314
- rows.push({
2315
- lineNumberLeft: leftLineNumber,
2316
- lineNumberRight: null,
2317
- text: leftLines[leftIndex],
2318
- type: InlineDiffRowType.Deletion
2319
- });
2320
- leftIndex++;
2321
- leftLineNumber++;
2322
- }
2323
- if (rightIndex < rightLines.length) {
2324
- rows.push({
2325
- lineNumberLeft: null,
2326
- lineNumberRight: rightLineNumber,
2327
- text: rightLines[rightIndex],
2328
- type: InlineDiffRowType.Insertion
2329
- });
2330
- rightIndex++;
2331
- rightLineNumber++;
2332
- }
2333
- }
2334
- return rows;
2335
- };
2336
-
2337
- const getDisplayedContent = (content, errorMessage, errorCodeFrame, errorStack) => {
2338
- if (!errorMessage) {
2339
- return content;
2340
- }
2341
- return [errorMessage, errorCodeFrame, errorStack].filter(Boolean).join('\n\n');
2342
- };
2343
- const getTotalLineCount = (diffMode, contentLeft, contentRight, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, errorRightMessage, errorRightCodeFrame, errorRightStack, renderModeLeft, renderModeRight) => {
2344
- if (diffMode === 'inline' && renderModeLeft === 'text' && renderModeRight === 'text' && !errorLeftMessage && !errorRightMessage) {
2345
- return getInlineDiffRows(contentLeft, contentRight).length;
2346
- }
2347
- return Math.max(renderModeLeft === 'image' ? 1 : getLineCount(getDisplayedContent(contentLeft, errorLeftMessage, errorLeftCodeFrame, errorLeftStack)), renderModeRight === 'image' ? 1 : getLineCount(getDisplayedContent(contentRight, errorRightMessage, errorRightCodeFrame, errorRightStack)));
2348
- };
2349
-
2350
- const loadImageSrc = async uri => {
2351
- const protocol = getProtocol(uri);
2352
- const fileUri = protocol === 'file' ? toFileUri(uri) : uri;
2353
- const blob = await readFileAsBlob(fileUri);
2354
- return globalThis.URL.createObjectURL(blob);
2355
- };
2356
-
2357
- let cachedAssetDir = '';
2358
- let cachedPlatform = -1;
2359
- let cachedLanguages = [];
2360
- const getLanguages = async (platform, assetDir) => {
2361
- if (cachedPlatform === platform && cachedAssetDir === assetDir) {
2362
- return cachedLanguages;
2363
- }
2364
- try {
2365
- const languages = await invoke$2('Extensions.getLanguages', platform, assetDir);
2366
- if (!Array.isArray(languages)) {
2367
- return [];
2368
- }
2369
- cachedPlatform = platform;
2370
- cachedAssetDir = assetDir;
2371
- cachedLanguages = languages;
2372
- return cachedLanguages;
3560
+ const preparedError = await invoke$6('Errors.prepare', error);
3561
+ return normalizePreparedError(error, preparedError);
2373
3562
  } catch {
2374
- return [];
3563
+ return normalizePreparedError(error, undefined);
2375
3564
  }
2376
3565
  };
2377
3566
 
2378
- const getFileName = uri => {
2379
- const protocol = getProtocol(uri);
2380
- const path = getPath(protocol, uri).split(/[?#]/, 1)[0];
2381
- const lastSlashIndex = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\'));
2382
- if (lastSlashIndex === -1) {
3567
+ const windowsDriveLetterRegex = /^[a-zA-Z]:\\/;
3568
+ const encodeFilePath = path => {
3569
+ return encodeURI(path).replaceAll('#', '%23').replaceAll('?', '%3F');
3570
+ };
3571
+ const toFileUri = path => {
3572
+ if (path.startsWith('file://')) {
2383
3573
  return path;
2384
3574
  }
2385
- return path.slice(lastSlashIndex + 1);
2386
- };
2387
- const getExtensionIndexes = fileName => {
2388
- const lastIndex = fileName.lastIndexOf('.');
2389
- if (lastIndex === -1) {
2390
- return [-1, -1];
3575
+ if (windowsDriveLetterRegex.test(path)) {
3576
+ const normalizedPath = path.replaceAll('\\', '/');
3577
+ return `file:///${encodeFilePath(normalizedPath)}`;
2391
3578
  }
2392
- return [lastIndex, fileName.lastIndexOf('.', lastIndex - 1)];
3579
+ return `file://${encodeFilePath(path)}`;
2393
3580
  };
2394
- const hasMatchingExtension = (language, extension) => {
2395
- if (!extension || !language.extensions) {
2396
- return false;
3581
+
3582
+ const readFile = async uri => {
3583
+ if (!uri || uri.startsWith('untitled://')) {
3584
+ return '';
2397
3585
  }
2398
- const extensionLower = extension.toLowerCase();
2399
- return language.extensions.some(value => value.toLowerCase() === extensionLower);
2400
- };
2401
- const hasMatchingFileName = (language, fileName) => {
2402
- if (!fileName || !language.fileNames) {
2403
- return false;
3586
+ const protocol = getProtocol(uri);
3587
+ if (protocol === 'data') {
3588
+ return uri.slice('data://'.length);
2404
3589
  }
2405
- const fileNameLower = fileName.toLowerCase();
2406
- return language.fileNames.some(value => value.toLowerCase() === fileNameLower);
2407
- };
2408
- const getSyntaxLanguage = (uri, languages) => {
2409
- const fileName = getFileName(uri);
2410
- if (!fileName) {
2411
- return {
2412
- languageId: 'unknown',
2413
- tokenizerPath: ''
2414
- };
3590
+ if (protocol === 'file') {
3591
+ return readFile$2(toFileUri(uri));
2415
3592
  }
2416
- const [lastExtensionIndex, secondExtensionIndex] = getExtensionIndexes(fileName);
2417
- const extension = lastExtensionIndex === -1 ? '' : fileName.slice(lastExtensionIndex);
2418
- const secondExtension = secondExtensionIndex === -1 ? '' : fileName.slice(secondExtensionIndex);
2419
- for (const language of languages) {
2420
- if (hasMatchingExtension(language, extension) || hasMatchingExtension(language, secondExtension) || hasMatchingFileName(language, fileName)) {
2421
- return {
2422
- languageId: language.id,
2423
- tokenizerPath: language.tokenize || ''
2424
- };
2425
- }
3593
+ if (protocol === 'fetch') {
3594
+ return readFile$1(uri);
2426
3595
  }
2427
- return {
2428
- languageId: 'unknown',
2429
- tokenizerPath: ''
2430
- };
3596
+ const path = getPath(protocol, uri);
3597
+ if (protocol === 'memfs') {
3598
+ return invoke$5('FileSystemMemory.readFile', path);
3599
+ }
3600
+ return invoke$5('ExtensionHostFileSystem.readFile', protocol, path);
2431
3601
  };
2432
3602
 
2433
- const getUniqueLanguages = (languageLeft, languageRight) => {
2434
- return [...new Map([languageLeft, languageRight].map(language => [`${language.languageId}:${language.tokenizerPath}`, language])).values()];
3603
+ const loadFileContent = async uri => {
3604
+ try {
3605
+ const content = await readFile(uri);
3606
+ return {
3607
+ content,
3608
+ errorCodeFrame: '',
3609
+ errorMessage: '',
3610
+ errorStack: ''
3611
+ };
3612
+ } catch (error) {
3613
+ const prettyError = await prepareError(error);
3614
+ return {
3615
+ content: '',
3616
+ errorCodeFrame: prettyError.codeFrame,
3617
+ errorMessage: prettyError.message,
3618
+ errorStack: prettyError.stack
3619
+ };
3620
+ }
2435
3621
  };
2436
3622
 
2437
- const canTokenize = language => {
2438
- return language.languageId !== 'unknown' && !!language.tokenizerPath;
3623
+ const loadFileContents = async (uriLeft, uriRight) => {
3624
+ const [leftResult, rightResult] = await Promise.all([loadFileContent(uriLeft), loadFileContent(uriRight)]);
3625
+ return {
3626
+ contentLeft: leftResult.content,
3627
+ contentRight: rightResult.content,
3628
+ errorLeftCodeFrame: leftResult.errorCodeFrame,
3629
+ errorLeftMessage: leftResult.errorMessage,
3630
+ errorLeftStack: leftResult.errorStack,
3631
+ errorRightCodeFrame: rightResult.errorCodeFrame,
3632
+ errorRightMessage: rightResult.errorMessage,
3633
+ errorRightStack: rightResult.errorStack
3634
+ };
2439
3635
  };
2440
3636
 
2441
- const loadTokenizer = async language => {
2442
- if (!canTokenize(language)) {
2443
- return;
3637
+ const getFileExtension = uri => {
3638
+ const protocol = getProtocol(uri);
3639
+ const path = getPath(protocol, uri);
3640
+ const cleanPath = path.split('?', 1)[0].split('#', 1)[0];
3641
+ const extensionIndex = cleanPath.lastIndexOf('.');
3642
+ if (extensionIndex === -1) {
3643
+ return '';
2444
3644
  }
2445
- await loadTokenizer$1(language.languageId, language.tokenizerPath);
3645
+ return cleanPath.slice(extensionIndex).toLowerCase();
2446
3646
  };
2447
3647
 
2448
- const tokenizeCodeBlock = async (content, language) => {
2449
- if (!canTokenize(language)) {
2450
- return [];
2451
- }
2452
- try {
2453
- const result = await invoke('Tokenizer.tokenizeCodeBlock', content, language.languageId, language.tokenizerPath);
2454
- if (!Array.isArray(result)) {
2455
- return [];
2456
- }
2457
- return result;
2458
- } catch {
2459
- return [];
3648
+ const getRenderMode = (uri, knownImageExtensions) => {
3649
+ const extension = getFileExtension(uri);
3650
+ if (knownImageExtensions.includes(extension)) {
3651
+ return 'image';
2460
3652
  }
3653
+ return 'text';
2461
3654
  };
2462
3655
 
2463
- const emptySyntaxHighlightingState = {
2464
- languageIdLeft: 'unknown',
2465
- languageIdRight: 'unknown',
2466
- tokenizedLinesLeft: [],
2467
- tokenizedLinesRight: []
2468
- };
2469
- const loadSyntaxHighlighting = async (contentLeft, contentRight, uriLeft, uriRight, platform, assetDir) => {
3656
+ const readImageContent = async (uri, protocol) => {
3657
+ const readUri = protocol === 'file' ? getPath(protocol, uri) : uri;
2470
3658
  try {
2471
- const languages = await getLanguages(platform, assetDir);
2472
- const languageLeft = getSyntaxLanguage(uriLeft, languages);
2473
- const languageRight = getSyntaxLanguage(uriRight, languages);
2474
- const uniqueLanguages = getUniqueLanguages(languageLeft, languageRight);
2475
- await Promise.all(uniqueLanguages.map(loadTokenizer));
2476
- const [tokenizedLinesLeft, tokenizedLinesRight] = await Promise.all([tokenizeCodeBlock(contentLeft, languageLeft), tokenizeCodeBlock(contentRight, languageRight)]);
2477
- return {
2478
- languageIdLeft: languageLeft.languageId,
2479
- languageIdRight: languageRight.languageId,
2480
- tokenizedLinesLeft,
2481
- tokenizedLinesRight
2482
- };
3659
+ return await invoke$3('FileSystem.readFileAsBuffer', readUri);
2483
3660
  } catch {
2484
- return emptySyntaxHighlightingState;
3661
+ const fileUri = protocol === 'file' ? toFileUri(uri) : uri;
3662
+ return readFile$2(fileUri);
2485
3663
  }
2486
3664
  };
3665
+ const loadImageSrc = async uri => {
3666
+ const protocol = getProtocol(uri);
3667
+ const content = await readImageContent(uri, protocol);
3668
+ const blob = new globalThis.Blob([content]);
3669
+ return globalThis.URL.createObjectURL(blob);
3670
+ };
2487
3671
 
2488
3672
  const loadImages = async (renderModeLeft, renderModeRight, errorLeftMessage, errorRightMessage, uriLeft, uriRight) => {
2489
3673
  return Promise.all([renderModeLeft === 'image' && !errorLeftMessage ? loadImageSrc(uriLeft) : Promise.resolve(''), renderModeRight === 'image' && !errorRightMessage ? loadImageSrc(uriRight) : Promise.resolve('')]);
@@ -2519,6 +3703,7 @@ const reloadContent = async (state, contentLeft, contentRight, errorLeftMessage,
2519
3703
  const canHighlightRight = renderModeRight === 'text' && !errorRightMessage;
2520
3704
  const syntaxHighlightingState = canHighlightLeft || canHighlightRight ? await loadSyntaxHighlighting(contentLeft, contentRight, uriLeft, uriRight, platform, assetDir) : undefined;
2521
3705
  const [imageSrcLeft, imageSrcRight] = await loadImages(renderModeLeft, renderModeRight, errorLeftMessage, errorRightMessage, uriLeft, uriRight);
3706
+ const scrollBarBackgroundImage = getScrollBarBackgroundImage(inlineChanges, totalLineCount);
2522
3707
  const nextState = {
2523
3708
  ...state,
2524
3709
  contentLeft,
@@ -2538,6 +3723,7 @@ const reloadContent = async (state, contentLeft, contentRight, errorLeftMessage,
2538
3723
  languageIdRight: syntaxHighlightingState?.languageIdRight || 'unknown',
2539
3724
  renderModeLeft,
2540
3725
  renderModeRight,
3726
+ scrollBarBackgroundImage,
2541
3727
  tokenizedLinesLeft: syntaxHighlightingState?.tokenizedLinesLeft || [],
2542
3728
  tokenizedLinesRight: syntaxHighlightingState?.tokenizedLinesRight || [],
2543
3729
  totalLineCount,
@@ -2559,11 +3745,217 @@ const reloadContent = async (state, contentLeft, contentRight, errorLeftMessage,
2559
3745
  totalLineCountLeft: nextState.totalLineCountLeft,
2560
3746
  totalLineCountRight: nextState.totalLineCountRight
2561
3747
  });
2562
- return {
2563
- ...nextState,
2564
- visibleLinesLeft,
2565
- visibleLinesRight
2566
- };
3748
+ return {
3749
+ ...nextState,
3750
+ visibleLinesLeft,
3751
+ visibleLinesRight
3752
+ };
3753
+ };
3754
+
3755
+ const hasFileChanged = (state, contentLeft, contentRight, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, errorRightMessage, errorRightCodeFrame, errorRightStack) => {
3756
+ return state.contentLeft !== contentLeft || state.contentRight !== contentRight || state.errorLeftMessage !== errorLeftMessage || state.errorLeftCodeFrame !== errorLeftCodeFrame || state.errorLeftStack !== errorLeftStack || state.errorRightMessage !== errorRightMessage || state.errorRightCodeFrame !== errorRightCodeFrame || state.errorRightStack !== errorRightStack;
3757
+ };
3758
+ const handleWorkspaceChange = async state => {
3759
+ const {
3760
+ contentLeft,
3761
+ contentRight,
3762
+ errorLeftCodeFrame,
3763
+ errorLeftMessage,
3764
+ errorLeftStack,
3765
+ errorRightCodeFrame,
3766
+ errorRightMessage,
3767
+ errorRightStack
3768
+ } = await loadFileContents(state.uriLeft, state.uriRight);
3769
+ if (!hasFileChanged(state, contentLeft, contentRight, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, errorRightMessage, errorRightCodeFrame, errorRightStack)) {
3770
+ return state;
3771
+ }
3772
+ return reloadContent(state, contentLeft, contentRight, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, errorRightMessage, errorRightCodeFrame, errorRightStack);
3773
+ };
3774
+
3775
+ const hideSearch = state => {
3776
+ return {
3777
+ ...state,
3778
+ searchVisible: false
3779
+ };
3780
+ };
3781
+
3782
+ const sendMessagePortToExtensionHostWorker = async port => {
3783
+ await sendMessagePortToExtensionHostWorker$1(port, 0);
3784
+ };
3785
+
3786
+ const createExtensionHostRpc = async () => {
3787
+ try {
3788
+ const rpc = await create$4({
3789
+ commandMap: {},
3790
+ send: sendMessagePortToExtensionHostWorker
3791
+ });
3792
+ set$6(rpc);
3793
+ } catch (error) {
3794
+ throw new VError(error, `Failed to create extension host rpc`);
3795
+ }
3796
+ };
3797
+
3798
+ const sendMessagePortToTextMeasurementWorker = async port => {
3799
+ await sendMessagePortToTextMeasurementWorker$1(port);
3800
+ };
3801
+
3802
+ const createTextMeasurementWorkerRpc = async () => {
3803
+ try {
3804
+ const rpc = await create$4({
3805
+ commandMap: {},
3806
+ send: sendMessagePortToTextMeasurementWorker
3807
+ });
3808
+ set$3(rpc);
3809
+ } catch (error) {
3810
+ throw new VError(error, `Failed to create text measurement rpc`);
3811
+ }
3812
+ };
3813
+
3814
+ const initializeDiffWorker = async () => {
3815
+ const rpc = await create$3({
3816
+ commandMap: {},
3817
+ send(port) {
3818
+ return sendMessagePortToDiffWorker(port, 0);
3819
+ }
3820
+ });
3821
+ set$8(rpc);
3822
+ };
3823
+
3824
+ const initializeErrorWorker = async () => {
3825
+ const rpc = await create$3({
3826
+ commandMap: {},
3827
+ send(port) {
3828
+ return sendMessagePortToErrorWorker(port, 0);
3829
+ }
3830
+ });
3831
+ set$7(rpc);
3832
+ };
3833
+
3834
+ const createExtensionManagementWorkerRpc = async () => {
3835
+ const rpc = await create$3({
3836
+ commandMap: {},
3837
+ send: port => sendMessagePortToExtensionManagementWorker(port, 0)
3838
+ });
3839
+ return rpc;
3840
+ };
3841
+
3842
+ const initializeExtensionManagementWorker = async () => {
3843
+ const rpc = await createExtensionManagementWorkerRpc();
3844
+ set$5(rpc);
3845
+ };
3846
+
3847
+ const initializeFileSystemWorker = async () => {
3848
+ const rpc = await create$3({
3849
+ commandMap: {},
3850
+ send(port) {
3851
+ return sendMessagePortToFileSystemWorker(port, 0);
3852
+ }
3853
+ });
3854
+ set$4(rpc);
3855
+ };
3856
+
3857
+ const initializeSyntaxHighlightingWorker = async () => {
3858
+ const rpc = await create$3({
3859
+ commandMap: {},
3860
+ send(port) {
3861
+ return sendMessagePortToSyntaxHighlightingWorker(port);
3862
+ }
3863
+ });
3864
+ set$1(rpc);
3865
+ };
3866
+
3867
+ const initializeTextMeasurementWorker = async () => {
3868
+ const rpc = await create$3({
3869
+ commandMap: {},
3870
+ send(port) {
3871
+ return sendMessagePortToTextMeasurementWorker$1(port);
3872
+ }
3873
+ });
3874
+ set$3(rpc);
3875
+ };
3876
+
3877
+ const measureCharWidth = async state => {
3878
+ const sample = 'MMMMMMMMMM';
3879
+ try {
3880
+ const result = await invoke$2('measureText', {
3881
+ fontFamily: state.fontFamily,
3882
+ fontSize: state.fontSize,
3883
+ letterSpacing: state.letterSpacing,
3884
+ text: sample
3885
+ });
3886
+ if (typeof result === 'number' && result > 0) {
3887
+ return result / sample.length;
3888
+ }
3889
+ } catch {
3890
+ return undefined;
3891
+ }
3892
+ return undefined;
3893
+ };
3894
+ const initialize = async () => {
3895
+ await Promise.all([createExtensionHostRpc(), createTextMeasurementWorkerRpc(), initializeDiffWorker(), initializeExtensionManagementWorker(), initializeFileSystemWorker(), initializeErrorWorker(), initializeSyntaxHighlightingWorker(), initializeTextMeasurementWorker()]);
3896
+ if (TextMeasurementWorker && typeof invoke$2 === 'function') {
3897
+ const ids = getKeys$1();
3898
+ for (const id of ids) {
3899
+ const stateTuple = get(id);
3900
+ if (!stateTuple) {
3901
+ continue;
3902
+ }
3903
+ const charWidth = await measureCharWidth(stateTuple.newState);
3904
+ if (charWidth) {
3905
+ set(id, stateTuple.oldState, {
3906
+ ...stateTuple.newState,
3907
+ charWidth
3908
+ });
3909
+ }
3910
+ }
3911
+ }
3912
+ };
3913
+
3914
+ const insertLineBreak = state => {
3915
+ return applyEditInput(state, `${state.inputValue}\n`);
3916
+ };
3917
+
3918
+ const jumpToNextChange = state => {
3919
+ return state;
3920
+ };
3921
+
3922
+ const jumpToPreviousChange = state => {
3923
+ return state;
3924
+ };
3925
+
3926
+ const inlineDiffPrefix = 'inline-diff://';
3927
+ const diffPrefix = 'diff://';
3928
+ const diffSeparator = '<->';
3929
+ const parseDiffUris = contentPart => {
3930
+ const separatorIndex = contentPart.indexOf(diffSeparator);
3931
+ if (separatorIndex === -1) {
3932
+ return ['', contentPart];
3933
+ }
3934
+ const uriLeft = contentPart.slice(0, separatorIndex);
3935
+ const uriRight = contentPart.slice(separatorIndex + diffSeparator.length);
3936
+ return [uriLeft, uriRight];
3937
+ };
3938
+ const getInlineDiffUris = uri => {
3939
+ if (uri.startsWith(inlineDiffPrefix)) {
3940
+ return parseDiffUris(uri.slice(inlineDiffPrefix.length));
3941
+ }
3942
+ if (uri.startsWith(diffPrefix)) {
3943
+ return parseDiffUris(uri.slice(diffPrefix.length));
3944
+ }
3945
+ return ['', uri];
3946
+ };
3947
+
3948
+ const getMinLineY = savedState => {
3949
+ if (!savedState || typeof savedState !== 'object') {
3950
+ return 0;
3951
+ }
3952
+ const {
3953
+ minLineY
3954
+ } = savedState;
3955
+ if (typeof minLineY === 'number') {
3956
+ return minLineY;
3957
+ }
3958
+ return 0;
2567
3959
  };
2568
3960
 
2569
3961
  const loadContent = async (state, savedState) => {
@@ -2590,109 +3982,96 @@ const loadContent = async (state, savedState) => {
2590
3982
  }, contentLeft, contentRight, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, errorRightMessage, errorRightCodeFrame, errorRightStack);
2591
3983
  };
2592
3984
 
2593
- const getCss = () => {
2594
- return `
2595
- .DiffEditorErrorCodeFrame,
2596
- .DiffEditorErrorStack {
2597
- background: rgba(0, 0, 0, 0.22);
2598
- border: 1px solid rgba(255, 255, 255, 0.08);
2599
- border-left: 3px solid rgba(248, 81, 73, 0.6);
2600
- border-radius: 6px;
2601
- box-sizing: border-box;
2602
- color: rgba(255, 255, 255, 0.86);
2603
- font-family: monospace;
2604
- font-size: 12px;
2605
- line-height: 1.5;
2606
- max-width: 100%;
2607
- min-width: 0;
2608
- overflow: auto;
2609
- padding: 8px 10px;
2610
- user-select: text;
2611
- white-space: pre-wrap;
2612
- word-break: break-word;
2613
- }
2614
-
2615
- .DiffEditorErrorStackLink {
2616
- color: inherit;
2617
- text-decoration: underline;
2618
- text-underline-offset: 2px;
2619
- white-space: nowrap;
2620
- }
2621
-
2622
- `;
3985
+ const getLines = content => {
3986
+ if (!content) {
3987
+ return [''];
3988
+ }
3989
+ return content.split('\n');
2623
3990
  };
2624
-
2625
- const AddedColor = 'rgba(46, 160, 67, 0.72)';
2626
- const DeletedColor = 'rgba(248, 81, 73, 0.72)';
2627
- const formatPercentage = value => {
2628
- return String(Number(value.toFixed(4)));
3991
+ const clamp = (value, min, max) => {
3992
+ return Math.min(Math.max(value, min), max);
2629
3993
  };
2630
- const getScrollBarMarkerType = changeType => {
2631
- if (changeType === Insertion) {
2632
- return 'added';
3994
+ const setCursor = (state, cursorColumnIndex, cursorRowIndex) => {
3995
+ const lines = getLines(state.contentRight);
3996
+ const nextCursorRowIndex = clamp(cursorRowIndex, 0, lines.length - 1);
3997
+ const nextCursorColumnIndex = clamp(cursorColumnIndex, 0, lines[nextCursorRowIndex].length);
3998
+ if (state.rightEditor.cursorColumnIndex === nextCursorColumnIndex && state.rightEditor.cursorRowIndex === nextCursorRowIndex) {
3999
+ return state;
2633
4000
  }
2634
- if (changeType === Deletion) {
2635
- return 'deleted';
4001
+ return {
4002
+ ...state,
4003
+ rightEditor: {
4004
+ ...state.rightEditor,
4005
+ cursorColumnIndex: nextCursorColumnIndex,
4006
+ cursorRowIndex: nextCursorRowIndex
4007
+ }
4008
+ };
4009
+ };
4010
+ const moveCursorLeft = state => {
4011
+ const {
4012
+ cursorColumnIndex,
4013
+ cursorRowIndex
4014
+ } = state.rightEditor;
4015
+ if (cursorColumnIndex > 0) {
4016
+ return setCursor(state, cursorColumnIndex - 1, cursorRowIndex);
2636
4017
  }
2637
- return '';
4018
+ if (cursorRowIndex <= 0) {
4019
+ return state;
4020
+ }
4021
+ const lines = getLines(state.contentRight);
4022
+ const previousRowIndex = cursorRowIndex - 1;
4023
+ return setCursor(state, lines[previousRowIndex].length, previousRowIndex);
2638
4024
  };
2639
- const getScrollBarMarkerColor = type => {
2640
- if (type === 'added') {
2641
- return AddedColor;
4025
+ const moveCursorRight = state => {
4026
+ const lines = getLines(state.contentRight);
4027
+ const cursorRowIndex = clamp(state.rightEditor.cursorRowIndex, 0, lines.length - 1);
4028
+ const cursorColumnIndex = clamp(state.rightEditor.cursorColumnIndex, 0, lines[cursorRowIndex].length);
4029
+ if (cursorColumnIndex < lines[cursorRowIndex].length) {
4030
+ return setCursor(state, cursorColumnIndex + 1, cursorRowIndex);
2642
4031
  }
2643
- return DeletedColor;
4032
+ if (cursorRowIndex >= lines.length - 1) {
4033
+ return state;
4034
+ }
4035
+ return setCursor(state, 0, cursorRowIndex + 1);
2644
4036
  };
2645
- const getScrollBarMarkersForSide = (rows, side, totalLineCount) => {
2646
- const markers = [];
2647
- let start = 0;
2648
- let activeType = '';
2649
- for (let index = 0; index < rows.length; index++) {
2650
- const row = rows[index];
2651
- const change = side === 'left' ? row.leftChange : row.rightChange;
2652
- const nextType = getScrollBarMarkerType(change?.type);
2653
- if (nextType === activeType) {
4037
+ const moveCursorUp = state => {
4038
+ return setCursor(state, state.rightEditor.cursorColumnIndex, state.rightEditor.cursorRowIndex - 1);
4039
+ };
4040
+ const moveCursorDown = state => {
4041
+ return setCursor(state, state.rightEditor.cursorColumnIndex, state.rightEditor.cursorRowIndex + 1);
4042
+ };
4043
+ const moveCursorToStartOfLine = state => {
4044
+ return setCursor(state, 0, state.rightEditor.cursorRowIndex);
4045
+ };
4046
+ const moveCursorToEndOfLine = state => {
4047
+ const lines = getLines(state.contentRight);
4048
+ const cursorRowIndex = clamp(state.rightEditor.cursorRowIndex, 0, lines.length - 1);
4049
+ return setCursor(state, lines[cursorRowIndex].length, cursorRowIndex);
4050
+ };
4051
+
4052
+ const ScrollBarWidth = 44;
4053
+ const getEmptyLineNumberHeights = (visibleLines, itemHeight) => {
4054
+ const heights = [];
4055
+ let emptyLineCount = 0;
4056
+ for (const line of visibleLines) {
4057
+ if (line.lineNumber === -1) {
4058
+ emptyLineCount++;
2654
4059
  continue;
2655
4060
  }
2656
- if (activeType) {
2657
- markers.push({
2658
- color: getScrollBarMarkerColor(activeType),
2659
- end: index / totalLineCount * 100,
2660
- start: start / totalLineCount * 100
2661
- });
4061
+ if (emptyLineCount > 0) {
4062
+ heights.push(emptyLineCount * itemHeight);
4063
+ emptyLineCount = 0;
2662
4064
  }
2663
- activeType = nextType;
2664
- start = index;
2665
4065
  }
2666
- if (activeType) {
2667
- markers.push({
2668
- color: getScrollBarMarkerColor(activeType),
2669
- end: rows.length / totalLineCount * 100,
2670
- start: start / totalLineCount * 100
2671
- });
4066
+ if (emptyLineCount > 0) {
4067
+ heights.push(emptyLineCount * itemHeight);
2672
4068
  }
2673
- return markers;
2674
- };
2675
- const getScrollBarMarkerBackgroundImage = ({
2676
- color,
2677
- end,
2678
- start
2679
- }) => {
2680
- const formattedStart = formatPercentage(start);
2681
- const formattedEnd = formatPercentage(end);
2682
- return `linear-gradient(to bottom, transparent ${formattedStart}%, ${color} ${formattedStart}%, ${color} ${formattedEnd}%, transparent ${formattedEnd}%)`;
4069
+ return heights;
2683
4070
  };
2684
- const getScrollBarBackgroundImage = (inlineChanges, totalLineCount) => {
2685
- if (inlineChanges.length === 0 || totalLineCount === 0) {
2686
- return 'none';
2687
- }
2688
- const rows = getVisibleInlineDiffRows(inlineChanges);
2689
- const markers = [...getScrollBarMarkersForSide(rows, 'left', totalLineCount), ...getScrollBarMarkersForSide(rows, 'right', totalLineCount)];
2690
- if (markers.length === 0) {
2691
- return 'none';
2692
- }
2693
- return markers.map(getScrollBarMarkerBackgroundImage).join(', ');
4071
+ const getEmptyLineNumberCss = (visibleLinesLeft, visibleLinesRight, itemHeight) => {
4072
+ const heights = new Set([...getEmptyLineNumberHeights(visibleLinesLeft, itemHeight), ...getEmptyLineNumberHeights(visibleLinesRight, itemHeight)]);
4073
+ return [...heights].toSorted((a, b) => a - b).map(height => `.Height-${height} {\n height: ${height}px;\n}`).join('\n\n');
2694
4074
  };
2695
-
2696
4075
  const renderCss = (oldState, newState) => {
2697
4076
  const {
2698
4077
  deltaY,
@@ -2700,42 +4079,138 @@ const renderCss = (oldState, newState) => {
2700
4079
  gutterWidthVariable,
2701
4080
  height,
2702
4081
  id,
2703
- inlineChanges,
2704
4082
  itemHeight,
2705
4083
  leftWidth,
4084
+ lineNumbers,
4085
+ minLineY,
4086
+ renderModeLeft,
4087
+ renderModeRight,
4088
+ rightEditor,
2706
4089
  rightWidth,
2707
- scrollBarHeight,
2708
- totalLineCount
4090
+ scrollBarBackgroundImage,
4091
+ scrollBarHeight
2709
4092
  } = newState;
2710
4093
  const scrollBarThumbTop = getScrollBarThumbTop(height, scrollBarHeight, deltaY, finalDeltaY);
2711
- const scrollBarBackgroundImage = getScrollBarBackgroundImage(inlineChanges, totalLineCount);
2712
4094
  const {
2713
4095
  layout
2714
4096
  } = newState;
2715
- const staticCss = getCss();
2716
4097
  const gutterWidth = 'var(--GutterWidth)';
2717
- const gutterPaddingWidth = 20;
4098
+ const gutterPaddingWidth = GutterPaddingWidth;
2718
4099
  const inlineGutterExtraWidth = 9 + gutterPaddingWidth;
4100
+ const showLineNumbers = lineNumbers && renderModeLeft === 'text' && renderModeRight === 'text';
4101
+ const rightCursorGutterWidth = showLineNumbers ? gutterWidthVariable + GutterPaddingWidth : 0;
4102
+ const rightCursorLeft = rightCursorGutterWidth + RowPaddingLeft + rightEditor.cursorColumnIndex * getCharWidth(newState);
4103
+ const rightCursorTop = (rightEditor.cursorRowIndex - minLineY) * LineHeight;
2719
4104
  const css = `
2720
4105
  :root {
4106
+ --DiffBackground: #0b0d10;
4107
+ --DiffForeground: rgba(255, 255, 255, 0.88);
4108
+ --DiffGutterBackground: #0f1218;
4109
+ --DiffGutterForeground: rgba(255, 255, 255, 0.58);
4110
+ --DiffSeparatorColor: rgba(255, 255, 255, 0.12);
4111
+ --DiffMissingLineBackground: rgba(255, 255, 255, 0.035);
4112
+ --DiffDeletionBackground: rgba(248, 81, 73, 0.2);
4113
+ --DiffDeletionForeground: #ffb3ad;
4114
+ --DiffDeletionAccent: #ff5f6d;
4115
+ --DiffInsertionBackground: rgba(46, 160, 67, 0.22);
4116
+ --DiffInsertionForeground: #b7f7c0;
4117
+ --DiffInsertionAccent: #3fb950;
2721
4118
  --ItemHeight: ${itemHeight}px;
2722
4119
  --LeftWidth: ${leftWidth}px;
2723
4120
  --RightWidth: ${rightWidth}px;
2724
4121
  --GutterWidth: ${gutterWidthVariable}px;
2725
- --DiffEditorHeight: ${height}px;
2726
4122
  --EditorRowHeight: ${itemHeight}px;
2727
4123
  --ScrollBarHeight: ${scrollBarHeight}px;
2728
4124
  --ScrollBarBackgroundImage: ${scrollBarBackgroundImage};
2729
4125
  --ScrollBarThumbTop: ${scrollBarThumbTop}px;
4126
+ --ScrollBarWidth: ${ScrollBarWidth}px;
4127
+ --DiffFontFamily: ${newState.fontFamily};
2730
4128
  }
2731
4129
 
4130
+
2732
4131
  .DiffEditor {
4132
+ background: var(--DiffBackground);
4133
+ color: var(--DiffForeground);
2733
4134
  display: flex;
2734
- height: var(--DiffEditorHeight);
2735
4135
  position: relative;
2736
4136
  width: 100%;
2737
4137
  }
2738
4138
 
4139
+ .DiffEditorWithSearch {
4140
+ flex-direction: column;
4141
+ }
4142
+
4143
+ .DiffEditorBody {
4144
+ display: flex;
4145
+ flex: 1;
4146
+ min-height: 0;
4147
+ min-width: 0;
4148
+ }
4149
+
4150
+ .DiffSearchHeader {
4151
+ align-items: center;
4152
+ background: var(--DiffGutterBackground);
4153
+ border-bottom: 1px solid var(--DiffSeparatorColor);
4154
+ box-sizing: border-box;
4155
+ display: flex;
4156
+ flex-shrink: 0;
4157
+ height: 40px;
4158
+ padding: 6px 12px;
4159
+ }
4160
+
4161
+ .DiffSearchInput {
4162
+ background: rgba(255, 255, 255, 0.08);
4163
+ border: 1px solid rgba(255, 255, 255, 0.16);
4164
+ border-radius: 4px;
4165
+ box-sizing: border-box;
4166
+ color: var(--DiffForeground);
4167
+ font: 13px system-ui, sans-serif;
4168
+ height: 28px;
4169
+ max-width: 320px;
4170
+ min-width: 120px;
4171
+ outline: none;
4172
+ padding: 0 8px;
4173
+ width: 100%;
4174
+ }
4175
+
4176
+ .DiffSearchInput:focus {
4177
+ border-color: rgba(116, 178, 255, 0.72);
4178
+ }
4179
+
4180
+ .DiffEditorButtons {
4181
+ align-items: center;
4182
+ display: inline-flex;
4183
+ gap: 8px;
4184
+ position: absolute;
4185
+ right: 14px;
4186
+ top: 8px;
4187
+ z-index: 2;
4188
+ }
4189
+
4190
+ .DiffEditorModeToggle,
4191
+ .DiffEditorWhitespaceToggle {
4192
+ align-items: center;
4193
+ background: rgba(255, 255, 255, 0.08);
4194
+ border: 1px solid rgba(255, 255, 255, 0.16);
4195
+ border-radius: 4px;
4196
+ color: var(--DiffForeground);
4197
+ cursor: pointer;
4198
+ display: inline-flex;
4199
+ font: 12px system-ui, sans-serif;
4200
+ height: 28px;
4201
+ padding: 0 10px;
4202
+ }
4203
+
4204
+ .DiffEditorModeToggle:hover,
4205
+ .DiffEditorWhitespaceToggle:hover {
4206
+ background: rgba(255, 255, 255, 0.14);
4207
+ }
4208
+
4209
+ .DiffEditorWhitespaceToggleActive {
4210
+ background: rgba(74, 144, 226, 0.24);
4211
+ border-color: rgba(116, 178, 255, 0.58);
4212
+ }
4213
+
2739
4214
  .DiffEditorHorizontal {
2740
4215
  flex-direction: row;
2741
4216
  }
@@ -2744,6 +4219,19 @@ const renderCss = (oldState, newState) => {
2744
4219
  flex-direction: column;
2745
4220
  }
2746
4221
 
4222
+ .DiffEditorWithSearch.DiffEditorHorizontal,
4223
+ .DiffEditorWithSearch.DiffEditorVertical {
4224
+ flex-direction: column;
4225
+ }
4226
+
4227
+ .DiffEditorBody.DiffEditorVertical {
4228
+ flex-direction: column;
4229
+ }
4230
+
4231
+ .DiffEditorBody.DiffEditorHorizontal {
4232
+ flex-direction: row;
4233
+ }
4234
+
2747
4235
  .InlineDiffEditor {
2748
4236
  flex-direction: column;
2749
4237
  }
@@ -2753,29 +4241,38 @@ const renderCss = (oldState, newState) => {
2753
4241
  height: 100%;
2754
4242
  overflow: hidden;
2755
4243
  user-select: text;
4244
+ flex-direction: row;
2756
4245
  }
2757
4246
 
2758
4247
  .InlineDiffEditorContent {
2759
4248
  display: flex;
4249
+ flex-direction: row;
2760
4250
  height: 100%;
2761
4251
  overflow: hidden;
2762
4252
  }
2763
4253
 
2764
4254
  .DiffEditorContentLeft,
2765
4255
  .DiffEditorContentRight {
4256
+ align-items: stretch;
2766
4257
  display: flex;
4258
+ flex: none !important;
4259
+ min-height: 0;
4260
+ min-width: 0;
2767
4261
  overflow: hidden;
4262
+ position: relative;
2768
4263
  }
2769
4264
 
2770
4265
  .DiffEditorGutter {
4266
+ background: var(--DiffGutterBackground);
4267
+ border-right: 1px solid var(--DiffSeparatorColor);
2771
4268
  box-sizing: border-box;
2772
- color: rgba(255, 255, 255, 0.55);
4269
+ color: var(--DiffGutterForeground);
2773
4270
  display: flex;
2774
4271
  flex-direction: column;
2775
4272
  flex-shrink: 0;
2776
- font-family: monospace;
4273
+ font-family: var(--DiffFontFamily, monospace);
4274
+ font-variant-numeric: tabular-nums;
2777
4275
  overflow: hidden;
2778
- padding: 0 8px 0 12px;
2779
4276
  text-align: right;
2780
4277
  user-select: none;
2781
4278
  width: calc(${gutterWidth} + ${gutterPaddingWidth}px);
@@ -2786,22 +4283,51 @@ const renderCss = (oldState, newState) => {
2786
4283
  }
2787
4284
 
2788
4285
  .DiffEditorLineNumber {
4286
+ border-left: 2px solid transparent;
2789
4287
  box-sizing: border-box;
2790
4288
  height: var(--ItemHeight);
2791
4289
  line-height: var(--ItemHeight);
4290
+ padding: 0 10px 0 6px;
2792
4291
  white-space: pre;
4292
+ flex-shrink: 0;
4293
+ }
4294
+
4295
+ .DiffEditor .DiffEditorLineNumber {
4296
+ color: var(--DiffGutterForeground);
4297
+ }
4298
+
4299
+ .DiffEditor .DiffEditorLineNumberDeletion {
4300
+ background: var(--DiffDeletionBackground);
4301
+ border-left-color: var(--DiffDeletionAccent);
4302
+ color: var(--DiffDeletionAccent);
4303
+ }
4304
+
4305
+ .DiffEditor .DiffEditorLineNumberInsertion {
4306
+ background: var(--DiffInsertionBackground);
4307
+ border-left-color: var(--DiffInsertionAccent);
4308
+ color: var(--DiffInsertionAccent);
4309
+ }
4310
+
4311
+ .DiffEditor .DiffEditorLineNumberMeta {
4312
+ color: rgba(255, 255, 255, 0.4);
2793
4313
  }
2794
4314
 
2795
4315
  .DiffEditorLineNumberEmpty {
4316
+ background-color: var(--DiffMissingLineBackground);
4317
+ background-image: repeating-linear-gradient(135deg, transparent 0, transparent 5px, rgba(255, 255, 255, 0.06) 5px, rgba(255, 255, 255, 0.06) 6px);
2796
4318
  box-sizing: border-box;
2797
4319
  flex-shrink: 0;
2798
4320
  }
2799
4321
 
4322
+ ${getEmptyLineNumberCss(newState.visibleLinesLeft, newState.visibleLinesRight, itemHeight)}
4323
+
2800
4324
  .DiffEditorRows {
2801
- contain: strict;
4325
+ background: var(--DiffBackground);
4326
+ contain: layout paint style;
2802
4327
  cursor: text;
2803
- flex: 1;
2804
- font-family: monospace;
4328
+ flex: 1 1 auto;
4329
+ font-family: var(--DiffFontFamily, monospace);
4330
+ height: 100%;
2805
4331
  min-width: 0;
2806
4332
  overflow: hidden;
2807
4333
  }
@@ -2810,17 +4336,86 @@ const renderCss = (oldState, newState) => {
2810
4336
  box-sizing: border-box;
2811
4337
  height: var(--ItemHeight);
2812
4338
  line-height: var(--ItemHeight);
4339
+ padding: 0 12px;
2813
4340
  white-space: pre;
2814
4341
  }
2815
4342
 
4343
+ .DiffEditorSelections {
4344
+ inset: 0;
4345
+ pointer-events: none;
4346
+ position: absolute;
4347
+ z-index: 1;
4348
+ }
4349
+
4350
+ .EditorCursor {
4351
+ background: red;
4352
+ height: var(--ItemHeight);
4353
+ left: var(--CursorLeft);
4354
+ position: absolute;
4355
+ top: var(--CursorTop);
4356
+ width: 2px;
4357
+ }
4358
+
4359
+ .EditorCursorRight {
4360
+ --CursorLeft: ${rightCursorLeft}px;
4361
+ --CursorTop: ${rightCursorTop}px;
4362
+ }
4363
+
4364
+ .DiffEditorInputWrapper {
4365
+ contain: strict;
4366
+ height: 0;
4367
+ position: absolute;
4368
+ width: 0;
4369
+ z-index: 1;
4370
+ }
4371
+
4372
+ .DiffEditorInput {
4373
+ background: transparent;
4374
+ border: 0;
4375
+ color: transparent;
4376
+ cursor: text;
4377
+ height: 0;
4378
+ outline: none;
4379
+ padding: 0;
4380
+ position: absolute;
4381
+ width: 0;
4382
+ }
4383
+
2816
4384
  .DiffEditor .Deletion {
2817
- background: rgba(255, 0, 0, 0.16);
2818
- color: #ffb3b3;
4385
+ background: var(--DiffDeletionBackground);
4386
+ box-shadow: inset 3px 0 var(--DiffDeletionAccent);
4387
+ color: var(--DiffDeletionForeground);
2819
4388
  }
2820
4389
 
2821
4390
  .DiffEditor .Insertion {
2822
- background: rgba(0, 128, 0, 0.18);
2823
- color: #b7f7c0;
4391
+ background: var(--DiffInsertionBackground);
4392
+ box-shadow: inset 3px 0 var(--DiffInsertionAccent);
4393
+ color: var(--DiffInsertionForeground);
4394
+ }
4395
+
4396
+ .DiffEditor .GitButtons {
4397
+ background: rgba(255, 255, 255, 0.06);
4398
+ border-bottom: 1px solid rgba(255, 255, 255, 0.12);
4399
+ color: rgba(255, 255, 255, 0.75);
4400
+ font-size: 12px;
4401
+ }
4402
+
4403
+ .DiffEditor .IncomingChange {
4404
+ background: rgba(46, 160, 67, 0.16);
4405
+ box-shadow: inset 3px 0 var(--DiffInsertionAccent);
4406
+ color: rgba(183, 247, 192, 0.95);
4407
+ font-size: 12px;
4408
+ }
4409
+
4410
+ .DiffToken--changed {
4411
+ background: rgba(245, 158, 11, 0.22);
4412
+ border-radius: 4px;
4413
+ }
4414
+
4415
+ .DiffEditorLineMissing {
4416
+ background-color: var(--DiffMissingLineBackground);
4417
+ background-image: repeating-linear-gradient(135deg, transparent 0, transparent 5px, rgba(255, 255, 255, 0.06) 5px, rgba(255, 255, 255, 0.06) 6px);
4418
+ box-shadow: none;
2824
4419
  }
2825
4420
 
2826
4421
  .ImageContent {
@@ -2896,7 +4491,7 @@ const renderCss = (oldState, newState) => {
2896
4491
  position: absolute;
2897
4492
  right: 2px;
2898
4493
  top: 0;
2899
- width: 8px;
4494
+ width: var(--ScrollBarWidth);
2900
4495
  }
2901
4496
 
2902
4497
  .DiffScrollBarThumb {
@@ -2909,347 +4504,66 @@ const renderCss = (oldState, newState) => {
2909
4504
  width: 100%;
2910
4505
  }
2911
4506
 
2912
- ${staticCss}
2913
- `;
2914
- return [SetCss, id, css];
2915
- };
2916
-
2917
- const renderFocusContext = (oldState, newState) => {
2918
- const {
2919
- focus,
2920
- id
2921
- } = newState;
2922
- return [SetFocusContext, id, focus];
2923
- };
2924
-
2925
- const mergeClassNames = (...classNames) => {
2926
- return classNames.filter(Boolean).join(' ');
2927
- };
2928
-
2929
- const text = data => {
2930
- return {
2931
- childCount: 0,
2932
- text: data,
2933
- type: Text
2934
- };
2935
- };
4507
+ :root {
4508
+ --DiffSeparatorBackground: gray;
4509
+ --DiffSeparatorWidth: 6px;
2936
4510
 
2937
- const SetText = 1;
2938
- const Replace = 2;
2939
- const SetAttribute = 3;
2940
- const RemoveAttribute = 4;
2941
- const Add = 6;
2942
- const NavigateChild = 7;
2943
- const NavigateParent = 8;
2944
- const RemoveChild = 9;
2945
- const NavigateSibling = 10;
2946
- const SetReferenceNodeUid = 11;
4511
+ }
2947
4512
 
2948
- const isKey = key => {
2949
- return key !== 'type' && key !== 'childCount';
2950
- };
4513
+ .DiffEditor .Sash {
4514
+ position: relative;
4515
+ width: var(--DiffSeparatorWidth);
4516
+ background: var(--DiffSeparatorBackground);
2951
4517
 
2952
- const getKeys = node => {
2953
- const keys = Object.keys(node).filter(isKey);
2954
- return keys;
2955
- };
4518
+ }
2956
4519
 
2957
- const arrayToTree = nodes => {
2958
- const result = [];
2959
- let i = 0;
2960
- while (i < nodes.length) {
2961
- const node = nodes[i];
2962
- const {
2963
- children,
2964
- nodesConsumed
2965
- } = getChildrenWithCount(nodes, i + 1, node.childCount || 0);
2966
- result.push({
2967
- node,
2968
- children
2969
- });
2970
- i += 1 + nodesConsumed;
2971
- }
2972
- return result;
2973
- };
2974
- const getChildrenWithCount = (nodes, startIndex, childCount) => {
2975
- if (childCount === 0) {
2976
- return {
2977
- children: [],
2978
- nodesConsumed: 0
2979
- };
2980
- }
2981
- const children = [];
2982
- let i = startIndex;
2983
- let remaining = childCount;
2984
- let totalConsumed = 0;
2985
- while (remaining > 0 && i < nodes.length) {
2986
- const node = nodes[i];
2987
- const nodeChildCount = node.childCount || 0;
2988
- const {
2989
- children: nodeChildren,
2990
- nodesConsumed
2991
- } = getChildrenWithCount(nodes, i + 1, nodeChildCount);
2992
- children.push({
2993
- node,
2994
- children: nodeChildren
2995
- });
2996
- const nodeSize = 1 + nodesConsumed;
2997
- i += nodeSize;
2998
- totalConsumed += nodeSize;
2999
- remaining--;
3000
- }
3001
- return {
3002
- children,
3003
- nodesConsumed: totalConsumed
3004
- };
3005
- };
4520
+ .DiffEditorErrorCodeFrame,
4521
+ .DiffEditorErrorStack {
4522
+ background: rgba(0, 0, 0, 0.22);
4523
+ border: 1px solid rgba(255, 255, 255, 0.08);
4524
+ border-left: 3px solid rgba(248, 81, 73, 0.6);
4525
+ border-radius: 6px;
4526
+ box-sizing: border-box;
4527
+ color: rgba(255, 255, 255, 0.86);
4528
+ font-family: var(--DiffFontFamily, monospace);
4529
+ font-size: 12px;
4530
+ line-height: 1.5;
4531
+ max-width: 100%;
4532
+ min-width: 0;
4533
+ overflow: auto;
4534
+ padding: 8px 10px;
4535
+ user-select: text;
4536
+ white-space: pre-wrap;
4537
+ word-break: break-word;
4538
+ }
3006
4539
 
3007
- const compareNodes = (oldNode, newNode) => {
3008
- const patches = [];
3009
- // Check if node type changed - return null to signal incompatible nodes
3010
- // (caller should handle this with a Replace operation)
3011
- if (oldNode.type !== newNode.type) {
3012
- return null;
3013
- }
3014
- // Handle reference nodes - special handling for uid changes
3015
- if (oldNode.type === Reference) {
3016
- if (oldNode.uid !== newNode.uid) {
3017
- patches.push({
3018
- type: SetReferenceNodeUid,
3019
- uid: newNode.uid
3020
- });
3021
- }
3022
- return patches;
3023
- }
3024
- // Handle text nodes
3025
- if (oldNode.type === Text && newNode.type === Text) {
3026
- if (oldNode.text !== newNode.text) {
3027
- patches.push({
3028
- type: SetText,
3029
- value: newNode.text
3030
- });
3031
- }
3032
- return patches;
3033
- }
3034
- // Compare attributes
3035
- const oldKeys = getKeys(oldNode);
3036
- const newKeys = getKeys(newNode);
3037
- // Check for attribute changes
3038
- for (const key of newKeys) {
3039
- if (oldNode[key] !== newNode[key]) {
3040
- patches.push({
3041
- type: SetAttribute,
3042
- key,
3043
- value: newNode[key]
3044
- });
3045
- }
3046
- }
3047
- // Check for removed attributes
3048
- for (const key of oldKeys) {
3049
- if (!(key in newNode)) {
3050
- patches.push({
3051
- type: RemoveAttribute,
3052
- key
3053
- });
3054
- }
3055
- }
3056
- return patches;
3057
- };
4540
+ .DiffEditorErrorStackLink {
4541
+ color: inherit;
4542
+ text-decoration: underline;
4543
+ text-underline-offset: 2px;
4544
+ white-space: nowrap;
4545
+ }
3058
4546
 
3059
- const treeToArray = node => {
3060
- const result = [node.node];
3061
- for (const child of node.children) {
3062
- result.push(...treeToArray(child));
3063
- }
3064
- return result;
3065
- };
3066
4547
 
3067
- const diffChildren = (oldChildren, newChildren, patches) => {
3068
- const maxLength = Math.max(oldChildren.length, newChildren.length);
3069
- // Track where we are: -1 means at parent, >= 0 means at child index
3070
- let currentChildIndex = -1;
3071
- // Collect indices of children to remove (we'll add these patches at the end in reverse order)
3072
- const indicesToRemove = [];
3073
- for (let i = 0; i < maxLength; i++) {
3074
- const oldNode = oldChildren[i];
3075
- const newNode = newChildren[i];
3076
- if (!oldNode && !newNode) {
3077
- continue;
3078
- }
3079
- if (!oldNode) {
3080
- // Add new node - we should be at the parent
3081
- if (currentChildIndex >= 0) {
3082
- // Navigate back to parent
3083
- patches.push({
3084
- type: NavigateParent
3085
- });
3086
- currentChildIndex = -1;
3087
- }
3088
- // Flatten the entire subtree so renderInternal can handle it
3089
- const flatNodes = treeToArray(newNode);
3090
- patches.push({
3091
- type: Add,
3092
- nodes: flatNodes
3093
- });
3094
- } else if (newNode) {
3095
- // Compare nodes to see if we need any patches
3096
- const nodePatches = compareNodes(oldNode.node, newNode.node);
3097
- // If nodePatches is null, the node types are incompatible - need to replace
3098
- if (nodePatches === null) {
3099
- // Navigate to this child
3100
- if (currentChildIndex === -1) {
3101
- patches.push({
3102
- type: NavigateChild,
3103
- index: i
3104
- });
3105
- currentChildIndex = i;
3106
- } else if (currentChildIndex !== i) {
3107
- patches.push({
3108
- type: NavigateSibling,
3109
- index: i
3110
- });
3111
- currentChildIndex = i;
3112
- }
3113
- // Replace the entire subtree
3114
- const flatNodes = treeToArray(newNode);
3115
- patches.push({
3116
- type: Replace,
3117
- nodes: flatNodes
3118
- });
3119
- // After replace, we're at the new element (same position)
3120
- continue;
3121
- }
3122
- // Check if we need to recurse into children
3123
- const hasChildrenToCompare = oldNode.children.length > 0 || newNode.children.length > 0;
3124
- // Only navigate to this element if we need to do something
3125
- if (nodePatches.length > 0 || hasChildrenToCompare) {
3126
- // Navigate to this child if not already there
3127
- if (currentChildIndex === -1) {
3128
- patches.push({
3129
- type: NavigateChild,
3130
- index: i
3131
- });
3132
- currentChildIndex = i;
3133
- } else if (currentChildIndex !== i) {
3134
- patches.push({
3135
- type: NavigateSibling,
3136
- index: i
3137
- });
3138
- currentChildIndex = i;
3139
- }
3140
- // Apply node patches (these apply to the current element, not children)
3141
- if (nodePatches.length > 0) {
3142
- patches.push(...nodePatches);
3143
- }
3144
- // Compare children recursively
3145
- if (hasChildrenToCompare) {
3146
- diffChildren(oldNode.children, newNode.children, patches);
3147
- }
3148
- }
3149
- } else {
3150
- // Remove old node - collect the index for later removal
3151
- indicesToRemove.push(i);
3152
- }
3153
- }
3154
- // Navigate back to parent if we ended at a child
3155
- if (currentChildIndex >= 0) {
3156
- patches.push({
3157
- type: NavigateParent
3158
- });
3159
- currentChildIndex = -1;
3160
- }
3161
- // Add remove patches in reverse order (highest index first)
3162
- // This ensures indices remain valid as we remove
3163
- for (let j = indicesToRemove.length - 1; j >= 0; j--) {
3164
- patches.push({
3165
- type: RemoveChild,
3166
- index: indicesToRemove[j]
3167
- });
3168
- }
3169
- };
3170
- const diffTrees = (oldTree, newTree, patches, path) => {
3171
- // At the root level (path.length === 0), we're already AT the element
3172
- // So we compare the root node directly, then compare its children
3173
- if (path.length === 0 && oldTree.length === 1 && newTree.length === 1) {
3174
- const oldNode = oldTree[0];
3175
- const newNode = newTree[0];
3176
- // Compare root nodes
3177
- const nodePatches = compareNodes(oldNode.node, newNode.node);
3178
- // If nodePatches is null, the root node types are incompatible - need to replace
3179
- if (nodePatches === null) {
3180
- const flatNodes = treeToArray(newNode);
3181
- patches.push({
3182
- type: Replace,
3183
- nodes: flatNodes
3184
- });
3185
- return;
3186
- }
3187
- if (nodePatches.length > 0) {
3188
- patches.push(...nodePatches);
3189
- }
3190
- // Compare children
3191
- if (oldNode.children.length > 0 || newNode.children.length > 0) {
3192
- diffChildren(oldNode.children, newNode.children, patches);
3193
- }
3194
- } else {
3195
- // Non-root level or multiple root elements - use the regular comparison
3196
- diffChildren(oldTree, newTree, patches);
3197
- }
4548
+ `;
4549
+ return [SetCss, id, css];
3198
4550
  };
3199
4551
 
3200
- const removeTrailingNavigationPatches = patches => {
3201
- // Find the last non-navigation patch
3202
- let lastNonNavigationIndex = -1;
3203
- for (let i = patches.length - 1; i >= 0; i--) {
3204
- const patch = patches[i];
3205
- if (patch.type !== NavigateChild && patch.type !== NavigateParent && patch.type !== NavigateSibling) {
3206
- lastNonNavigationIndex = i;
3207
- break;
3208
- }
4552
+ const renderFocus = (oldState, newState) => {
4553
+ if (newState.focus !== FocusDiffEditorText) {
4554
+ return [];
3209
4555
  }
3210
- // Return patches up to and including the last non-navigation patch
3211
- return lastNonNavigationIndex === -1 ? [] : patches.slice(0, lastNonNavigationIndex + 1);
4556
+ return [FocusSelector, newState.id, '.DiffEditorInput'];
3212
4557
  };
3213
4558
 
3214
- const diffTree = (oldNodes, newNodes) => {
3215
- // Step 1: Convert flat arrays to tree structures
3216
- const oldTree = arrayToTree(oldNodes);
3217
- const newTree = arrayToTree(newNodes);
3218
- // Step 3: Compare the trees
3219
- const patches = [];
3220
- diffTrees(oldTree, newTree, patches, []);
3221
- // Remove trailing navigation patches since they serve no purpose
3222
- return removeTrailingNavigationPatches(patches);
4559
+ const renderFocusContext = (oldState, newState) => {
4560
+ const {
4561
+ focus,
4562
+ id
4563
+ } = newState;
4564
+ return [SetFocusContext, id, focus];
3223
4565
  };
3224
4566
 
3225
- const DiffEditor = 'DiffEditor';
3226
- const DiffEditorContent = 'DiffEditorContent';
3227
- const DiffEditorContentLeft = 'DiffEditorContentLeft';
3228
- const DiffEditorContentRight = 'DiffEditorContentRight';
3229
- const DiffEditorErrorCodeFrame = 'DiffEditorErrorCodeFrame';
3230
- const DiffEditorError = 'DiffEditorError';
3231
- const DiffEditorErrorMessage = 'DiffEditorErrorMessage';
3232
- const DiffEditorErrorStack = 'DiffEditorErrorStack';
3233
- const DiffEditorErrorStackLink = 'DiffEditorErrorStackLink';
3234
- const DiffEditorGutter = 'DiffEditorGutter';
3235
- const DiffEditorLineNumber = 'DiffEditorLineNumber';
3236
- const DiffEditorLineNumberEmpty = 'DiffEditorLineNumberEmpty';
3237
- const DiffEditorRows = 'DiffEditorRows';
3238
- const DiffEditorHorizontal = 'DiffEditorHorizontal';
3239
- const DiffEditorVertical = 'DiffEditorVertical';
3240
- const EditorRow = 'EditorRow';
3241
- const EditorRowDeletion = 'EditorRow Deletion';
3242
- const EditorRowInsertion = 'EditorRow Insertion';
3243
- const InlineDiffEditor = 'InlineDiffEditor';
3244
- const InlineDiffEditorContent = 'InlineDiffEditorContent';
3245
- const Sash = 'Sash';
3246
- const SashHorizontal = 'SashHorizontal';
3247
- const SashVertical = 'SashVertical';
3248
- const DiffScrollBar = 'DiffScrollBar';
3249
- const DiffScrollBarThumb = 'DiffScrollBarThumb';
3250
- const Viewlet = 'Viewlet';
3251
-
3252
- const HandleClickAt = 1;
3253
4567
  const HandleContextMenu = 2;
3254
4568
  const HandleFocus = 3;
3255
4569
  const HandleInput = 4;
@@ -3264,24 +4578,40 @@ const HandleSashPointerUp = 13;
3264
4578
  const HandleScrollBarPointerDown = 14;
3265
4579
  const HandleScrollBarPointerMove = 15;
3266
4580
  const HandleScrollBarPointerUp = 16;
3267
-
3268
- const parentNode = {
3269
- childCount: 1,
3270
- className: DiffEditorLineNumber,
3271
- type: Div
3272
- };
3273
- const getLineNumberDom = lineNumber => {
3274
- return [parentNode, text(lineNumber === -1 ? '' : String(lineNumber))];
3275
- };
4581
+ const HandleClickLeftSide = 17;
4582
+ const HandleClickRightSide = 18;
4583
+ const HandleBeforeInput = 19;
3276
4584
 
3277
4585
  const getEmptyLineNumberDom = (emptyLineCount, itemHeight) => {
4586
+ const height = emptyLineCount * itemHeight;
3278
4587
  return {
3279
4588
  childCount: 0,
3280
- className: DiffEditorLineNumberEmpty,
3281
- style: `height: ${emptyLineCount * itemHeight}px;`,
4589
+ className: `${DiffEditorLineNumberEmpty} Height-${height}`,
3282
4590
  type: Div
3283
4591
  };
3284
4592
  };
4593
+
4594
+ const getLineNumberClassName = (type = VisibleLineType.Normal) => {
4595
+ if (type === VisibleLineType.Removed || type === InlineDiffRowType.Deletion) {
4596
+ return `${DiffEditorLineNumber} ${DiffEditorLineNumberDeletion}`;
4597
+ }
4598
+ if (type === VisibleLineType.Added || type === InlineDiffRowType.Insertion) {
4599
+ return `${DiffEditorLineNumber} ${DiffEditorLineNumberInsertion}`;
4600
+ }
4601
+ if (type === InlineDiffRowType.GitButtons || type === InlineDiffRowType.IncomingChange) {
4602
+ return `${DiffEditorLineNumber} ${DiffEditorLineNumberMeta}`;
4603
+ }
4604
+ return DiffEditorLineNumber;
4605
+ };
4606
+
4607
+ const getLineNumberDom = (lineNumber, type = VisibleLineType.Normal) => {
4608
+ return [{
4609
+ childCount: 1,
4610
+ className: getLineNumberClassName(type),
4611
+ type: Div
4612
+ }, text(lineNumber === -1 ? '' : String(lineNumber))];
4613
+ };
4614
+
3285
4615
  const getGutterDom = (visibleLines, itemHeight) => {
3286
4616
  const children = [];
3287
4617
  let childCount = 0;
@@ -3296,7 +4626,7 @@ const getGutterDom = (visibleLines, itemHeight) => {
3296
4626
  childCount++;
3297
4627
  emptyLineCount = 0;
3298
4628
  }
3299
- children.push(...getLineNumberDom(line.lineNumber));
4629
+ children.push(...getLineNumberDom(line.lineNumber, line.type));
3300
4630
  childCount++;
3301
4631
  }
3302
4632
  if (emptyLineCount > 0) {
@@ -3320,24 +4650,16 @@ const getRowsDom = (rowsChildCount, rows) => {
3320
4650
 
3321
4651
  const getContentDomWithLineNumbers = (contentClassName, visibleLines, rowsChildCount, rows, itemHeight = 20) => {
3322
4652
  return [{
3323
- childCount: 1,
3324
- className: DiffEditorContent,
3325
- type: Div
3326
- }, {
3327
4653
  childCount: 2,
3328
- className: contentClassName,
4654
+ className: `${DiffEditorContent} ${contentClassName}`,
3329
4655
  type: Div
3330
4656
  }, ...getGutterDom(visibleLines, itemHeight), ...getRowsDom(rowsChildCount, rows)];
3331
4657
  };
3332
4658
 
3333
4659
  const getContentDomWithoutLineNumbers = (contentClassName, rowsChildCount, rows) => {
3334
4660
  return [{
3335
- childCount: 1,
3336
- className: DiffEditorContent,
3337
- type: Div
3338
- }, {
3339
4661
  childCount: rowsChildCount,
3340
- className: contentClassName,
4662
+ className: `${DiffEditorContent} ${contentClassName}`,
3341
4663
  type: Div
3342
4664
  }, ...rows];
3343
4665
  };
@@ -3359,10 +4681,14 @@ const getErrorCodeFrameDom = codeFrame => {
3359
4681
 
3360
4682
  const getStackLineHref = (location, allowedLinkSchemes) => {
3361
4683
  const scheme = location.startsWith('/') ? 'file' : location.slice(0, location.indexOf(':'));
3362
- if (allowedLinkSchemes.includes(scheme)) {
3363
- return scheme === 'file' ? `file://${location.startsWith('file://') ? location.slice('file://'.length) : location}` : location;
4684
+ if (!allowedLinkSchemes.includes(scheme)) {
4685
+ return '#';
4686
+ }
4687
+ if (scheme !== 'file') {
4688
+ return location;
3364
4689
  }
3365
- return '#';
4690
+ const filePath = location.startsWith('file://') ? location.slice('file://'.length) : location;
4691
+ return `file://${filePath}`;
3366
4692
  };
3367
4693
 
3368
4694
  const getStackLineLabel = location => {
@@ -3374,23 +4700,94 @@ const getStackLineLabel = location => {
3374
4700
  return `(${fileName})`;
3375
4701
  };
3376
4702
 
3377
- const stackLocationRegex = /((?:[a-zA-Z][a-zA-Z0-9+.-]*:\/\/|\/)[^\s)]+):(\d+):(\d+)\)?$/;
4703
+ const whitespaceRegex = /\s/;
4704
+ const isSchemeCharacter = char => {
4705
+ return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char >= '0' && char <= '9' || char === '+' || char === '.' || char === '-';
4706
+ };
4707
+ const isSchemeStart = char => {
4708
+ return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z';
4709
+ };
4710
+ const isLocationBoundary = (stackLine, index) => {
4711
+ return index === 0 || stackLine[index - 1] === '(' || whitespaceRegex.test(stackLine[index - 1]);
4712
+ };
4713
+ const getSchemeLocationStart = (stackLine, locationEnd) => {
4714
+ const schemeSeparator = stackLine.lastIndexOf('://', locationEnd);
4715
+ if (schemeSeparator === -1) {
4716
+ return -1;
4717
+ }
4718
+ let start = schemeSeparator - 1;
4719
+ while (start >= 0 && isSchemeCharacter(stackLine[start])) {
4720
+ start--;
4721
+ }
4722
+ start++;
4723
+ if (!isSchemeStart(stackLine[start]) || !isLocationBoundary(stackLine, start)) {
4724
+ return -1;
4725
+ }
4726
+ return start;
4727
+ };
4728
+ const getFileLocationStart = (stackLine, locationEnd) => {
4729
+ for (let index = locationEnd - 1; index >= 0; index--) {
4730
+ if (stackLine[index] === '/' && isLocationBoundary(stackLine, index)) {
4731
+ return index;
4732
+ }
4733
+ }
4734
+ return -1;
4735
+ };
4736
+ const getLocationStart = (stackLine, locationEnd) => {
4737
+ const schemeStart = getSchemeLocationStart(stackLine, locationEnd);
4738
+ if (schemeStart !== -1) {
4739
+ return schemeStart;
4740
+ }
4741
+ return getFileLocationStart(stackLine, locationEnd);
4742
+ };
4743
+ const isDigits = text => {
4744
+ for (const char of text) {
4745
+ if (char < '0' || char > '9') {
4746
+ return false;
4747
+ }
4748
+ }
4749
+ return text.length > 0;
4750
+ };
4751
+ const parseStackLocation = stackLine => {
4752
+ const textEnd = stackLine.endsWith(')') ? stackLine.length - 1 : stackLine.length;
4753
+ const columnSeparator = stackLine.lastIndexOf(':', textEnd - 1);
4754
+ if (columnSeparator === -1) {
4755
+ return undefined;
4756
+ }
4757
+ const lineSeparator = stackLine.lastIndexOf(':', columnSeparator - 1);
4758
+ if (lineSeparator === -1) {
4759
+ return undefined;
4760
+ }
4761
+ const line = stackLine.slice(lineSeparator + 1, columnSeparator);
4762
+ const column = stackLine.slice(columnSeparator + 1, textEnd);
4763
+ if (!isDigits(line) || !isDigits(column)) {
4764
+ return undefined;
4765
+ }
4766
+ const locationStart = getLocationStart(stackLine, lineSeparator);
4767
+ if (locationStart === -1) {
4768
+ return undefined;
4769
+ }
4770
+ return {
4771
+ location: stackLine.slice(locationStart, lineSeparator),
4772
+ text: stackLine.slice(locationStart)
4773
+ };
4774
+ };
3378
4775
 
3379
4776
  const getStackLineLocation = stackLine => {
3380
- const match = stackLine.match(stackLocationRegex);
4777
+ const match = parseStackLocation(stackLine);
3381
4778
  if (!match) {
3382
4779
  return '';
3383
4780
  }
3384
- const [, location] = match;
3385
- return location;
4781
+ return match.location;
3386
4782
  };
3387
4783
 
4784
+ const trailingOpenParenthesisRegex = /\($/;
3388
4785
  const getStackLinePrefix = stackLine => {
3389
- const match = stackLine.match(stackLocationRegex);
4786
+ const match = parseStackLocation(stackLine);
3390
4787
  if (!match) {
3391
4788
  return stackLine;
3392
4789
  }
3393
- return stackLine.slice(0, stackLine.length - match[0].length).replace(/\($/, '');
4790
+ return stackLine.slice(0, stackLine.length - match.text.length).replace(trailingOpenParenthesisRegex, '');
3394
4791
  };
3395
4792
 
3396
4793
  const getErrorStackLineDom = (stackLine, allowedLinkSchemes) => {
@@ -3432,12 +4829,8 @@ const getErrorStackDom = (errorStack, allowedLinkSchemes = defaultAllowedLinkSch
3432
4829
  const getErrorDom = (contentClassName, errorMessage, errorCodeFrame, errorStack, allowedLinkSchemes = defaultAllowedLinkSchemes) => {
3433
4830
  const childCount = 1 + Number(Boolean(errorCodeFrame)) + Number(Boolean(errorStack));
3434
4831
  return [{
3435
- childCount: 1,
3436
- className: DiffEditorContent,
3437
- type: Div
3438
- }, {
3439
4832
  childCount,
3440
- className: `${contentClassName} ${DiffEditorError}`,
4833
+ className: `${DiffEditorContent} ${contentClassName} ${DiffEditorError}`,
3441
4834
  type: Div
3442
4835
  }, {
3443
4836
  childCount: 1,
@@ -3470,9 +4863,10 @@ const getTokenDom = token => {
3470
4863
  const getLineDom = line => {
3471
4864
  const children = line.tokens.length === 0 ? [text('')] : line.tokens.flatMap(getTokenDom);
3472
4865
  const childCount = line.tokens.length === 0 ? 1 : line.tokens.length;
4866
+ const className = line.lineNumber === -1 ? `${EditorRow} ${DiffEditorLineMissing}` : getRowClassName(line.type);
3473
4867
  return [{
3474
4868
  childCount,
3475
- className: getRowClassName(line.type),
4869
+ className,
3476
4870
  type: Div
3477
4871
  }, ...children];
3478
4872
  };
@@ -3485,7 +4879,7 @@ const getContentDom = (contentClassName, content, errorMessage, errorCodeFrame,
3485
4879
  if (errorMessage) {
3486
4880
  return getErrorDom(contentClassName, errorMessage, errorCodeFrame, errorStack, allowedLinkSchemes);
3487
4881
  }
3488
- const lines = visibleLines.length > 0 ? visibleLines : getVisibleLines(content, totalLineCount, inlineChanges, minLineY, maxLineY, side, tokenizedLines);
4882
+ const lines = visibleLines.length > 0 ? visibleLines : getVisibleLines(content, '', totalLineCount, inlineChanges, minLineY, maxLineY, side, tokenizedLines);
3489
4883
  const rows = getVisibleLinesDom(lines);
3490
4884
  const rowsChildCount = lines.length;
3491
4885
  if (lineNumbers) {
@@ -3494,24 +4888,231 @@ const getContentDom = (contentClassName, content, errorMessage, errorCodeFrame,
3494
4888
  return getContentDomWithoutLineNumbers(contentClassName, rowsChildCount, rows);
3495
4889
  };
3496
4890
 
3497
- const getContentLeftDom = (contentLeft, errorMessage = '', errorCodeFrame = '', errorStack = '', allowedLinkSchemes = defaultAllowedLinkSchemes, lineNumbers = true, totalLineCount = contentLeft ? contentLeft.split('\n').length : 1, minLineY = 0, maxLineY = totalLineCount, inlineChanges = [], tokenizedLines = [], visibleLines = [], itemHeight = 20) => {
3498
- return getContentDom(DiffEditorContentLeft, contentLeft, errorMessage, errorCodeFrame, errorStack, allowedLinkSchemes, lineNumbers, totalLineCount, minLineY, maxLineY, inlineChanges, 'left', tokenizedLines, visibleLines, itemHeight);
4891
+ const getContentLeftDom = ({
4892
+ allowedLinkSchemes = defaultAllowedLinkSchemes,
4893
+ contentLeft,
4894
+ errorCodeFrame = '',
4895
+ errorMessage = '',
4896
+ errorStack = '',
4897
+ inlineChanges = [],
4898
+ itemHeight = 20,
4899
+ lineNumbers = true,
4900
+ maxLineY,
4901
+ minLineY = 0,
4902
+ tokenizedLines = [],
4903
+ totalLineCount,
4904
+ visibleLines = []
4905
+ }) => {
4906
+ const resolvedTotalLineCount = totalLineCount ?? (contentLeft ? contentLeft.split('\n').length : 1);
4907
+ const resolvedMaxLineY = maxLineY ?? resolvedTotalLineCount;
4908
+ const [content, ...rest] = getContentDom(DiffEditorContentLeft, contentLeft, errorMessage, errorCodeFrame, errorStack, allowedLinkSchemes, lineNumbers, resolvedTotalLineCount, minLineY, resolvedMaxLineY, inlineChanges, 'left', tokenizedLines, visibleLines, itemHeight);
4909
+ return [{
4910
+ ...content,
4911
+ onClick: HandleClickLeftSide
4912
+ }, ...rest];
4913
+ };
4914
+
4915
+ const getCursorDom = () => {
4916
+ return [{
4917
+ childCount: 1,
4918
+ className: DiffEditorSelections,
4919
+ type: Div
4920
+ }, {
4921
+ childCount: 0,
4922
+ className: `${EditorCursor} ${EditorCursorRight}`,
4923
+ type: Div
4924
+ }];
4925
+ };
4926
+
4927
+ const DiffEditorInput = 'DiffEditorInput';
4928
+ const SourceControlInput = 'SourceControlInput';
4929
+
4930
+ const getInputWrapperDom = (inputValue, caretPosition = inputValue.length) => [{
4931
+ childCount: 1,
4932
+ className: DiffEditorInputWrapper,
4933
+ type: Div
4934
+ }, {
4935
+ childCount: 0,
4936
+ className: DiffEditorInput$1,
4937
+ name: DiffEditorInput,
4938
+ onInput: HandleInput,
4939
+ selectionEnd: caretPosition,
4940
+ selectionStart: caretPosition,
4941
+ type: TextArea,
4942
+ value: inputValue
4943
+ }];
4944
+ const getContentRightDom = ({
4945
+ allowedLinkSchemes = defaultAllowedLinkSchemes,
4946
+ contentRight,
4947
+ editable = false,
4948
+ errorCodeFrame = '',
4949
+ errorMessage = '',
4950
+ errorStack = '',
4951
+ inlineChanges = [],
4952
+ inputValue = '',
4953
+ itemHeight = 20,
4954
+ lineNumbers = true,
4955
+ maxLineY,
4956
+ minLineY = 0,
4957
+ tokenizedLines = [],
4958
+ totalLineCount,
4959
+ visibleLines = []
4960
+ }) => {
4961
+ const resolvedTotalLineCount = totalLineCount ?? (contentRight ? contentRight.split('\n').length : 1);
4962
+ const resolvedMaxLineY = maxLineY ?? resolvedTotalLineCount;
4963
+ const contentDom = getContentDom(DiffEditorContentRight, contentRight, errorMessage, errorCodeFrame, errorStack, allowedLinkSchemes, lineNumbers, resolvedTotalLineCount, minLineY, resolvedMaxLineY, inlineChanges, 'right', tokenizedLines, visibleLines, itemHeight);
4964
+ if (!editable || errorMessage) {
4965
+ const [content, ...rest] = contentDom;
4966
+ return [{
4967
+ ...content,
4968
+ onClick: HandleClickRightSide
4969
+ }, ...rest];
4970
+ }
4971
+ const [content, ...rest] = contentDom;
4972
+ const cursorDom = getCursorDom();
4973
+ return [{
4974
+ ...content,
4975
+ childCount: content.childCount + 2,
4976
+ onClick: HandleClickRightSide
4977
+ }, ...rest, ...cursorDom, ...getInputWrapperDom(inputValue)];
4978
+ };
4979
+
4980
+ const getLabel$1 = diffMode => {
4981
+ return diffMode === 'inline' ? sideBySide() : inline();
4982
+ };
4983
+ const getTitle = diffMode => {
4984
+ const label = getLabel$1(diffMode);
4985
+ return switchToDiff(label);
4986
+ };
4987
+ const getDiffModeToggleDom = diffMode => {
4988
+ const label = getLabel$1(diffMode);
4989
+ return [{
4990
+ childCount: 1,
4991
+ className: DiffEditorModeToggle,
4992
+ name: ToggleDiffMode,
4993
+ onClick: HandleClickAction,
4994
+ title: getTitle(diffMode),
4995
+ type: Button$1
4996
+ }, text(label)];
4997
+ };
4998
+
4999
+ /* eslint-disable sonarjs/no-selector-parameter */
5000
+ const getLabel = showWhitespace$1 => {
5001
+ return showWhitespace$1 ? hideWhitespace() : showWhitespace();
5002
+ };
5003
+ const getWhitespaceToggleDom = showWhitespace => {
5004
+ const label = getLabel(showWhitespace);
5005
+ const className = showWhitespace ? `${DiffEditorWhitespaceToggle} ${DiffEditorWhitespaceToggleActive}` : DiffEditorWhitespaceToggle;
5006
+ return [{
5007
+ childCount: 1,
5008
+ className,
5009
+ name: ToggleWhitespace,
5010
+ onClick: HandleClickAction,
5011
+ title: label,
5012
+ type: Button$1
5013
+ }, text(label)];
5014
+ };
5015
+
5016
+ const getDiffEditorButtonsDom = (diffMode, showWhitespace) => {
5017
+ return [{
5018
+ childCount: 2,
5019
+ className: DiffEditorButtons,
5020
+ type: Div
5021
+ }, ...getWhitespaceToggleDom(showWhitespace), ...getDiffModeToggleDom(diffMode)];
5022
+ };
5023
+
5024
+ const countOccurrences = (text, query) => {
5025
+ if (!query) return 0;
5026
+ let count = 0;
5027
+ let index = 0;
5028
+ while (true) {
5029
+ index = text.indexOf(query, index);
5030
+ if (index === -1) break;
5031
+ count += 1;
5032
+ index += query.length;
5033
+ }
5034
+ return count;
5035
+ };
5036
+ const getDiffSearchHeaderDom = (contentLeft, contentRight, query) => {
5037
+ const q = query || '';
5038
+ const leftCount = countOccurrences(contentLeft || '', query);
5039
+ const rightCount = countOccurrences(contentRight || '', q);
5040
+ const total = leftCount + rightCount;
5041
+ const widgetClass = total === 0 && query ? 'DiffSearchWidget DiffSearchWidgetNoResults' : 'DiffSearchWidget';
5042
+ return [{
5043
+ childCount: 1,
5044
+ className: DiffSearchHeader,
5045
+ type: Div
5046
+ }, {
5047
+ childCount: 2,
5048
+ className: widgetClass,
5049
+ type: Div
5050
+ }, {
5051
+ childCount: 0,
5052
+ className: DiffSearchInput,
5053
+ inputType: 'search',
5054
+ placeholder: search(),
5055
+ type: Input,
5056
+ value: q
5057
+ }, {
5058
+ childCount: 0,
5059
+ className: 'DiffSearchMatchCount',
5060
+ text: `${total} of ${total}`,
5061
+ type: Div
5062
+ }];
5063
+ };
5064
+
5065
+ const getImageLeftDom = (uriLeft, imageSrc) => {
5066
+ return [{
5067
+ childCount: 1,
5068
+ className: `${DiffEditorContent} ${DiffEditorContentLeft}`,
5069
+ onClick: HandleClickLeftSide,
5070
+ type: Div
5071
+ }, {
5072
+ childCount: 1,
5073
+ className: ImageContent,
5074
+ type: Div
5075
+ }, {
5076
+ alt: uriLeft,
5077
+ childCount: 0,
5078
+ className: ImageElement,
5079
+ src: imageSrc,
5080
+ type: Img
5081
+ }];
3499
5082
  };
3500
5083
 
3501
- const getContentRightDom = (contentRight, errorMessage = '', errorCodeFrame = '', errorStack = '', allowedLinkSchemes = defaultAllowedLinkSchemes, lineNumbers = true, totalLineCount = contentRight ? contentRight.split('\n').length : 1, minLineY = 0, maxLineY = totalLineCount, inlineChanges = [], tokenizedLines = [], visibleLines = [], itemHeight = 20) => {
3502
- return getContentDom(DiffEditorContentRight, contentRight, errorMessage, errorCodeFrame, errorStack, allowedLinkSchemes, lineNumbers, totalLineCount, minLineY, maxLineY, inlineChanges, 'right', tokenizedLines, visibleLines, itemHeight);
5084
+ const getImageRightDom = (uriRight, imageSrc) => {
5085
+ return [{
5086
+ childCount: 1,
5087
+ className: `${DiffEditorContent} ${DiffEditorContentRight}`,
5088
+ onClick: HandleClickRightSide,
5089
+ type: Div
5090
+ }, {
5091
+ childCount: 1,
5092
+ className: ImageContent,
5093
+ type: Div
5094
+ }, {
5095
+ alt: uriRight,
5096
+ childCount: 0,
5097
+ className: ImageElement,
5098
+ src: imageSrc,
5099
+ type: Img
5100
+ }];
3503
5101
  };
3504
5102
 
3505
5103
  const getInlineDiffLineNumberText = row => {
3506
- const left = row.lineNumberLeft === null ? '-' : String(row.lineNumberLeft);
3507
- const right = row.lineNumberRight === null ? '-' : String(row.lineNumberRight);
5104
+ if (row.type === InlineDiffRowType.GitButtons || row.type === InlineDiffRowType.IncomingChange) {
5105
+ return '';
5106
+ }
5107
+ const left = row.lineNumberLeft === null ? '' : String(row.lineNumberLeft);
5108
+ const right = row.lineNumberRight === null ? '' : String(row.lineNumberRight);
3508
5109
  return `${left} ${right}`;
3509
5110
  };
3510
5111
 
3511
5112
  const getInlineDiffLineNumberDom = row => {
3512
5113
  return [{
3513
5114
  childCount: 1,
3514
- className: DiffEditorLineNumber,
5115
+ className: getLineNumberClassName(row.type),
3515
5116
  type: Div
3516
5117
  }, text(getInlineDiffLineNumberText(row))];
3517
5118
  };
@@ -3520,6 +5121,10 @@ const getInlineDiffRowClassName = row => {
3520
5121
  switch (row.type) {
3521
5122
  case InlineDiffRowType.Deletion:
3522
5123
  return EditorRowDeletion;
5124
+ case InlineDiffRowType.GitButtons:
5125
+ return EditorRowGitButtons;
5126
+ case InlineDiffRowType.IncomingChange:
5127
+ return EditorRowIncomingChange;
3523
5128
  case InlineDiffRowType.Insertion:
3524
5129
  return EditorRowInsertion;
3525
5130
  default:
@@ -3531,6 +5136,9 @@ const getInlineDiffRowText = row => {
3531
5136
  switch (row.type) {
3532
5137
  case InlineDiffRowType.Deletion:
3533
5138
  return `- ${row.text}`;
5139
+ case InlineDiffRowType.GitButtons:
5140
+ case InlineDiffRowType.IncomingChange:
5141
+ return row.text;
3534
5142
  case InlineDiffRowType.Insertion:
3535
5143
  return `+ ${row.text}`;
3536
5144
  default:
@@ -3560,23 +5168,25 @@ const getScrollBarDom = () => {
3560
5168
  }];
3561
5169
  };
3562
5170
 
3563
- const getInlineDiffEditorVirtualDom = (contentLeft, contentRight, lineNumbers, minLineY, maxLineY) => {
5171
+ const getInlineDiffEditorVirtualDom = (contentLeft, contentRight, lineNumbers, minLineY, maxLineY, searchVisible, searchQuery, showWhitespace) => {
3564
5172
  const rows = getInlineDiffRows(contentLeft, contentRight);
3565
5173
  const visibleRows = rows.slice(minLineY, maxLineY);
3566
5174
  const contentChildCount = lineNumbers ? 2 : 1;
3567
5175
  const scrollBarActive = visibleRows.length < rows.length;
3568
5176
  const rowsChildCount = visibleRows.length;
5177
+ const buttonsDom = getDiffEditorButtonsDom('inline', showWhitespace);
3569
5178
  const lineNumberDom = lineNumbers ? [{
3570
5179
  childCount: visibleRows.length,
3571
5180
  className: DiffEditorGutter,
3572
5181
  type: Div
3573
5182
  }, ...visibleRows.flatMap(getInlineDiffLineNumberDom)] : [];
3574
5183
  const scrollBarDom = scrollBarActive ? getScrollBarDom() : [];
5184
+ const searchHeaderDom = searchVisible ? getDiffSearchHeaderDom(contentLeft, contentRight, searchQuery) : [];
3575
5185
  return [{
3576
- childCount: scrollBarActive ? 2 : 1,
5186
+ childCount: (scrollBarActive ? 3 : 2) + (searchVisible ? 1 : 0),
3577
5187
  className: mergeClassNames(Viewlet, DiffEditor, InlineDiffEditor),
3578
5188
  type: Div
3579
- }, {
5189
+ }, ...searchHeaderDom, {
3580
5190
  childCount: contentChildCount,
3581
5191
  className: `${DiffEditorContent} ${InlineDiffEditorContent}`,
3582
5192
  type: Div
@@ -3584,7 +5194,7 @@ const getInlineDiffEditorVirtualDom = (contentLeft, contentRight, lineNumbers, m
3584
5194
  childCount: rowsChildCount,
3585
5195
  className: DiffEditorRows,
3586
5196
  type: Div
3587
- }, ...visibleRows.flatMap(getInlineDiffRowDom), ...scrollBarDom];
5197
+ }, ...visibleRows.flatMap(getInlineDiffRowDom), ...buttonsDom, ...scrollBarDom];
3588
5198
  };
3589
5199
 
3590
5200
  const getSashDom = sashLayoutClass => ({
@@ -3595,6 +5205,28 @@ const getSashDom = sashLayoutClass => ({
3595
5205
  type: Div
3596
5206
  });
3597
5207
 
5208
+ const getRootDom = (childCount, className) => {
5209
+ return {
5210
+ childCount,
5211
+ className,
5212
+ onContextMenu: HandleContextMenu,
5213
+ onWheel: HandleWheel,
5214
+ type: Div
5215
+ };
5216
+ };
5217
+ const getEditorBodyDom = diffEditorLayoutClass => {
5218
+ return {
5219
+ childCount: 3,
5220
+ className: `${DiffEditorBody} ${diffEditorLayoutClass}`,
5221
+ type: Div
5222
+ };
5223
+ };
5224
+ const getDiffEditorWithSearchDom = (diffEditorLayoutClass, sashLayoutClass, leftDom, rightDom, buttonsDom, scrollBarDom, scrollBarActive, contentLeft, contentRight, searchQuery) => {
5225
+ return [getRootDom(scrollBarActive ? 4 : 3, `${Viewlet} ${DiffEditor} ${diffEditorLayoutClass} ${DiffEditorWithSearch}`), ...getDiffSearchHeaderDom(contentLeft, contentRight, searchQuery), getEditorBodyDom(diffEditorLayoutClass), ...leftDom, getSashDom(sashLayoutClass), ...rightDom, ...buttonsDom, ...scrollBarDom];
5226
+ };
5227
+ const getDiffEditorWithoutSearchDom = (diffEditorLayoutClass, sashLayoutClass, leftDom, rightDom, buttonsDom, scrollBarDom, scrollBarActive) => {
5228
+ return [getRootDom(scrollBarActive ? 5 : 4, `${Viewlet} ${DiffEditor} ${diffEditorLayoutClass}`), ...leftDom, getSashDom(sashLayoutClass), ...rightDom, ...buttonsDom, ...scrollBarDom];
5229
+ };
3598
5230
  const getDiffEditorVirtualDom = state => {
3599
5231
  const {
3600
5232
  allowedLinkSchemes,
@@ -3607,7 +5239,10 @@ const getDiffEditorVirtualDom = state => {
3607
5239
  errorRightCodeFrame,
3608
5240
  errorRightMessage,
3609
5241
  errorRightStack,
5242
+ imageSrcLeft,
5243
+ imageSrcRight,
3610
5244
  inlineChanges,
5245
+ inputValue,
3611
5246
  itemHeight,
3612
5247
  layout,
3613
5248
  lineNumbers,
@@ -3616,31 +5251,63 @@ const getDiffEditorVirtualDom = state => {
3616
5251
  renderModeLeft,
3617
5252
  renderModeRight,
3618
5253
  scrollBarActive,
5254
+ searchQuery,
5255
+ searchVisible,
5256
+ showWhitespace,
3619
5257
  tokenizedLinesLeft,
3620
5258
  tokenizedLinesRight,
3621
5259
  totalLineCountLeft,
3622
5260
  totalLineCountRight,
5261
+ uriLeft,
5262
+ uriRight,
3623
5263
  visibleLinesLeft,
3624
5264
  visibleLinesRight
3625
5265
  } = state;
3626
5266
  const canRenderInline = diffMode === 'inline' && renderModeLeft === 'text' && renderModeRight === 'text' && !errorLeftMessage && !errorRightMessage;
3627
5267
  if (canRenderInline) {
3628
- return getInlineDiffEditorVirtualDom(contentLeft, contentRight, lineNumbers, minLineY, maxLineY);
5268
+ return getInlineDiffEditorVirtualDom(contentLeft, contentRight, lineNumbers, minLineY, maxLineY, searchVisible, searchQuery, showWhitespace);
3629
5269
  }
3630
5270
  const showLineNumbers = lineNumbers && renderModeLeft === 'text' && renderModeRight === 'text';
3631
5271
  const diffEditorLayoutClass = layout === 'vertical' ? DiffEditorVertical : DiffEditorHorizontal;
3632
5272
  const sashLayoutClass = layout === 'vertical' ? SashHorizontal : SashVertical;
3633
- const leftDom = getContentLeftDom(contentLeft, errorLeftMessage, errorLeftCodeFrame, errorLeftStack, allowedLinkSchemes, showLineNumbers, totalLineCountLeft, minLineY, maxLineY, inlineChanges, tokenizedLinesLeft, visibleLinesLeft, itemHeight);
3634
- const rightDom = getContentRightDom(contentRight, errorRightMessage, errorRightCodeFrame, errorRightStack, allowedLinkSchemes, showLineNumbers, totalLineCountRight, minLineY, maxLineY, inlineChanges, tokenizedLinesRight, visibleLinesRight, itemHeight);
5273
+ const leftDom = renderModeLeft === 'image' && !errorLeftMessage ? getImageLeftDom(uriLeft, imageSrcLeft) : getContentLeftDom({
5274
+ allowedLinkSchemes,
5275
+ contentLeft,
5276
+ errorCodeFrame: errorLeftCodeFrame,
5277
+ errorMessage: errorLeftMessage,
5278
+ errorStack: errorLeftStack,
5279
+ inlineChanges,
5280
+ itemHeight,
5281
+ lineNumbers: showLineNumbers,
5282
+ maxLineY,
5283
+ minLineY,
5284
+ tokenizedLines: tokenizedLinesLeft,
5285
+ totalLineCount: totalLineCountLeft,
5286
+ visibleLines: visibleLinesLeft
5287
+ });
5288
+ const rightDom = renderModeRight === 'image' && !errorRightMessage ? getImageRightDom(uriRight, imageSrcRight) : getContentRightDom({
5289
+ allowedLinkSchemes,
5290
+ contentRight,
5291
+ editable: true,
5292
+ errorCodeFrame: errorRightCodeFrame,
5293
+ errorMessage: errorRightMessage,
5294
+ errorStack: errorRightStack,
5295
+ inlineChanges,
5296
+ inputValue,
5297
+ itemHeight,
5298
+ lineNumbers: showLineNumbers,
5299
+ maxLineY,
5300
+ minLineY,
5301
+ tokenizedLines: tokenizedLinesRight,
5302
+ totalLineCount: totalLineCountRight,
5303
+ visibleLines: visibleLinesRight
5304
+ });
3635
5305
  const scrollBarDom = scrollBarActive ? getScrollBarDom() : [];
3636
- const dom = [{
3637
- childCount: scrollBarActive ? 4 : 3,
3638
- className: `${Viewlet} ${DiffEditor} ${diffEditorLayoutClass}`,
3639
- onContextMenu: HandleContextMenu,
3640
- onWheel: HandleWheel,
3641
- type: Div
3642
- }, ...leftDom, getSashDom(sashLayoutClass), ...rightDom, ...scrollBarDom];
3643
- return dom;
5306
+ const buttonsDom = getDiffEditorButtonsDom(diffMode, showWhitespace);
5307
+ if (searchVisible) {
5308
+ return getDiffEditorWithSearchDom(diffEditorLayoutClass, sashLayoutClass, leftDom, rightDom, buttonsDom, scrollBarDom, scrollBarActive, contentLeft, contentRight, searchQuery);
5309
+ }
5310
+ return getDiffEditorWithoutSearchDom(diffEditorLayoutClass, sashLayoutClass, leftDom, rightDom, buttonsDom, scrollBarDom, scrollBarActive);
3644
5311
  };
3645
5312
 
3646
5313
  const renderItems = (oldState, newState) => {
@@ -3665,8 +5332,6 @@ const renderIncremental = (oldState, newState) => {
3665
5332
  return ['Viewlet.setPatches', id, patches];
3666
5333
  };
3667
5334
 
3668
- const SourceControlInput = 'SourceControlInput';
3669
-
3670
5335
  const renderValue = (oldState, newState) => {
3671
5336
  const {
3672
5337
  id,
@@ -3679,6 +5344,8 @@ const getRenderer = diffType => {
3679
5344
  switch (diffType) {
3680
5345
  case RenderCss:
3681
5346
  return renderCss;
5347
+ case RenderFocus:
5348
+ return renderFocus;
3682
5349
  case RenderFocusContext:
3683
5350
  return renderFocusContext;
3684
5351
  case RenderIncremental:
@@ -3723,8 +5390,11 @@ const renderEventListeners = () => {
3723
5390
  name: HandleFocus,
3724
5391
  params: ['handleFocus']
3725
5392
  }, {
3726
- name: HandleClickAt,
3727
- params: ['handleClickAt', ClientX, ClientY, TargetName]
5393
+ name: HandleClickLeftSide,
5394
+ params: ['handleClickLeftSide']
5395
+ }, {
5396
+ name: HandleClickRightSide,
5397
+ params: ['handleClickRightSide', ClientX, ClientY]
3728
5398
  }, {
3729
5399
  name: HandleMouseOverAt,
3730
5400
  params: ['handleMouseOverAt', ClientX, ClientY]
@@ -3735,15 +5405,16 @@ const renderEventListeners = () => {
3735
5405
  name: HandleMouseOutAt,
3736
5406
  params: ['handleMouseOutAt', ClientX, ClientY]
3737
5407
  }, {
3738
- name: HandleInput,
3739
- params: ['handleInput', TargetValue]
5408
+ name: HandleBeforeInput,
5409
+ params: ['handleBeforeInput', 'event.inputType', 'event.data'],
5410
+ preventDefault: true
3740
5411
  }, {
3741
5412
  name: HandleContextMenu,
3742
5413
  params: ['handleContextMenu', Button, ClientX, ClientY],
3743
5414
  preventDefault: true
3744
5415
  }, {
3745
5416
  name: HandleClickAction,
3746
- params: ['handleActionClick', TargetName]
5417
+ params: ['handleClickAction', TargetName]
3747
5418
  }, {
3748
5419
  name: HandleSashPointerDown,
3749
5420
  params: ['handleSashPointerDown', ClientX, ClientY],
@@ -3789,40 +5460,16 @@ const saveState = uid => {
3789
5460
  };
3790
5461
  };
3791
5462
 
3792
- const setDiffMode = (state, diffMode) => {
3793
- if (state.diffMode === diffMode) {
5463
+ const setFontFamily = (state, fontFamily) => {
5464
+ if (state.fontFamily === fontFamily) {
3794
5465
  return state;
3795
5466
  }
3796
- const totalLineCount = getTotalLineCount(diffMode, state.contentLeft, state.contentRight, state.errorLeftMessage, state.errorLeftCodeFrame, state.errorLeftStack, state.errorRightMessage, state.errorRightCodeFrame, state.errorRightStack, state.renderModeLeft, state.renderModeRight);
3797
- const scrollState = getScrollState(state.height, state.itemHeight, totalLineCount, state.minimumSliderSize, state.deltaY);
3798
- const nextState = {
3799
- ...state,
3800
- diffMode,
3801
- totalLineCount,
3802
- ...scrollState
3803
- };
3804
5467
  return {
3805
- ...nextState,
3806
- ...getVisibleLinesState({
3807
- contentLeft: nextState.contentLeft,
3808
- contentRight: nextState.contentRight,
3809
- inlineChanges: nextState.inlineChanges,
3810
- maxLineY: nextState.maxLineY,
3811
- minLineY: nextState.minLineY,
3812
- tokenizedLinesLeft: nextState.tokenizedLinesLeft,
3813
- tokenizedLinesRight: nextState.tokenizedLinesRight,
3814
- totalLineCountLeft: nextState.totalLineCountLeft,
3815
- totalLineCountRight: nextState.totalLineCountRight
3816
- })
5468
+ ...state,
5469
+ fontFamily
3817
5470
  };
3818
5471
  };
3819
5472
 
3820
- const getNextPaneSizes = (state, layout) => {
3821
- const totalPaneSize = state.leftWidth + state.rightWidth;
3822
- const ratio = totalPaneSize === 0 ? 0.5 : state.leftWidth / totalPaneSize;
3823
- const size = layout === 'vertical' ? state.height : state.width;
3824
- return getPaneSizes(size, ratio);
3825
- };
3826
5473
  const setLayout = (state, layout) => {
3827
5474
  if (state.layout === layout) {
3828
5475
  return state;
@@ -3830,7 +5477,7 @@ const setLayout = (state, layout) => {
3830
5477
  const {
3831
5478
  leftWidth,
3832
5479
  rightWidth
3833
- } = getNextPaneSizes(state, layout);
5480
+ } = getNextPaneSizes(state, layout, state.width, state.height);
3834
5481
  return {
3835
5482
  ...state,
3836
5483
  layout,
@@ -3841,12 +5488,34 @@ const setLayout = (state, layout) => {
3841
5488
  };
3842
5489
  };
3843
5490
 
5491
+ const showSearch = state => {
5492
+ return {
5493
+ ...state,
5494
+ searchVisible: true
5495
+ };
5496
+ };
5497
+
3844
5498
  const commandMap = {
3845
5499
  'Diff.getCommandIds': getCommandIds,
3846
5500
  'DiffView.create': create2,
5501
+ 'DiffView.deleteLeft': wrapCommand(deleteLeft),
5502
+ 'DiffView.deleteRight': wrapCommand(deleteRight),
3847
5503
  'DiffView.diff2': diff2,
3848
5504
  'DiffView.getCommandIds': getCommandIds,
5505
+ 'DiffView.getKeyBindings': getKeyBindings,
5506
+ 'DiffView.getMenuEntries': getMenuEntries,
5507
+ 'DiffView.getMenuEntries2': getMenuEntries2,
5508
+ 'DiffView.getMenuIds': getMenuIds,
5509
+ 'DiffView.handleBeforeInput': wrapCommand(handleBeforeInput),
5510
+ 'DiffView.handleClickAction': wrapCommand(handleClickAction),
5511
+ 'DiffView.handleClickAt': wrapCommand(handleClickAt),
5512
+ 'DiffView.handleClickLeftSide': wrapCommand(handleClickLeftSide),
5513
+ 'DiffView.handleClickRightSide': wrapCommand(handleClickRightSide),
3849
5514
  'DiffView.handleContextMenu': wrapCommand(handleContextMenu),
5515
+ 'DiffView.handleCopy': wrapCommand(handleCopy),
5516
+ 'DiffView.handleCut': wrapCommand(handleCut),
5517
+ 'DiffView.handleInput': wrapCommand(handleInput),
5518
+ 'DiffView.handlePaste': wrapCommand(handlePaste),
3850
5519
  'DiffView.handleResize': wrapCommand(handleResize),
3851
5520
  'DiffView.handleSashPointerDown': wrapCommand(handleSashPointerDown),
3852
5521
  'DiffView.handleSashPointerMove': wrapCommand(handleSashPointerMove),
@@ -3854,15 +5523,33 @@ const commandMap = {
3854
5523
  'DiffView.handleScrollBarPointerDown': wrapCommand(handleScrollBarPointerDown),
3855
5524
  'DiffView.handleScrollBarPointerMove': wrapCommand(handleScrollBarPointerMove),
3856
5525
  'DiffView.handleScrollBarPointerUp': wrapCommand(handleScrollBarPointerUp),
5526
+ 'DiffView.handleSearchInput': wrapCommand(handleSearchInput),
3857
5527
  'DiffView.handleWheel': wrapCommand(handleWheel),
5528
+ 'DiffView.handleWorkspaceChange': wrapCommand(handleWorkspaceChange),
5529
+ 'DiffView.hideSearch': wrapCommand(hideSearch),
3858
5530
  'DiffView.initialize': initialize,
5531
+ 'DiffView.insertLineBreak': wrapCommand(insertLineBreak),
5532
+ 'DiffView.jumpToNextChange': wrapCommand(jumpToNextChange),
5533
+ 'DiffView.jumpToPreviousChange': wrapCommand(jumpToPreviousChange),
3859
5534
  'DiffView.loadContent': wrapCommand(loadContent),
5535
+ 'DiffView.moveCursorDown': wrapCommand(moveCursorDown),
5536
+ 'DiffView.moveCursorLeft': wrapCommand(moveCursorLeft),
5537
+ 'DiffView.moveCursorRight': wrapCommand(moveCursorRight),
5538
+ 'DiffView.moveCursorToEndOfLine': wrapCommand(moveCursorToEndOfLine),
5539
+ 'DiffView.moveCursorToStartOfLine': wrapCommand(moveCursorToStartOfLine),
5540
+ 'DiffView.moveCursorUp': wrapCommand(moveCursorUp),
3860
5541
  'DiffView.render2': render2,
3861
5542
  'DiffView.renderEventListeners': renderEventListeners,
5543
+ 'DiffView.resize': wrapCommand(handleResize),
3862
5544
  'DiffView.saveState': saveState,
5545
+ 'DiffView.setCursorPosition': wrapCommand(setCursorPosition),
3863
5546
  'DiffView.setDiffMode': wrapCommand(setDiffMode),
5547
+ 'DiffView.setFontFamily': wrapCommand(setFontFamily),
3864
5548
  'DiffView.setLayout': wrapCommand(setLayout),
5549
+ 'DiffView.showSearch': wrapCommand(showSearch),
3865
5550
  'DiffView.terminate': terminate,
5551
+ 'DiffView.toggleDiffMode': wrapCommand(toggleDiffMode),
5552
+ 'DiffView.toggleWhitespace': wrapCommand(toggleWhitespace),
3866
5553
  'Initialize.initialize': initialize
3867
5554
  };
3868
5555
 
@@ -3871,7 +5558,7 @@ const listen = async () => {
3871
5558
  const rpc = await create$2({
3872
5559
  commandMap: commandMap
3873
5560
  });
3874
- set$3(rpc);
5561
+ set$2(rpc);
3875
5562
  };
3876
5563
 
3877
5564
  const main = async () => {