@codingame/monaco-vscode-api 1.78.8 → 1.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/README.md +2 -1
  2. package/dist/activity.d.ts +2902 -0
  3. package/dist/api.js +6 -5
  4. package/dist/assets/activityaction.css +224 -0
  5. package/dist/assets/activitybarpart.css +65 -0
  6. package/dist/assets/basepanelpart.css +221 -0
  7. package/dist/assets/callHierarchy.css +62 -0
  8. package/dist/assets/{sidebysideeditor.css → compositepart.css} +10 -2
  9. package/dist/assets/debugViewlet.css +337 -0
  10. package/dist/assets/explorerviewlet.css +129 -0
  11. package/dist/assets/hover.css +127 -0
  12. package/dist/assets/interactiveSession.css +340 -0
  13. package/dist/assets/menubar.css +111 -0
  14. package/dist/assets/menubarControl.css +61 -0
  15. package/dist/assets/notificationsCenter.css +3 -3
  16. package/dist/assets/panelpart.css +75 -0
  17. package/dist/assets/part.css +109 -0
  18. package/dist/assets/repl.css +145 -0
  19. package/dist/assets/sidebarpart.css +61 -0
  20. package/dist/assets/tunnelView.css +107 -0
  21. package/dist/assets/typeHierarchy.css +62 -0
  22. package/dist/assets/views.css +297 -0
  23. package/dist/collections.d.ts +7 -0
  24. package/dist/colorRegistry.d.ts +710 -0
  25. package/dist/contextkey.d.ts +330 -0
  26. package/dist/debugProtocol.d.ts +2343 -0
  27. package/dist/default-extensions/bat.js +5 -4
  28. package/dist/default-extensions/clojure.js +4 -3
  29. package/dist/default-extensions/coffeescript.js +5 -4
  30. package/dist/default-extensions/cpp.js +10 -9
  31. package/dist/default-extensions/csharp.js +5 -4
  32. package/dist/default-extensions/css.js +4 -3
  33. package/dist/default-extensions/dart.js +4 -3
  34. package/dist/default-extensions/diff.js +4 -3
  35. package/dist/default-extensions/docker.js +4 -3
  36. package/dist/default-extensions/fsharp.js +5 -4
  37. package/dist/default-extensions/go.js +4 -3
  38. package/dist/default-extensions/groovy.js +5 -4
  39. package/dist/default-extensions/handlebars.js +4 -3
  40. package/dist/default-extensions/hlsl.js +4 -3
  41. package/dist/default-extensions/html.js +6 -5
  42. package/dist/default-extensions/ini.js +5 -4
  43. package/dist/default-extensions/java.js +5 -4
  44. package/dist/default-extensions/javascript.js +8 -7
  45. package/dist/default-extensions/json.js +5 -4
  46. package/dist/default-extensions/julia.js +4 -3
  47. package/dist/default-extensions/latex.js +10 -9
  48. package/dist/default-extensions/less.js +4 -3
  49. package/dist/default-extensions/log.js +3 -2
  50. package/dist/default-extensions/lua.js +4 -3
  51. package/dist/default-extensions/make.js +4 -3
  52. package/dist/default-extensions/markdown-basics.js +5 -4
  53. package/dist/default-extensions/objective-c.js +5 -4
  54. package/dist/default-extensions/perl.js +6 -5
  55. package/dist/default-extensions/php.js +6 -5
  56. package/dist/default-extensions/powershell.js +4 -3
  57. package/dist/default-extensions/pug.js +4 -3
  58. package/dist/default-extensions/python.js +5 -4
  59. package/dist/default-extensions/r.js +4 -3
  60. package/dist/default-extensions/razor.js +4 -3
  61. package/dist/default-extensions/references-view.js +8 -0
  62. package/dist/default-extensions/ruby.js +4 -3
  63. package/dist/default-extensions/rust.js +4 -3
  64. package/dist/default-extensions/scss.js +5 -4
  65. package/dist/default-extensions/shaderlab.js +4 -3
  66. package/dist/default-extensions/shellscript.js +4 -3
  67. package/dist/default-extensions/sql.js +4 -3
  68. package/dist/default-extensions/swift.js +5 -4
  69. package/dist/default-extensions/theme-abyss.js +3 -2
  70. package/dist/default-extensions/theme-defaults.js +31 -10
  71. package/dist/default-extensions/theme-kimbie-dark.js +3 -2
  72. package/dist/default-extensions/theme-monokai-dimmed.js +3 -2
  73. package/dist/default-extensions/theme-monokai.js +3 -2
  74. package/dist/default-extensions/theme-quietlight.js +3 -2
  75. package/dist/default-extensions/theme-red.js +3 -2
  76. package/dist/default-extensions/theme-seti.js +5 -2
  77. package/dist/default-extensions/theme-solarized-dark.js +3 -2
  78. package/dist/default-extensions/theme-solarized-light.js +3 -2
  79. package/dist/default-extensions/theme-tomorrow-night-blue.js +3 -2
  80. package/dist/default-extensions/typescript-basics.js +8 -7
  81. package/dist/default-extensions/vb.js +5 -4
  82. package/dist/default-extensions/xml.js +6 -5
  83. package/dist/default-extensions/yaml.js +4 -3
  84. package/dist/editor.d.ts +322 -0
  85. package/dist/editorBrowser.d.ts +3128 -0
  86. package/dist/event.d.ts +581 -0
  87. package/dist/extension-tools-d0cfdea1.js +25603 -0
  88. package/dist/extensions.d.ts +20 -829
  89. package/dist/extensions.d2.ts +457 -0
  90. package/dist/extensions.js +100 -5
  91. package/dist/extensionsRegistry.d.ts +239 -0
  92. package/dist/files.d.ts +853 -0
  93. package/dist/instantiation.d.ts +59 -0
  94. package/dist/jsonSchema.d.ts +90 -0
  95. package/dist/keybinding.d.ts +622 -0
  96. package/dist/languageFeatures.d.ts +4762 -0
  97. package/dist/log.d.ts +150 -0
  98. package/dist/monaco.d.ts +42 -5195
  99. package/dist/override/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -0
  100. package/dist/rollup-extension-directory-plugin.d.ts +5 -2
  101. package/dist/rollup-extension-directory-plugin.js +74 -46
  102. package/dist/rollup-vsix-plugin.d.ts +4 -2
  103. package/dist/rollup-vsix-plugin.js +57 -19
  104. package/dist/service-override/audioCue.d.ts +4 -19
  105. package/dist/service-override/configuration.d.ts +10 -628
  106. package/dist/service-override/configuration.js +16 -4
  107. package/dist/service-override/debug.d.ts +4 -19
  108. package/dist/service-override/dialogs.d.ts +3 -3
  109. package/dist/service-override/files.d.ts +53 -818
  110. package/dist/service-override/files.js +37 -15
  111. package/dist/service-override/keybindings.d.ts +9 -11
  112. package/dist/service-override/languages.d.ts +4 -74
  113. package/dist/service-override/layout.js +80 -6
  114. package/dist/service-override/modelEditor.d.ts +9 -557
  115. package/dist/service-override/modelEditor.js +5 -3
  116. package/dist/service-override/notifications.d.ts +3 -3
  117. package/dist/service-override/preferences.d.ts +3 -3
  118. package/dist/service-override/snippets.d.ts +3 -3
  119. package/dist/service-override/textmate.d.ts +3 -11
  120. package/dist/service-override/theme.d.ts +4 -16
  121. package/dist/service-override/views.d.ts +502 -0
  122. package/dist/service-override/views.js +177 -0
  123. package/dist/services.d.ts +1946 -16903
  124. package/dist/services.js +3 -0
  125. package/dist/standaloneServices.d.ts +14 -0
  126. package/dist/themables.d.ts +28 -0
  127. package/dist/uri.d.ts +151 -0
  128. package/dist/vscode/vs/base/browser/ui/menu/menubar.js +831 -0
  129. package/dist/vscode/vs/base/browser/ui/splitview/paneview.js +151 -2
  130. package/dist/vscode/vs/base/browser/ui/tree/treeDefaults.js +14 -0
  131. package/dist/vscode/vs/platform/backup/common/backup.js +7 -0
  132. package/dist/vscode/vs/platform/configuration/common/configurationRegistry.js +10 -0
  133. package/dist/vscode/vs/platform/credentials/common/credentials.js +3 -0
  134. package/dist/vscode/vs/platform/extensionManagement/common/extensionManagementUtil.js +4 -1
  135. package/dist/vscode/vs/platform/extensionManagement/common/extensionStorage.js +174 -0
  136. package/dist/vscode/vs/platform/files/common/fileService.js +2 -11
  137. package/dist/vscode/vs/platform/files/common/files.js +28 -0
  138. package/dist/vscode/vs/platform/files/common/io.js +2 -7
  139. package/dist/vscode/vs/platform/languagePacks/common/languagePacks.js +3 -0
  140. package/dist/vscode/vs/platform/remote/common/remoteAuthorityResolver.js +3 -1
  141. package/dist/vscode/vs/platform/storage/common/storage.js +332 -0
  142. package/dist/vscode/vs/platform/telemetry/common/telemetryUtils.js +2 -1
  143. package/dist/vscode/vs/platform/tunnel/common/tunnel.js +29 -1
  144. package/dist/vscode/vs/platform/update/common/update.js +3 -0
  145. package/dist/vscode/vs/platform/window/common/window.js +33 -0
  146. package/dist/vscode/vs/workbench/api/browser/mainThreadBulkEdits.js +18 -1
  147. package/dist/vscode/vs/workbench/api/browser/mainThreadDebugService.js +21 -0
  148. package/dist/vscode/vs/workbench/api/browser/mainThreadExtensionService.js +1 -1
  149. package/dist/vscode/vs/workbench/api/browser/mainThreadLanguageFeatures.js +13 -10
  150. package/dist/vscode/vs/workbench/api/browser/mainThreadLocalization.js +33 -0
  151. package/dist/vscode/vs/workbench/api/browser/mainThreadStorage.js +69 -0
  152. package/dist/vscode/vs/workbench/api/browser/mainThreadTreeViews.js +300 -0
  153. package/dist/vscode/vs/workbench/api/browser/mainThreadWorkspace.js +21 -1
  154. package/dist/vscode/vs/workbench/api/browser/viewsExtensionPoint.js +699 -0
  155. package/dist/vscode/vs/workbench/api/common/extHost.protocol.js +5 -1
  156. package/dist/vscode/vs/workbench/api/common/extHostConfiguration.js +13 -8
  157. package/dist/vscode/vs/workbench/api/common/extHostDebugService.js +31 -0
  158. package/dist/vscode/vs/workbench/api/common/extHostExtensionService.js +4 -4
  159. package/dist/vscode/vs/workbench/api/common/extHostLanguageFeatures.js +54 -43
  160. package/dist/vscode/vs/workbench/api/common/extHostTreeViews.js +823 -0
  161. package/dist/vscode/vs/workbench/api/common/extHostTypeConverters.js +33 -13
  162. package/dist/vscode/vs/workbench/api/common/extHostTypes.js +29 -1
  163. package/dist/vscode/vs/workbench/api/common/extHostVariableResolverService.js +3 -3
  164. package/dist/vscode/vs/workbench/api/common/extHostWorkspace.js +8 -0
  165. package/dist/vscode/vs/workbench/api/common/shared/dataTransferCache.js +1 -1
  166. package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +318 -0
  167. package/dist/vscode/vs/workbench/browser/actions/listCommands.js +602 -0
  168. package/dist/vscode/vs/workbench/browser/actions/windowActions.js +271 -0
  169. package/dist/vscode/vs/workbench/browser/actions/workspaceActions.js +250 -0
  170. package/dist/vscode/vs/workbench/browser/actions/workspaceCommands.js +6 -0
  171. package/dist/vscode/vs/workbench/browser/composite.js +49 -1
  172. package/dist/vscode/vs/workbench/browser/dnd.js +395 -0
  173. package/dist/vscode/vs/workbench/browser/labels.js +426 -0
  174. package/dist/vscode/vs/workbench/browser/panecomposite.js +158 -0
  175. package/dist/vscode/vs/workbench/browser/part.js +84 -0
  176. package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarActions.js +582 -0
  177. package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarPart.js +784 -0
  178. package/dist/vscode/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +146 -0
  179. package/dist/vscode/vs/workbench/browser/parts/compositeBar.js +687 -0
  180. package/dist/vscode/vs/workbench/browser/parts/compositeBarActions.js +578 -0
  181. package/dist/vscode/vs/workbench/browser/parts/compositePart.js +319 -0
  182. package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +7 -7
  183. package/dist/vscode/vs/workbench/browser/parts/editor/editorCommands.js +4 -1121
  184. package/dist/vscode/vs/workbench/browser/parts/panel/panelActions.js +381 -0
  185. package/dist/vscode/vs/workbench/browser/parts/panel/panelPart.js +753 -0
  186. package/dist/vscode/vs/workbench/browser/parts/sidebar/sidebarPart.js +217 -0
  187. package/dist/vscode/vs/workbench/browser/parts/titlebar/menubarControl.js +600 -0
  188. package/dist/vscode/vs/workbench/browser/parts/views/checkbox.js +80 -0
  189. package/dist/vscode/vs/workbench/browser/parts/views/treeView.js +1475 -0
  190. package/dist/vscode/vs/workbench/browser/parts/views/viewFilter.js +181 -0
  191. package/dist/vscode/vs/workbench/browser/parts/views/viewPane.js +50 -2
  192. package/dist/vscode/vs/workbench/browser/parts/views/viewPaneContainer.js +1020 -0
  193. package/dist/vscode/vs/workbench/browser/parts/views/viewsService.js +562 -0
  194. package/dist/vscode/vs/workbench/browser/parts/views/viewsViewlet.js +109 -0
  195. package/dist/vscode/vs/workbench/browser/style.js +43 -0
  196. package/dist/vscode/vs/workbench/common/activity.js +3 -0
  197. package/dist/vscode/vs/workbench/common/contextkeys.js +31 -9
  198. package/dist/vscode/vs/workbench/common/editor/textEditorModel.js +7 -8
  199. package/dist/vscode/vs/workbench/common/editor.js +1 -47
  200. package/dist/vscode/vs/workbench/common/theme.js +38 -25
  201. package/dist/vscode/vs/workbench/common/views.js +280 -1
  202. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkCellEdits.js +62 -1
  203. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +305 -0
  204. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.js +373 -0
  205. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +257 -0
  206. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +259 -0
  207. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +337 -0
  208. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +119 -0
  209. package/dist/vscode/vs/workbench/contrib/debug/browser/baseDebugView.js +8 -2
  210. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +12 -4
  211. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointWidget.js +5 -0
  212. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointsView.js +585 -8
  213. package/dist/vscode/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +5 -1
  214. package/dist/vscode/vs/workbench/contrib/debug/browser/callStackView.js +954 -0
  215. package/dist/vscode/vs/workbench/contrib/debug/browser/debug.contribution.js +151 -145
  216. package/dist/vscode/vs/workbench/contrib/debug/browser/debugANSIHandling.js +345 -0
  217. package/dist/vscode/vs/workbench/contrib/debug/browser/debugCommands.js +79 -3
  218. package/dist/vscode/vs/workbench/contrib/debug/browser/debugEditorActions.js +522 -0
  219. package/dist/vscode/vs/workbench/contrib/debug/browser/debugEditorContribution.js +10 -9
  220. package/dist/vscode/vs/workbench/contrib/debug/browser/debugHover.js +15 -7
  221. package/dist/vscode/vs/workbench/contrib/debug/browser/debugIcons.js +28 -1
  222. package/dist/vscode/vs/workbench/contrib/debug/browser/debugSession.js +72 -65
  223. package/dist/vscode/vs/workbench/contrib/debug/browser/debugViewlet.js +166 -0
  224. package/dist/vscode/vs/workbench/contrib/debug/browser/linkDetector.js +10 -10
  225. package/dist/vscode/vs/workbench/contrib/debug/browser/loadedScriptsView.js +629 -0
  226. package/dist/vscode/vs/workbench/contrib/debug/browser/repl.js +908 -0
  227. package/dist/vscode/vs/workbench/contrib/debug/browser/replFilter.js +46 -0
  228. package/dist/vscode/vs/workbench/contrib/debug/browser/replViewer.js +330 -0
  229. package/dist/vscode/vs/workbench/contrib/debug/browser/variablesView.js +295 -10
  230. package/dist/vscode/vs/workbench/contrib/debug/browser/watchExpressionsView.js +411 -0
  231. package/dist/vscode/vs/workbench/contrib/debug/browser/welcomeView.js +85 -0
  232. package/dist/vscode/vs/workbench/contrib/debug/common/debug.js +98 -1
  233. package/dist/vscode/vs/workbench/contrib/debug/common/debugModel.js +10 -1
  234. package/dist/vscode/vs/workbench/contrib/debug/common/debugViewModel.js +9 -1
  235. package/dist/vscode/vs/workbench/contrib/debug/common/replModel.js +51 -1
  236. package/dist/vscode/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -0
  237. package/dist/vscode/vs/workbench/contrib/files/browser/explorerViewlet.js +254 -0
  238. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.contribution.js +207 -0
  239. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +1119 -0
  240. package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +595 -0
  241. package/dist/vscode/vs/workbench/contrib/files/browser/fileConstants.js +26 -0
  242. package/dist/vscode/vs/workbench/contrib/files/browser/fileImportExport.js +708 -0
  243. package/dist/vscode/vs/workbench/contrib/files/browser/files.contribution.js +368 -13
  244. package/dist/vscode/vs/workbench/contrib/files/browser/files.js +88 -1
  245. package/dist/vscode/vs/workbench/contrib/files/browser/views/emptyView.js +88 -0
  246. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +73 -0
  247. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerView.js +796 -0
  248. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerViewer.js +1209 -0
  249. package/dist/vscode/vs/workbench/contrib/files/common/files.js +194 -3
  250. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionFollowups.js +30 -0
  251. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionInputPart.js +196 -0
  252. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionListRenderer.js +622 -0
  253. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionOptions.js +77 -0
  254. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.js +311 -0
  255. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionContextKeys.js +48 -0
  256. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionService.js +8 -0
  257. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionViewModel.js +207 -0
  258. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionWidgetHistoryService.js +3 -0
  259. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionWordCounter.js +25 -0
  260. package/dist/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser.js +27 -0
  261. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookCommon.js +79 -1
  262. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookEditorInput.js +249 -0
  263. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookEditorModelResolverService.js +3 -0
  264. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookService.js +10 -0
  265. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +117 -19
  266. package/dist/vscode/vs/workbench/contrib/remote/browser/remoteExplorer.js +186 -0
  267. package/dist/vscode/vs/workbench/contrib/remote/browser/remoteIcons.js +23 -0
  268. package/dist/vscode/vs/workbench/contrib/remote/browser/tunnelView.js +1636 -0
  269. package/dist/vscode/vs/workbench/contrib/scm/common/scm.js +2 -0
  270. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +167 -0
  271. package/dist/vscode/vs/workbench/contrib/testing/common/testId.js +5 -2
  272. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +244 -0
  273. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +332 -0
  274. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +117 -0
  275. package/dist/vscode/vs/workbench/contrib/webview/browser/webview.js +41 -0
  276. package/dist/vscode/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +20 -0
  277. package/dist/vscode/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +231 -0
  278. package/dist/vscode/vs/workbench/contrib/webviewView/browser/webviewViewService.js +3 -0
  279. package/dist/vscode/vs/workbench/services/actions/common/menusExtensionPoint.js +179 -1
  280. package/dist/vscode/vs/workbench/services/activity/browser/activityService.js +94 -0
  281. package/dist/vscode/vs/workbench/services/activity/common/activity.js +15 -1
  282. package/dist/vscode/vs/workbench/services/authentication/browser/authenticationService.js +35 -0
  283. package/dist/vscode/vs/workbench/services/authentication/common/authentication.js +3 -0
  284. package/dist/vscode/vs/workbench/services/configuration/browser/configuration.js +1 -1
  285. package/dist/vscode/vs/workbench/services/configurationResolver/common/variableResolver.js +13 -13
  286. package/dist/vscode/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +3 -3
  287. package/dist/vscode/vs/workbench/services/extensions/common/extensionStorageMigration.js +56 -0
  288. package/dist/vscode/vs/workbench/services/extensions/common/extensions.js +1 -1
  289. package/dist/vscode/vs/workbench/services/extensions/common/extensionsApiProposals.js +8 -0
  290. package/dist/vscode/vs/workbench/services/hover/browser/hover.js +3 -0
  291. package/dist/vscode/vs/workbench/services/hover/browser/hoverService.js +149 -0
  292. package/dist/vscode/vs/workbench/services/hover/browser/hoverWidget.js +514 -0
  293. package/dist/vscode/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +29 -29
  294. package/dist/vscode/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +11 -11
  295. package/dist/vscode/vs/workbench/services/language/common/languageService.js +1 -1
  296. package/dist/vscode/vs/workbench/services/layout/browser/layoutService.js +9 -1
  297. package/dist/vscode/vs/workbench/services/remote/common/remoteExplorerService.js +782 -0
  298. package/dist/vscode/vs/workbench/services/search/common/ignoreFile.js +102 -0
  299. package/dist/vscode/vs/workbench/services/search/common/queryBuilder.js +26 -8
  300. package/dist/vscode/vs/workbench/services/search/common/search.js +4 -3
  301. package/dist/vscode/vs/workbench/services/semanticSimilarity/common/semanticSimilarityService.js +3 -0
  302. package/dist/vscode/vs/workbench/services/textMate/browser/workerHost/textMateWorkerTokenizerController.js +6 -10
  303. package/dist/vscode/vs/workbench/services/textfile/common/textfiles.js +1 -1
  304. package/dist/vscode/vs/workbench/services/themes/browser/fileIconThemeData.js +2 -2
  305. package/dist/vscode/vs/workbench/services/themes/browser/productIconThemeData.js +4 -5
  306. package/dist/vscode/vs/workbench/services/themes/browser/workbenchThemeService.js +16 -10
  307. package/dist/vscode/vs/workbench/services/themes/common/themeConfiguration.js +36 -38
  308. package/dist/vscode/vs/workbench/services/themes/common/themeExtensionPoints.js +4 -8
  309. package/dist/vscode/vs/workbench/services/themes/common/workbenchThemeService.js +22 -1
  310. package/dist/vscode/vs/workbench/services/views/browser/treeViewsService.js +3 -0
  311. package/dist/vscode/vs/workbench/services/views/browser/viewDescriptorService.js +688 -0
  312. package/dist/vscode/vs/workbench/services/views/common/treeViewsService.js +20 -0
  313. package/dist/vscode/vs/workbench/services/views/common/viewContainerModel.js +613 -0
  314. package/dist/vscode-default-extensions/bat/language-configuration.json.extensionResource.js +2 -0
  315. package/dist/vscode-default-extensions/bat/snippets/batchfile.code-snippets.extensionResource.js +2 -0
  316. package/dist/vscode-default-extensions/bat/syntaxes/batchfile.tmLanguage.json.extensionResource.js +2 -0
  317. package/dist/vscode-default-extensions/clojure/language-configuration.json.extensionResource.js +2 -0
  318. package/dist/vscode-default-extensions/clojure/syntaxes/clojure.tmLanguage.json.extensionResource.js +2 -0
  319. package/dist/vscode-default-extensions/coffeescript/language-configuration.json.extensionResource.js +2 -0
  320. package/dist/vscode-default-extensions/coffeescript/snippets/coffeescript.code-snippets.extensionResource.js +2 -0
  321. package/dist/vscode-default-extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json.extensionResource.js +2 -0
  322. package/dist/vscode-default-extensions/cpp/language-configuration.json.extensionResource.js +2 -0
  323. package/dist/vscode-default-extensions/cpp/snippets/c.code-snippets.extensionResource.js +2 -0
  324. package/dist/vscode-default-extensions/cpp/snippets/cpp.code-snippets.extensionResource.js +2 -0
  325. package/dist/vscode-default-extensions/cpp/syntaxes/c.tmLanguage.json.extensionResource.js +2 -0
  326. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json.extensionResource.js +2 -0
  327. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.tmLanguage.json.extensionResource.js +2 -0
  328. package/dist/vscode-default-extensions/cpp/syntaxes/cuda-cpp.tmLanguage.json.extensionResource.js +2 -0
  329. package/dist/vscode-default-extensions/cpp/syntaxes/{platform.tmLanguage.json.js → platform.tmLanguage.json.extensionResource.js} +2 -2
  330. package/dist/vscode-default-extensions/csharp/language-configuration.json.extensionResource.js +2 -0
  331. package/dist/vscode-default-extensions/csharp/snippets/csharp.code-snippets.extensionResource.js +2 -0
  332. package/dist/vscode-default-extensions/csharp/syntaxes/csharp.tmLanguage.json.extensionResource.js +2 -0
  333. package/dist/vscode-default-extensions/css/language-configuration.json.extensionResource.js +2 -0
  334. package/dist/vscode-default-extensions/css/syntaxes/css.tmLanguage.json.extensionResource.js +2 -0
  335. package/dist/vscode-default-extensions/dart/language-configuration.json.extensionResource.js +2 -0
  336. package/dist/vscode-default-extensions/dart/syntaxes/dart.tmLanguage.json.extensionResource.js +2 -0
  337. package/dist/vscode-default-extensions/diff/language-configuration.json.extensionResource.js +2 -0
  338. package/dist/vscode-default-extensions/diff/syntaxes/diff.tmLanguage.json.extensionResource.js +2 -0
  339. package/dist/vscode-default-extensions/docker/language-configuration.json.extensionResource.js +2 -0
  340. package/dist/vscode-default-extensions/docker/syntaxes/docker.tmLanguage.json.extensionResource.js +2 -0
  341. package/dist/vscode-default-extensions/fsharp/language-configuration.json.extensionResource.js +2 -0
  342. package/dist/vscode-default-extensions/fsharp/snippets/fsharp.code-snippets.extensionResource.js +2 -0
  343. package/dist/vscode-default-extensions/fsharp/syntaxes/fsharp.tmLanguage.json.extensionResource.js +2 -0
  344. package/dist/vscode-default-extensions/go/language-configuration.json.extensionResource.js +2 -0
  345. package/dist/vscode-default-extensions/go/syntaxes/go.tmLanguage.json.extensionResource.js +2 -0
  346. package/dist/vscode-default-extensions/groovy/language-configuration.json.extensionResource.js +2 -0
  347. package/dist/vscode-default-extensions/groovy/snippets/groovy.code-snippets.extensionResource.js +2 -0
  348. package/dist/vscode-default-extensions/groovy/syntaxes/groovy.tmLanguage.json.extensionResource.js +2 -0
  349. package/dist/vscode-default-extensions/handlebars/language-configuration.json.extensionResource.js +2 -0
  350. package/dist/vscode-default-extensions/handlebars/syntaxes/Handlebars.tmLanguage.json.extensionResource.js +2 -0
  351. package/dist/vscode-default-extensions/hlsl/language-configuration.json.extensionResource.js +2 -0
  352. package/dist/vscode-default-extensions/hlsl/syntaxes/hlsl.tmLanguage.json.extensionResource.js +2 -0
  353. package/dist/vscode-default-extensions/html/language-configuration.json.extensionResource.js +2 -0
  354. package/dist/vscode-default-extensions/html/snippets/html.code-snippets.extensionResource.js +2 -0
  355. package/dist/vscode-default-extensions/html/syntaxes/html-derivative.tmLanguage.json.extensionResource.js +2 -0
  356. package/dist/vscode-default-extensions/html/syntaxes/html.tmLanguage.json.extensionResource.js +2 -0
  357. package/dist/vscode-default-extensions/ini/ini.language-configuration.json.extensionResource.js +2 -0
  358. package/dist/vscode-default-extensions/ini/properties.language-configuration.json.extensionResource.js +2 -0
  359. package/dist/vscode-default-extensions/ini/syntaxes/ini.tmLanguage.json.extensionResource.js +2 -0
  360. package/dist/vscode-default-extensions/java/language-configuration.json.extensionResource.js +2 -0
  361. package/dist/vscode-default-extensions/java/snippets/java.code-snippets.extensionResource.js +2 -0
  362. package/dist/vscode-default-extensions/java/syntaxes/java.tmLanguage.json.extensionResource.js +2 -0
  363. package/dist/vscode-default-extensions/javascript/javascript-language-configuration.json.extensionResource.js +2 -0
  364. package/dist/vscode-default-extensions/javascript/snippets/javascript.code-snippets.extensionResource.js +2 -0
  365. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScript.tmLanguage.json.extensionResource.js +2 -0
  366. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json.extensionResource.js +2 -0
  367. package/dist/vscode-default-extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage.extensionResource.js +2 -0
  368. package/dist/vscode-default-extensions/javascript/tags-language-configuration.json.extensionResource.js +2 -0
  369. package/dist/vscode-default-extensions/json/language-configuration.json.extensionResource.js +2 -0
  370. package/dist/vscode-default-extensions/json/syntaxes/JSON.tmLanguage.json.extensionResource.js +2 -0
  371. package/dist/vscode-default-extensions/json/syntaxes/JSONC.tmLanguage.json.extensionResource.js +2 -0
  372. package/dist/vscode-default-extensions/julia/language-configuration.json.extensionResource.js +2 -0
  373. package/dist/vscode-default-extensions/julia/syntaxes/julia.tmLanguage.json.extensionResource.js +2 -0
  374. package/dist/vscode-default-extensions/latex/latex-cpp-embedded-language-configuration.json.extensionResource.js +2 -0
  375. package/dist/vscode-default-extensions/latex/latex-language-configuration.json.extensionResource.js +2 -0
  376. package/dist/vscode-default-extensions/latex/markdown-latex-combined-language-configuration.json.extensionResource.js +2 -0
  377. package/dist/vscode-default-extensions/latex/syntaxes/Bibtex.tmLanguage.json.extensionResource.js +2 -0
  378. package/dist/vscode-default-extensions/latex/syntaxes/LaTeX.tmLanguage.json.extensionResource.js +2 -0
  379. package/dist/vscode-default-extensions/latex/syntaxes/TeX.tmLanguage.json.extensionResource.js +2 -0
  380. package/dist/vscode-default-extensions/latex/syntaxes/cpp-grammar-bailout.tmLanguage.json.extensionResource.js +2 -0
  381. package/dist/vscode-default-extensions/latex/syntaxes/markdown-latex-combined.tmLanguage.json.extensionResource.js +2 -0
  382. package/dist/vscode-default-extensions/less/language-configuration.json.extensionResource.js +2 -0
  383. package/dist/vscode-default-extensions/less/syntaxes/less.tmLanguage.json.extensionResource.js +2 -0
  384. package/dist/vscode-default-extensions/log/syntaxes/log.tmLanguage.json.extensionResource.js +2 -0
  385. package/dist/vscode-default-extensions/lua/language-configuration.json.extensionResource.js +2 -0
  386. package/dist/vscode-default-extensions/lua/syntaxes/lua.tmLanguage.json.extensionResource.js +2 -0
  387. package/dist/vscode-default-extensions/make/language-configuration.json.extensionResource.js +2 -0
  388. package/dist/vscode-default-extensions/make/syntaxes/make.tmLanguage.json.extensionResource.js +2 -0
  389. package/dist/vscode-default-extensions/markdown-basics/language-configuration.json.extensionResource.js +2 -0
  390. package/dist/vscode-default-extensions/markdown-basics/snippets/markdown.code-snippets.extensionResource.js +2 -0
  391. package/dist/vscode-default-extensions/markdown-basics/syntaxes/markdown.tmLanguage.json.extensionResource.js +2 -0
  392. package/dist/vscode-default-extensions/objective-c/language-configuration.json.extensionResource.js +2 -0
  393. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c.tmLanguage.json.extensionResource.js +2 -0
  394. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c__.tmLanguage.json.extensionResource.js +2 -0
  395. package/dist/vscode-default-extensions/perl/perl.language-configuration.json.extensionResource.js +2 -0
  396. package/dist/vscode-default-extensions/perl/perl6.language-configuration.json.extensionResource.js +2 -0
  397. package/dist/vscode-default-extensions/perl/syntaxes/perl.tmLanguage.json.extensionResource.js +2 -0
  398. package/dist/vscode-default-extensions/perl/syntaxes/perl6.tmLanguage.json.extensionResource.js +2 -0
  399. package/dist/vscode-default-extensions/php/language-configuration.json.extensionResource.js +2 -0
  400. package/dist/vscode-default-extensions/php/snippets/php.code-snippets.extensionResource.js +2 -0
  401. package/dist/vscode-default-extensions/php/syntaxes/html.tmLanguage.json.extensionResource.js +2 -0
  402. package/dist/vscode-default-extensions/php/syntaxes/php.tmLanguage.json.extensionResource.js +2 -0
  403. package/dist/vscode-default-extensions/powershell/language-configuration.json.extensionResource.js +2 -0
  404. package/dist/vscode-default-extensions/powershell/syntaxes/powershell.tmLanguage.json.extensionResource.js +2 -0
  405. package/dist/vscode-default-extensions/pug/language-configuration.json.extensionResource.js +2 -0
  406. package/dist/vscode-default-extensions/pug/syntaxes/pug.tmLanguage.json.extensionResource.js +2 -0
  407. package/dist/vscode-default-extensions/python/language-configuration.json.extensionResource.js +2 -0
  408. package/dist/vscode-default-extensions/python/syntaxes/MagicPython.tmLanguage.json.extensionResource.js +2 -0
  409. package/dist/vscode-default-extensions/python/syntaxes/MagicRegExp.tmLanguage.json.extensionResource.js +2 -0
  410. package/dist/vscode-default-extensions/r/language-configuration.json.extensionResource.js +2 -0
  411. package/dist/vscode-default-extensions/r/syntaxes/r.tmLanguage.json.extensionResource.js +2 -0
  412. package/dist/vscode-default-extensions/razor/language-configuration.json.extensionResource.js +2 -0
  413. package/dist/vscode-default-extensions/razor/syntaxes/cshtml.tmLanguage.json.extensionResource.js +2 -0
  414. package/dist/vscode-default-extensions/references-view/dist/extension.js.extensionResource.js +2 -0
  415. package/dist/vscode-default-extensions/references-view/package.json.js +2 -0
  416. package/dist/vscode-default-extensions/ruby/language-configuration.json.extensionResource.js +2 -0
  417. package/dist/vscode-default-extensions/ruby/syntaxes/ruby.tmLanguage.json.extensionResource.js +2 -0
  418. package/dist/vscode-default-extensions/rust/language-configuration.json.extensionResource.js +2 -0
  419. package/dist/vscode-default-extensions/rust/syntaxes/rust.tmLanguage.json.extensionResource.js +2 -0
  420. package/dist/vscode-default-extensions/scss/language-configuration.json.extensionResource.js +2 -0
  421. package/dist/vscode-default-extensions/scss/syntaxes/sassdoc.tmLanguage.json.extensionResource.js +2 -0
  422. package/dist/vscode-default-extensions/scss/syntaxes/scss.tmLanguage.json.extensionResource.js +2 -0
  423. package/dist/vscode-default-extensions/shaderlab/language-configuration.json.extensionResource.js +2 -0
  424. package/dist/vscode-default-extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json.extensionResource.js +2 -0
  425. package/dist/vscode-default-extensions/shellscript/language-configuration.json.extensionResource.js +2 -0
  426. package/dist/vscode-default-extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json.extensionResource.js +2 -0
  427. package/dist/vscode-default-extensions/sql/language-configuration.json.extensionResource.js +2 -0
  428. package/dist/vscode-default-extensions/sql/syntaxes/sql.tmLanguage.json.extensionResource.js +2 -0
  429. package/dist/vscode-default-extensions/swift/language-configuration.json.extensionResource.js +2 -0
  430. package/dist/vscode-default-extensions/swift/snippets/swift.code-snippets.extensionResource.js +2 -0
  431. package/dist/vscode-default-extensions/swift/syntaxes/swift.tmLanguage.json.extensionResource.js +2 -0
  432. package/dist/vscode-default-extensions/theme-abyss/themes/abyss-color-theme.json.extensionResource.js +2 -0
  433. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/document-dark.svg.extensionResource.js +2 -0
  434. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/document-light.svg.extensionResource.js +2 -0
  435. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-dark.svg.extensionResource.js +2 -0
  436. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-light.svg.extensionResource.js +2 -0
  437. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-open-dark.svg.extensionResource.js +2 -0
  438. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-open-light.svg.extensionResource.js +2 -0
  439. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-dark.svg.extensionResource.js +2 -0
  440. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-light.svg.extensionResource.js +2 -0
  441. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-open-dark.svg.extensionResource.js +2 -0
  442. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-open-light.svg.extensionResource.js +2 -0
  443. package/dist/vscode-default-extensions/theme-defaults/fileicons/vs_minimal-icon-theme.json.extensionResource.js +2 -0
  444. package/dist/vscode-default-extensions/theme-defaults/package.json.js +1 -1
  445. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus.json.extensionResource.js +2 -0
  446. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus_experimental.json.extensionResource.js +2 -0
  447. package/dist/vscode-default-extensions/theme-defaults/themes/dark_vs.json.extensionResource.js +2 -0
  448. package/dist/vscode-default-extensions/theme-defaults/themes/hc_black.json.extensionResource.js +2 -0
  449. package/dist/vscode-default-extensions/theme-defaults/themes/hc_light.json.extensionResource.js +2 -0
  450. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus.json.extensionResource.js +2 -0
  451. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus_experimental.json.extensionResource.js +2 -0
  452. package/dist/vscode-default-extensions/theme-defaults/themes/light_vs.json.extensionResource.js +2 -0
  453. package/dist/vscode-default-extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json.extensionResource.js +2 -0
  454. package/dist/vscode-default-extensions/theme-monokai/themes/monokai-color-theme.json.extensionResource.js +2 -0
  455. package/dist/vscode-default-extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json.extensionResource.js +2 -0
  456. package/dist/vscode-default-extensions/theme-quietlight/themes/quietlight-color-theme.json.extensionResource.js +2 -0
  457. package/dist/vscode-default-extensions/theme-red/themes/Red-color-theme.json.extensionResource.js +2 -0
  458. package/dist/vscode-default-extensions/theme-seti/icons/seti.woff.extensionResource.js +2 -0
  459. package/dist/vscode-default-extensions/theme-seti/icons/vs-seti-icon-theme.json.extensionResource.js +2 -0
  460. package/dist/vscode-default-extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json.extensionResource.js +2 -0
  461. package/dist/vscode-default-extensions/theme-solarized-light/themes/solarized-light-color-theme.json.extensionResource.js +2 -0
  462. package/dist/vscode-default-extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json.extensionResource.js +2 -0
  463. package/dist/vscode-default-extensions/typescript-basics/language-configuration.json.extensionResource.js +2 -0
  464. package/dist/vscode-default-extensions/typescript-basics/snippets/typescript.code-snippets.extensionResource.js +2 -0
  465. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json.extensionResource.js +2 -0
  466. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json.extensionResource.js +2 -0
  467. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json.extensionResource.js +2 -0
  468. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json.extensionResource.js +2 -0
  469. package/dist/vscode-default-extensions/vb/language-configuration.json.extensionResource.js +2 -0
  470. package/dist/vscode-default-extensions/vb/snippets/vb.code-snippets.extensionResource.js +2 -0
  471. package/dist/vscode-default-extensions/vb/syntaxes/asp-vb-net.tmlanguage.json.extensionResource.js +2 -0
  472. package/dist/vscode-default-extensions/xml/syntaxes/xml.tmLanguage.json.extensionResource.js +2 -0
  473. package/dist/vscode-default-extensions/xml/syntaxes/xsl.tmLanguage.json.extensionResource.js +2 -0
  474. package/dist/vscode-default-extensions/xml/xml.language-configuration.json.extensionResource.js +2 -0
  475. package/dist/vscode-default-extensions/xml/xsl.language-configuration.json.extensionResource.js +2 -0
  476. package/dist/vscode-default-extensions/yaml/language-configuration.json.extensionResource.js +2 -0
  477. package/dist/vscode-default-extensions/yaml/syntaxes/yaml.tmLanguage.json.extensionResource.js +2 -0
  478. package/dist/vscode-services/extHost.js +28 -5
  479. package/dist/vscode-services/l10n.js +26 -0
  480. package/dist/vscode-services/missing-services.js +64 -12
  481. package/dist/vscode-services/window.js +23 -5
  482. package/dist/workbenchThemeService.d.ts +20 -0
  483. package/dist/workspace.d.ts +141 -0
  484. package/monaco-editor-treemending.patch +1134 -1902
  485. package/package.json +28 -16
  486. package/dist/default-extensions/typescript-language-features.js +0 -6
  487. package/dist/extension-tools-b68a64de.js +0 -1024
  488. package/dist/vscode/vs/workbench/browser/parts/editor/editorPane.js +0 -242
  489. package/dist/vscode/vs/workbench/browser/parts/editor/editorWithViewState.js +0 -139
  490. package/dist/vscode/vs/workbench/browser/parts/editor/sideBySideEditor.js +0 -387
  491. package/dist/vscode/vs/workbench/browser/parts/editor/textDiffEditor.js +0 -289
  492. package/dist/vscode-default-extensions/bat/language-configuration.json.js +0 -2
  493. package/dist/vscode-default-extensions/bat/snippets/batchfile.code-snippets.js +0 -2
  494. package/dist/vscode-default-extensions/bat/syntaxes/batchfile.tmLanguage.json.js +0 -2
  495. package/dist/vscode-default-extensions/clojure/language-configuration.json.js +0 -2
  496. package/dist/vscode-default-extensions/clojure/syntaxes/clojure.tmLanguage.json.js +0 -2
  497. package/dist/vscode-default-extensions/coffeescript/language-configuration.json.js +0 -2
  498. package/dist/vscode-default-extensions/coffeescript/snippets/coffeescript.code-snippets.js +0 -2
  499. package/dist/vscode-default-extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json.js +0 -2
  500. package/dist/vscode-default-extensions/cpp/language-configuration.json.js +0 -2
  501. package/dist/vscode-default-extensions/cpp/snippets/c.code-snippets.js +0 -2
  502. package/dist/vscode-default-extensions/cpp/snippets/cpp.code-snippets.js +0 -2
  503. package/dist/vscode-default-extensions/cpp/syntaxes/c.tmLanguage.json.js +0 -2
  504. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json.js +0 -2
  505. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.tmLanguage.json.js +0 -2
  506. package/dist/vscode-default-extensions/cpp/syntaxes/cuda-cpp.tmLanguage.json.js +0 -2
  507. package/dist/vscode-default-extensions/csharp/language-configuration.json.js +0 -2
  508. package/dist/vscode-default-extensions/csharp/snippets/csharp.code-snippets.js +0 -2
  509. package/dist/vscode-default-extensions/csharp/syntaxes/csharp.tmLanguage.json.js +0 -2
  510. package/dist/vscode-default-extensions/css/language-configuration.json.js +0 -2
  511. package/dist/vscode-default-extensions/css/syntaxes/css.tmLanguage.json.js +0 -2
  512. package/dist/vscode-default-extensions/dart/language-configuration.json.js +0 -2
  513. package/dist/vscode-default-extensions/dart/syntaxes/dart.tmLanguage.json.js +0 -2
  514. package/dist/vscode-default-extensions/diff/language-configuration.json.js +0 -2
  515. package/dist/vscode-default-extensions/diff/syntaxes/diff.tmLanguage.json.js +0 -2
  516. package/dist/vscode-default-extensions/docker/language-configuration.json.js +0 -2
  517. package/dist/vscode-default-extensions/docker/syntaxes/docker.tmLanguage.json.js +0 -2
  518. package/dist/vscode-default-extensions/fsharp/language-configuration.json.js +0 -2
  519. package/dist/vscode-default-extensions/fsharp/snippets/fsharp.code-snippets.js +0 -2
  520. package/dist/vscode-default-extensions/fsharp/syntaxes/fsharp.tmLanguage.json.js +0 -2
  521. package/dist/vscode-default-extensions/go/language-configuration.json.js +0 -2
  522. package/dist/vscode-default-extensions/go/syntaxes/go.tmLanguage.json.js +0 -2
  523. package/dist/vscode-default-extensions/groovy/language-configuration.json.js +0 -2
  524. package/dist/vscode-default-extensions/groovy/snippets/groovy.code-snippets.js +0 -2
  525. package/dist/vscode-default-extensions/groovy/syntaxes/groovy.tmLanguage.json.js +0 -2
  526. package/dist/vscode-default-extensions/handlebars/language-configuration.json.js +0 -2
  527. package/dist/vscode-default-extensions/handlebars/syntaxes/Handlebars.tmLanguage.json.js +0 -2
  528. package/dist/vscode-default-extensions/hlsl/language-configuration.json.js +0 -2
  529. package/dist/vscode-default-extensions/hlsl/syntaxes/hlsl.tmLanguage.json.js +0 -2
  530. package/dist/vscode-default-extensions/html/language-configuration.json.js +0 -2
  531. package/dist/vscode-default-extensions/html/snippets/html.code-snippets.js +0 -2
  532. package/dist/vscode-default-extensions/html/syntaxes/html-derivative.tmLanguage.json.js +0 -2
  533. package/dist/vscode-default-extensions/html/syntaxes/html.tmLanguage.json.js +0 -2
  534. package/dist/vscode-default-extensions/ini/ini.language-configuration.json.js +0 -2
  535. package/dist/vscode-default-extensions/ini/properties.language-configuration.json.js +0 -2
  536. package/dist/vscode-default-extensions/ini/syntaxes/ini.tmLanguage.json.js +0 -2
  537. package/dist/vscode-default-extensions/java/language-configuration.json.js +0 -2
  538. package/dist/vscode-default-extensions/java/snippets/java.code-snippets.js +0 -2
  539. package/dist/vscode-default-extensions/java/syntaxes/java.tmLanguage.json.js +0 -2
  540. package/dist/vscode-default-extensions/javascript/javascript-language-configuration.json.js +0 -2
  541. package/dist/vscode-default-extensions/javascript/snippets/javascript.code-snippets.js +0 -2
  542. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScript.tmLanguage.json.js +0 -2
  543. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json.js +0 -2
  544. package/dist/vscode-default-extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage.js +0 -2
  545. package/dist/vscode-default-extensions/javascript/tags-language-configuration.json.js +0 -2
  546. package/dist/vscode-default-extensions/json/language-configuration.json.js +0 -2
  547. package/dist/vscode-default-extensions/json/syntaxes/JSON.tmLanguage.json.js +0 -2
  548. package/dist/vscode-default-extensions/json/syntaxes/JSONC.tmLanguage.json.js +0 -2
  549. package/dist/vscode-default-extensions/julia/language-configuration.json.js +0 -2
  550. package/dist/vscode-default-extensions/julia/syntaxes/julia.tmLanguage.json.js +0 -2
  551. package/dist/vscode-default-extensions/latex/latex-cpp-embedded-language-configuration.json.js +0 -2
  552. package/dist/vscode-default-extensions/latex/latex-language-configuration.json.js +0 -2
  553. package/dist/vscode-default-extensions/latex/markdown-latex-combined-language-configuration.json.js +0 -2
  554. package/dist/vscode-default-extensions/latex/syntaxes/Bibtex.tmLanguage.json.js +0 -2
  555. package/dist/vscode-default-extensions/latex/syntaxes/LaTeX.tmLanguage.json.js +0 -2
  556. package/dist/vscode-default-extensions/latex/syntaxes/TeX.tmLanguage.json.js +0 -2
  557. package/dist/vscode-default-extensions/latex/syntaxes/cpp-grammar-bailout.tmLanguage.json.js +0 -2
  558. package/dist/vscode-default-extensions/latex/syntaxes/markdown-latex-combined.tmLanguage.json.js +0 -2
  559. package/dist/vscode-default-extensions/less/language-configuration.json.js +0 -2
  560. package/dist/vscode-default-extensions/less/syntaxes/less.tmLanguage.json.js +0 -2
  561. package/dist/vscode-default-extensions/log/syntaxes/log.tmLanguage.json.js +0 -2
  562. package/dist/vscode-default-extensions/lua/language-configuration.json.js +0 -2
  563. package/dist/vscode-default-extensions/lua/syntaxes/lua.tmLanguage.json.js +0 -2
  564. package/dist/vscode-default-extensions/make/language-configuration.json.js +0 -2
  565. package/dist/vscode-default-extensions/make/syntaxes/make.tmLanguage.json.js +0 -2
  566. package/dist/vscode-default-extensions/markdown-basics/language-configuration.json.js +0 -2
  567. package/dist/vscode-default-extensions/markdown-basics/snippets/markdown.code-snippets.js +0 -2
  568. package/dist/vscode-default-extensions/markdown-basics/syntaxes/markdown.tmLanguage.json.js +0 -2
  569. package/dist/vscode-default-extensions/objective-c/language-configuration.json.js +0 -2
  570. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c.tmLanguage.json.js +0 -2
  571. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c__.tmLanguage.json.js +0 -2
  572. package/dist/vscode-default-extensions/perl/perl.language-configuration.json.js +0 -2
  573. package/dist/vscode-default-extensions/perl/perl6.language-configuration.json.js +0 -2
  574. package/dist/vscode-default-extensions/perl/syntaxes/perl.tmLanguage.json.js +0 -2
  575. package/dist/vscode-default-extensions/perl/syntaxes/perl6.tmLanguage.json.js +0 -2
  576. package/dist/vscode-default-extensions/php/language-configuration.json.js +0 -2
  577. package/dist/vscode-default-extensions/php/snippets/php.code-snippets.js +0 -2
  578. package/dist/vscode-default-extensions/php/syntaxes/html.tmLanguage.json.js +0 -2
  579. package/dist/vscode-default-extensions/php/syntaxes/php.tmLanguage.json.js +0 -2
  580. package/dist/vscode-default-extensions/powershell/language-configuration.json.js +0 -2
  581. package/dist/vscode-default-extensions/powershell/syntaxes/powershell.tmLanguage.json.js +0 -2
  582. package/dist/vscode-default-extensions/pug/language-configuration.json.js +0 -2
  583. package/dist/vscode-default-extensions/pug/syntaxes/pug.tmLanguage.json.js +0 -2
  584. package/dist/vscode-default-extensions/python/language-configuration.json.js +0 -2
  585. package/dist/vscode-default-extensions/python/syntaxes/MagicPython.tmLanguage.json.js +0 -2
  586. package/dist/vscode-default-extensions/python/syntaxes/MagicRegExp.tmLanguage.json.js +0 -2
  587. package/dist/vscode-default-extensions/r/language-configuration.json.js +0 -2
  588. package/dist/vscode-default-extensions/r/syntaxes/r.tmLanguage.json.js +0 -2
  589. package/dist/vscode-default-extensions/razor/language-configuration.json.js +0 -2
  590. package/dist/vscode-default-extensions/razor/syntaxes/cshtml.tmLanguage.json.js +0 -2
  591. package/dist/vscode-default-extensions/ruby/language-configuration.json.js +0 -2
  592. package/dist/vscode-default-extensions/ruby/syntaxes/ruby.tmLanguage.json.js +0 -2
  593. package/dist/vscode-default-extensions/rust/language-configuration.json.js +0 -2
  594. package/dist/vscode-default-extensions/rust/syntaxes/rust.tmLanguage.json.js +0 -2
  595. package/dist/vscode-default-extensions/scss/language-configuration.json.js +0 -2
  596. package/dist/vscode-default-extensions/scss/syntaxes/sassdoc.tmLanguage.json.js +0 -2
  597. package/dist/vscode-default-extensions/scss/syntaxes/scss.tmLanguage.json.js +0 -2
  598. package/dist/vscode-default-extensions/shaderlab/language-configuration.json.js +0 -2
  599. package/dist/vscode-default-extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json.js +0 -2
  600. package/dist/vscode-default-extensions/shellscript/language-configuration.json.js +0 -2
  601. package/dist/vscode-default-extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json.js +0 -2
  602. package/dist/vscode-default-extensions/sql/language-configuration.json.js +0 -2
  603. package/dist/vscode-default-extensions/sql/syntaxes/sql.tmLanguage.json.js +0 -2
  604. package/dist/vscode-default-extensions/swift/language-configuration.json.js +0 -2
  605. package/dist/vscode-default-extensions/swift/snippets/swift.code-snippets.js +0 -2
  606. package/dist/vscode-default-extensions/swift/syntaxes/swift.tmLanguage.json.js +0 -2
  607. package/dist/vscode-default-extensions/theme-abyss/themes/abyss-color-theme.json.js +0 -2
  608. package/dist/vscode-default-extensions/theme-defaults/fileicons/vs_minimal-icon-theme.json.js +0 -2
  609. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus.json.js +0 -2
  610. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus_experimental.json.js +0 -2
  611. package/dist/vscode-default-extensions/theme-defaults/themes/dark_vs.json.js +0 -2
  612. package/dist/vscode-default-extensions/theme-defaults/themes/hc_black.json.js +0 -2
  613. package/dist/vscode-default-extensions/theme-defaults/themes/hc_light.json.js +0 -2
  614. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus.json.js +0 -2
  615. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus_experimental.json.js +0 -2
  616. package/dist/vscode-default-extensions/theme-defaults/themes/light_vs.json.js +0 -2
  617. package/dist/vscode-default-extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json.js +0 -2
  618. package/dist/vscode-default-extensions/theme-monokai/themes/monokai-color-theme.json.js +0 -2
  619. package/dist/vscode-default-extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json.js +0 -2
  620. package/dist/vscode-default-extensions/theme-quietlight/themes/quietlight-color-theme.json.js +0 -2
  621. package/dist/vscode-default-extensions/theme-red/themes/Red-color-theme.json.js +0 -2
  622. package/dist/vscode-default-extensions/theme-seti/icons/vs-seti-icon-theme.json.js +0 -2
  623. package/dist/vscode-default-extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json.js +0 -2
  624. package/dist/vscode-default-extensions/theme-solarized-light/themes/solarized-light-color-theme.json.js +0 -2
  625. package/dist/vscode-default-extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json.js +0 -2
  626. package/dist/vscode-default-extensions/typescript-basics/language-configuration.json.js +0 -2
  627. package/dist/vscode-default-extensions/typescript-basics/snippets/typescript.code-snippets.js +0 -2
  628. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json.js +0 -2
  629. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json.js +0 -2
  630. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json.js +0 -2
  631. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json.js +0 -2
  632. package/dist/vscode-default-extensions/typescript-language-features/package.json.js +0 -2
  633. package/dist/vscode-default-extensions/vb/language-configuration.json.js +0 -2
  634. package/dist/vscode-default-extensions/vb/snippets/vb.code-snippets.js +0 -2
  635. package/dist/vscode-default-extensions/vb/syntaxes/asp-vb-net.tmlanguage.json.js +0 -2
  636. package/dist/vscode-default-extensions/xml/syntaxes/xml.tmLanguage.json.js +0 -2
  637. package/dist/vscode-default-extensions/xml/syntaxes/xsl.tmLanguage.json.js +0 -2
  638. package/dist/vscode-default-extensions/xml/xml.language-configuration.json.js +0 -2
  639. package/dist/vscode-default-extensions/xml/xsl.language-configuration.json.js +0 -2
  640. package/dist/vscode-default-extensions/yaml/language-configuration.json.js +0 -2
  641. package/dist/vscode-default-extensions/yaml/syntaxes/yaml.tmLanguage.json.js +0 -2
@@ -0,0 +1,1475 @@
1
+ import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
+ import { DataTransfers } from 'monaco-editor/esm/vs/base/browser/dnd.js';
3
+ import * as dom from 'monaco-editor/esm/vs/base/browser/dom.js';
4
+ import { renderMarkdownAsPlaintext } from 'monaco-editor/esm/vs/base/browser/markdownRenderer.js';
5
+ import { ActionBar } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js';
6
+ import { ActionViewItem } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionViewItems.js';
7
+ import { CollapseAllAction } from '../../../../base/browser/ui/tree/treeDefaults.js';
8
+ import { ActionRunner } from 'monaco-editor/esm/vs/base/common/actions.js';
9
+ import { timeout } from 'monaco-editor/esm/vs/base/common/async.js';
10
+ import { CancellationTokenSource, CancellationToken } from 'monaco-editor/esm/vs/base/common/cancellation.js';
11
+ import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
12
+ import { isCancellationError } from 'monaco-editor/esm/vs/base/common/errors.js';
13
+ import { Emitter, Event } from 'monaco-editor/esm/vs/base/common/event.js';
14
+ import { createMatches } from 'monaco-editor/esm/vs/base/common/filters.js';
15
+ import { Disposable, DisposableStore, toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
16
+ import { Mimes } from 'monaco-editor/esm/vs/base/common/mime.js';
17
+ import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
18
+ import { basename, dirname } from 'monaco-editor/esm/vs/base/common/resources.js';
19
+ import { isFalsyOrWhitespace } from 'monaco-editor/esm/vs/base/common/strings.js';
20
+ import { isString } from 'monaco-editor/esm/vs/base/common/types.js';
21
+ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
22
+ import { generateUuid } from 'monaco-editor/esm/vs/base/common/uuid.js';
23
+ import "../../../../../../assets/views.css";
24
+ import { VSDataTransfer } from 'monaco-editor/esm/vs/base/common/dataTransfer.js';
25
+ import { localize } from 'monaco-editor/esm/vs/nls.js';
26
+ import { createActionViewItem, createAndFillInContextMenuActions } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
27
+ import { MenuId, MenuRegistry, registerAction2, Action2, IMenuService } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
28
+ import { CommandsRegistry, ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
29
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
30
+ import { IContextKeyService, RawContextKey, ContextKeyExpr } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
31
+ import { IContextMenuService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
32
+ import { FileKind } from 'monaco-editor/esm/vs/platform/files/common/files.js';
33
+ import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
34
+ import { IKeybindingService } from 'monaco-editor/esm/vs/platform/keybinding/common/keybinding.js';
35
+ import { ILabelService } from 'monaco-editor/esm/vs/platform/label/common/label.js';
36
+ import { WorkbenchAsyncDataTree } from 'monaco-editor/esm/vs/platform/list/browser/listService.js';
37
+ import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
38
+ import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
39
+ import { IOpenerService } from 'monaco-editor/esm/vs/platform/opener/common/opener.js';
40
+ import { IProgressService } from 'monaco-editor/esm/vs/platform/progress/common/progress.js';
41
+ import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
42
+ import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
43
+ import { ColorScheme } from 'monaco-editor/esm/vs/platform/theme/common/theme.js';
44
+ import { FolderThemeIcon, FileThemeIcon, IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
45
+ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
46
+ import { fillEditorsDragData } from '../../dnd.js';
47
+ import { ResourceLabels } from '../../labels.js';
48
+ import { API_OPEN_EDITOR_COMMAND_ID, API_OPEN_DIFF_EDITOR_COMMAND_ID } from '../editor/editorCommands.js';
49
+ import { ViewPane } from './viewPane.js';
50
+ import { PANEL_BACKGROUND, SIDE_BAR_BACKGROUND } from '../../../common/theme.js';
51
+ import { ResolvableTreeItem, TreeItemCollapsibleState, Extensions, IViewDescriptorService } from '../../../common/views.js';
52
+ import { IActivityService, NumberBadge } from '../../../services/activity/common/activity.js';
53
+ import { IExtensionService } from '../../../services/extensions/common/extensions.js';
54
+ import { IHoverService } from '../../../services/hover/browser/hover.js';
55
+ import { ITreeViewsService } from '../../../services/views/browser/treeViewsService.js';
56
+ import { LocalSelectionTransfer, CodeDataTransfers } from 'monaco-editor/esm/vs/platform/dnd/browser/dnd.js';
57
+ import { toVSDataTransfer, addExternalEditorsDropData } from 'monaco-editor/esm/vs/editor/browser/dnd.js';
58
+ import { TreeItemCheckbox, CheckboxStateHandler } from './checkbox.js';
59
+ import { setTimeout0 } from 'monaco-editor/esm/vs/base/common/platform.js';
60
+ import { TelemetryTrustedValue } from '../../../../platform/telemetry/common/telemetryUtils.js';
61
+ import { ITreeViewsDnDService } from 'monaco-editor/esm/vs/editor/common/services/treeViewsDndService.js';
62
+ import { DraggedTreeItemsIdentifier } from 'monaco-editor/esm/vs/editor/common/services/treeViewsDnd.js';
63
+ let TreeViewPane = class TreeViewPane extends ViewPane {
64
+ constructor(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, notificationService) {
65
+ super({ ...options, titleMenuId: MenuId.ViewTitle, donotForwardArgs: false }, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
66
+ const { treeView } = ( Registry.as(Extensions.ViewsRegistry)).getView(options.id);
67
+ this.treeView = treeView;
68
+ this._register(this.treeView.onDidChangeActions(() => this.updateActions(), this));
69
+ this._register(this.treeView.onDidChangeTitle((newTitle) => this.updateTitle(newTitle)));
70
+ this._register(this.treeView.onDidChangeDescription((newDescription) => this.updateTitleDescription(newDescription)));
71
+ this._register(toDisposable(() => {
72
+ if (this._container && this.treeView.container && (this._container === this.treeView.container)) {
73
+ this.treeView.setVisibility(false);
74
+ }
75
+ }));
76
+ this._register(this.onDidChangeBodyVisibility(() => this.updateTreeVisibility()));
77
+ this._register(this.treeView.onDidChangeWelcomeState(() => this._onDidChangeViewWelcomeState.fire()));
78
+ if (options.title !== this.treeView.title) {
79
+ this.updateTitle(this.treeView.title);
80
+ }
81
+ if (options.titleDescription !== this.treeView.description) {
82
+ this.updateTitleDescription(this.treeView.description);
83
+ }
84
+ this._actionRunner = ( new MultipleSelectionActionRunner(notificationService, () => this.treeView.getSelection()));
85
+ this.updateTreeVisibility();
86
+ }
87
+ focus() {
88
+ super.focus();
89
+ this.treeView.focus();
90
+ }
91
+ renderBody(container) {
92
+ this._container = container;
93
+ super.renderBody(container);
94
+ this.renderTreeView(container);
95
+ }
96
+ shouldShowWelcome() {
97
+ return ((this.treeView.dataProvider === undefined) || !!this.treeView.dataProvider.isTreeEmpty) && (this.treeView.message === undefined);
98
+ }
99
+ layoutBody(height, width) {
100
+ super.layoutBody(height, width);
101
+ this.layoutTreeView(height, width);
102
+ }
103
+ getOptimalWidth() {
104
+ return this.treeView.getOptimalWidth();
105
+ }
106
+ renderTreeView(container) {
107
+ this.treeView.show(container);
108
+ }
109
+ layoutTreeView(height, width) {
110
+ this.treeView.layout(height, width);
111
+ }
112
+ updateTreeVisibility() {
113
+ this.treeView.setVisibility(this.isBodyVisible());
114
+ }
115
+ getActionRunner() {
116
+ return this._actionRunner;
117
+ }
118
+ getActionsContext() {
119
+ return { $treeViewId: this.id, $focusedTreeItem: true, $selectedTreeItems: true };
120
+ }
121
+ };
122
+ TreeViewPane = ( __decorate([
123
+ ( __param(1, IKeybindingService)),
124
+ ( __param(2, IContextMenuService)),
125
+ ( __param(3, IConfigurationService)),
126
+ ( __param(4, IContextKeyService)),
127
+ ( __param(5, IViewDescriptorService)),
128
+ ( __param(6, IInstantiationService)),
129
+ ( __param(7, IOpenerService)),
130
+ ( __param(8, IThemeService)),
131
+ ( __param(9, ITelemetryService)),
132
+ ( __param(10, INotificationService))
133
+ ], TreeViewPane));
134
+ class Root {
135
+ constructor() {
136
+ this.label = { label: 'root' };
137
+ this.handle = '0';
138
+ this.parentHandle = undefined;
139
+ this.collapsibleState = TreeItemCollapsibleState.Expanded;
140
+ this.children = undefined;
141
+ }
142
+ }
143
+ function isTreeCommandEnabled(treeCommand, contextKeyService) {
144
+ const command = CommandsRegistry.getCommand(treeCommand.originalId ? treeCommand.originalId : treeCommand.id);
145
+ if (command) {
146
+ const commandAction = MenuRegistry.getCommand(command.id);
147
+ const precondition = commandAction && commandAction.precondition;
148
+ if (precondition) {
149
+ return contextKeyService.contextMatchesRules(precondition);
150
+ }
151
+ }
152
+ return true;
153
+ }
154
+ const noDataProviderMessage = ( localize(
155
+ 'no-dataprovider',
156
+ "There is no data provider registered that can provide view data."
157
+ ));
158
+ const RawCustomTreeViewContextKey = ( new RawContextKey('customTreeView', false));
159
+ class Tree extends WorkbenchAsyncDataTree {
160
+ }
161
+ let AbstractTreeView = class AbstractTreeView extends Disposable {
162
+ constructor(id, _title, themeService, instantiationService, commandService, configurationService, progressService, contextMenuService, keybindingService, notificationService, viewDescriptorService, hoverService, contextKeyService, activityService, logService) {
163
+ super();
164
+ this.id = id;
165
+ this._title = _title;
166
+ this.themeService = themeService;
167
+ this.instantiationService = instantiationService;
168
+ this.commandService = commandService;
169
+ this.configurationService = configurationService;
170
+ this.progressService = progressService;
171
+ this.contextMenuService = contextMenuService;
172
+ this.keybindingService = keybindingService;
173
+ this.notificationService = notificationService;
174
+ this.viewDescriptorService = viewDescriptorService;
175
+ this.hoverService = hoverService;
176
+ this.contextKeyService = contextKeyService;
177
+ this.activityService = activityService;
178
+ this.logService = logService;
179
+ this.isVisible = false;
180
+ this._hasIconForParentNode = false;
181
+ this._hasIconForLeafNode = false;
182
+ this.focused = false;
183
+ this._canSelectMany = false;
184
+ this.elementsToRefresh = [];
185
+ this._onDidExpandItem = this._register(( new Emitter()));
186
+ this.onDidExpandItem = this._onDidExpandItem.event;
187
+ this._onDidCollapseItem = this._register(( new Emitter()));
188
+ this.onDidCollapseItem = this._onDidCollapseItem.event;
189
+ this._onDidChangeSelection = this._register(( new Emitter()));
190
+ this.onDidChangeSelection = this._onDidChangeSelection.event;
191
+ this._onDidChangeFocus = this._register(( new Emitter()));
192
+ this.onDidChangeFocus = this._onDidChangeFocus.event;
193
+ this._onDidChangeVisibility = this._register(( new Emitter()));
194
+ this.onDidChangeVisibility = this._onDidChangeVisibility.event;
195
+ this._onDidChangeActions = this._register(( new Emitter()));
196
+ this.onDidChangeActions = this._onDidChangeActions.event;
197
+ this._onDidChangeWelcomeState = this._register(( new Emitter()));
198
+ this.onDidChangeWelcomeState = this._onDidChangeWelcomeState.event;
199
+ this._onDidChangeTitle = this._register(( new Emitter()));
200
+ this.onDidChangeTitle = this._onDidChangeTitle.event;
201
+ this._onDidChangeDescription = this._register(( new Emitter()));
202
+ this.onDidChangeDescription = this._onDidChangeDescription.event;
203
+ this._onDidChangeCheckboxState = this._register(( new Emitter()));
204
+ this.onDidChangeCheckboxState = this._onDidChangeCheckboxState.event;
205
+ this._onDidCompleteRefresh = this._register(( new Emitter()));
206
+ this._isInitialized = false;
207
+ this._height = 0;
208
+ this._width = 0;
209
+ this.refreshing = false;
210
+ this.root = ( new Root());
211
+ }
212
+ initialize() {
213
+ if (this._isInitialized) {
214
+ return;
215
+ }
216
+ this._isInitialized = true;
217
+ this.contextKeyService.bufferChangeEvents(() => {
218
+ this.initializeShowCollapseAllAction();
219
+ this.initializeCollapseAllToggle();
220
+ this.initializeShowRefreshAction();
221
+ });
222
+ this.treeViewDnd = this.instantiationService.createInstance(CustomTreeViewDragAndDrop, this.id);
223
+ if (this._dragAndDropController) {
224
+ this.treeViewDnd.controller = this._dragAndDropController;
225
+ }
226
+ this._register(this.configurationService.onDidChangeConfiguration(e => {
227
+ if (e.affectsConfiguration('explorer.decorations')) {
228
+ this.doRefresh([this.root]);
229
+ }
230
+ }));
231
+ this._register(this.viewDescriptorService.onDidChangeLocation(({ views, from, to }) => {
232
+ if (( views.some(v => v.id === this.id))) {
233
+ this.tree?.updateOptions({ overrideStyles: { listBackground: this.viewLocation === 1 ? PANEL_BACKGROUND : SIDE_BAR_BACKGROUND } });
234
+ }
235
+ }));
236
+ this.registerActions();
237
+ this.create();
238
+ }
239
+ get viewContainer() {
240
+ return this.viewDescriptorService.getViewContainerByViewId(this.id);
241
+ }
242
+ get viewLocation() {
243
+ return this.viewDescriptorService.getViewLocationById(this.id);
244
+ }
245
+ get dragAndDropController() {
246
+ return this._dragAndDropController;
247
+ }
248
+ set dragAndDropController(dnd) {
249
+ this._dragAndDropController = dnd;
250
+ if (this.treeViewDnd) {
251
+ this.treeViewDnd.controller = dnd;
252
+ }
253
+ }
254
+ get dataProvider() {
255
+ return this._dataProvider;
256
+ }
257
+ set dataProvider(dataProvider) {
258
+ if (dataProvider) {
259
+ const self = this;
260
+ this._dataProvider = new (class {
261
+ constructor() {
262
+ this._isEmpty = true;
263
+ this._onDidChangeEmpty = ( new Emitter());
264
+ this.onDidChangeEmpty = this._onDidChangeEmpty.event;
265
+ }
266
+ get isTreeEmpty() {
267
+ return this._isEmpty;
268
+ }
269
+ async getChildren(node) {
270
+ let children;
271
+ if (node && node.children) {
272
+ children = node.children;
273
+ }
274
+ else {
275
+ node = node ?? self.root;
276
+ node.children = await (node instanceof Root ? dataProvider.getChildren() : dataProvider.getChildren(node));
277
+ children = node.children ?? [];
278
+ }
279
+ if (node instanceof Root) {
280
+ const oldEmpty = this._isEmpty;
281
+ this._isEmpty = children.length === 0;
282
+ if (oldEmpty !== this._isEmpty) {
283
+ this._onDidChangeEmpty.fire();
284
+ }
285
+ }
286
+ return children;
287
+ }
288
+ });
289
+ if (this._dataProvider.onDidChangeEmpty) {
290
+ this._register(this._dataProvider.onDidChangeEmpty(() => {
291
+ this.updateCollapseAllToggle();
292
+ this._onDidChangeWelcomeState.fire();
293
+ }));
294
+ }
295
+ this.updateMessage();
296
+ this.refresh();
297
+ }
298
+ else {
299
+ this._dataProvider = undefined;
300
+ this.updateMessage();
301
+ }
302
+ this._onDidChangeWelcomeState.fire();
303
+ }
304
+ get message() {
305
+ return this._message;
306
+ }
307
+ set message(message) {
308
+ this._message = message;
309
+ this.updateMessage();
310
+ this._onDidChangeWelcomeState.fire();
311
+ }
312
+ get title() {
313
+ return this._title;
314
+ }
315
+ set title(name) {
316
+ this._title = name;
317
+ this._onDidChangeTitle.fire(this._title);
318
+ }
319
+ get description() {
320
+ return this._description;
321
+ }
322
+ set description(description) {
323
+ this._description = description;
324
+ this._onDidChangeDescription.fire(this._description);
325
+ }
326
+ get badge() {
327
+ return this._badge;
328
+ }
329
+ set badge(badge) {
330
+ if (this._badge?.value === badge?.value &&
331
+ this._badge?.tooltip === badge?.tooltip) {
332
+ return;
333
+ }
334
+ if (this._badgeActivity) {
335
+ this._badgeActivity.dispose();
336
+ this._badgeActivity = undefined;
337
+ }
338
+ this._badge = badge;
339
+ if (badge) {
340
+ const activity = {
341
+ badge: ( new NumberBadge(badge.value, () => badge.tooltip)),
342
+ priority: 50
343
+ };
344
+ this._badgeActivity = this.activityService.showViewActivity(this.id, activity);
345
+ }
346
+ }
347
+ get canSelectMany() {
348
+ return this._canSelectMany;
349
+ }
350
+ set canSelectMany(canSelectMany) {
351
+ const oldCanSelectMany = this._canSelectMany;
352
+ this._canSelectMany = canSelectMany;
353
+ if (this._canSelectMany !== oldCanSelectMany) {
354
+ this.tree?.updateOptions({ multipleSelectionSupport: this.canSelectMany });
355
+ }
356
+ }
357
+ get hasIconForParentNode() {
358
+ return this._hasIconForParentNode;
359
+ }
360
+ get hasIconForLeafNode() {
361
+ return this._hasIconForLeafNode;
362
+ }
363
+ get visible() {
364
+ return this.isVisible;
365
+ }
366
+ initializeShowCollapseAllAction(startingValue = false) {
367
+ if (!this.collapseAllContext) {
368
+ this.collapseAllContextKey = ( new RawContextKey(`treeView.${this.id}.enableCollapseAll`, startingValue, ( localize(
369
+ 'treeView.enableCollapseAll',
370
+ "Whether the the tree view with id {0} enables collapse all.",
371
+ this.id
372
+ ))));
373
+ this.collapseAllContext = this.collapseAllContextKey.bindTo(this.contextKeyService);
374
+ }
375
+ return true;
376
+ }
377
+ get showCollapseAllAction() {
378
+ this.initializeShowCollapseAllAction();
379
+ return !!this.collapseAllContext?.get();
380
+ }
381
+ set showCollapseAllAction(showCollapseAllAction) {
382
+ this.initializeShowCollapseAllAction(showCollapseAllAction);
383
+ this.collapseAllContext?.set(showCollapseAllAction);
384
+ }
385
+ initializeShowRefreshAction(startingValue = false) {
386
+ if (!this.refreshContext) {
387
+ this.refreshContextKey = ( new RawContextKey(`treeView.${this.id}.enableRefresh`, startingValue, ( localize(
388
+ 'treeView.enableRefresh',
389
+ "Whether the tree view with id {0} enables refresh.",
390
+ this.id
391
+ ))));
392
+ this.refreshContext = this.refreshContextKey.bindTo(this.contextKeyService);
393
+ }
394
+ }
395
+ get showRefreshAction() {
396
+ this.initializeShowRefreshAction();
397
+ return !!this.refreshContext?.get();
398
+ }
399
+ set showRefreshAction(showRefreshAction) {
400
+ this.initializeShowRefreshAction(showRefreshAction);
401
+ this.refreshContext?.set(showRefreshAction);
402
+ }
403
+ registerActions() {
404
+ const that = this;
405
+ this._register(registerAction2(class extends Action2 {
406
+ constructor() {
407
+ super({
408
+ id: `workbench.actions.treeView.${that.id}.refresh`,
409
+ title: ( localize('refresh', "Refresh")),
410
+ menu: {
411
+ id: MenuId.ViewTitle,
412
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', that.id)), that.refreshContextKey)),
413
+ group: 'navigation',
414
+ order: Number.MAX_SAFE_INTEGER - 1,
415
+ },
416
+ icon: Codicon.refresh
417
+ });
418
+ }
419
+ async run() {
420
+ return that.refresh();
421
+ }
422
+ }));
423
+ this._register(registerAction2(class extends Action2 {
424
+ constructor() {
425
+ super({
426
+ id: `workbench.actions.treeView.${that.id}.collapseAll`,
427
+ title: ( localize('collapseAll', "Collapse All")),
428
+ menu: {
429
+ id: MenuId.ViewTitle,
430
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', that.id)), that.collapseAllContextKey)),
431
+ group: 'navigation',
432
+ order: Number.MAX_SAFE_INTEGER,
433
+ },
434
+ precondition: that.collapseAllToggleContextKey,
435
+ icon: Codicon.collapseAll
436
+ });
437
+ }
438
+ async run() {
439
+ if (that.tree) {
440
+ return ( new CollapseAllAction(that.tree, true)).run();
441
+ }
442
+ }
443
+ }));
444
+ }
445
+ setVisibility(isVisible) {
446
+ this.initialize();
447
+ isVisible = !!isVisible;
448
+ if (this.isVisible === isVisible) {
449
+ return;
450
+ }
451
+ this.isVisible = isVisible;
452
+ if (this.tree) {
453
+ if (this.isVisible) {
454
+ dom.show(this.tree.getHTMLElement());
455
+ }
456
+ else {
457
+ dom.hide(this.tree.getHTMLElement());
458
+ }
459
+ if (this.isVisible && this.elementsToRefresh.length && this.dataProvider) {
460
+ this.doRefresh(this.elementsToRefresh);
461
+ this.elementsToRefresh = [];
462
+ }
463
+ }
464
+ setTimeout0(() => {
465
+ if (this.dataProvider) {
466
+ this._onDidChangeVisibility.fire(this.isVisible);
467
+ }
468
+ });
469
+ if (this.visible) {
470
+ this.activate();
471
+ }
472
+ }
473
+ focus(reveal = true, revealItem) {
474
+ if (this.tree && this.root.children && this.root.children.length > 0) {
475
+ const element = revealItem ?? this.tree.getSelection()[0];
476
+ if (element && reveal) {
477
+ this.tree.reveal(element, 0.5);
478
+ }
479
+ this.tree.domFocus();
480
+ }
481
+ else if (this.tree) {
482
+ this.tree.domFocus();
483
+ }
484
+ else {
485
+ this.domNode.focus();
486
+ }
487
+ }
488
+ show(container) {
489
+ this._container = container;
490
+ dom.append(container, this.domNode);
491
+ }
492
+ create() {
493
+ this.domNode = dom.$('.tree-explorer-viewlet-tree-view');
494
+ this.messageElement = dom.append(this.domNode, dom.$('.message'));
495
+ this.updateMessage();
496
+ this.treeContainer = dom.append(this.domNode, dom.$('.customview-tree'));
497
+ this.treeContainer.classList.add('file-icon-themable-tree', 'show-file-icons');
498
+ const focusTracker = this._register(dom.trackFocus(this.domNode));
499
+ this._register(focusTracker.onDidFocus(() => this.focused = true));
500
+ this._register(focusTracker.onDidBlur(() => this.focused = false));
501
+ }
502
+ createTree() {
503
+ const actionViewItemProvider = createActionViewItem.bind(undefined, this.instantiationService);
504
+ const treeMenus = this._register(this.instantiationService.createInstance(TreeMenus, this.id));
505
+ this.treeLabels = this._register(this.instantiationService.createInstance(ResourceLabels, this));
506
+ const dataSource = this.instantiationService.createInstance(TreeDataSource, this, (task) => this.progressService.withProgress({ location: this.id }, () => task));
507
+ const aligner = ( new Aligner(this.themeService));
508
+ const checkboxStateHandler = this._register(( new CheckboxStateHandler()));
509
+ this._register(checkboxStateHandler.onDidChangeCheckboxState(items => {
510
+ items.forEach(item => this.tree?.rerender(item));
511
+ this._onDidChangeCheckboxState.fire(items);
512
+ }));
513
+ const renderer = this.instantiationService.createInstance(TreeRenderer, this.id, treeMenus, this.treeLabels, actionViewItemProvider, aligner, checkboxStateHandler);
514
+ const widgetAriaLabel = this._title;
515
+ this.tree = this._register(this.instantiationService.createInstance(Tree, this.id, this.treeContainer, ( new TreeViewDelegate()), [renderer], dataSource, {
516
+ identityProvider: ( new TreeViewIdentityProvider()),
517
+ accessibilityProvider: {
518
+ getAriaLabel(element) {
519
+ if (element.accessibilityInformation) {
520
+ return element.accessibilityInformation.label;
521
+ }
522
+ if (isString(element.tooltip)) {
523
+ return element.tooltip;
524
+ }
525
+ else {
526
+ if (element.resourceUri && !element.label) {
527
+ return null;
528
+ }
529
+ let buildAriaLabel = '';
530
+ if (element.label) {
531
+ buildAriaLabel += element.label.label + ' ';
532
+ }
533
+ if (element.description) {
534
+ buildAriaLabel += element.description;
535
+ }
536
+ return buildAriaLabel;
537
+ }
538
+ },
539
+ getRole(element) {
540
+ return element.accessibilityInformation?.role ?? 'treeitem';
541
+ },
542
+ getWidgetAriaLabel() {
543
+ return widgetAriaLabel;
544
+ }
545
+ },
546
+ keyboardNavigationLabelProvider: {
547
+ getKeyboardNavigationLabel: (item) => {
548
+ return item.label ? item.label.label : (item.resourceUri ? basename(URI.revive(item.resourceUri)) : undefined);
549
+ }
550
+ },
551
+ expandOnlyOnTwistieClick: (e) => {
552
+ return !!e.command || !!e.checkbox || this.configurationService.getValue('workbench.tree.expandMode') === 'doubleClick';
553
+ },
554
+ collapseByDefault: (e) => {
555
+ return e.collapsibleState !== TreeItemCollapsibleState.Expanded;
556
+ },
557
+ multipleSelectionSupport: this.canSelectMany,
558
+ dnd: this.treeViewDnd,
559
+ overrideStyles: {
560
+ listBackground: this.viewLocation === 1 ? PANEL_BACKGROUND : SIDE_BAR_BACKGROUND
561
+ }
562
+ }));
563
+ treeMenus.setContextKeyService(this.tree.contextKeyService);
564
+ aligner.tree = this.tree;
565
+ const actionRunner = ( new MultipleSelectionActionRunner(this.notificationService, () => this.tree.getSelection()));
566
+ renderer.actionRunner = actionRunner;
567
+ this.tree.contextKeyService.createKey(this.id, true);
568
+ const customTreeKey = RawCustomTreeViewContextKey.bindTo(this.tree.contextKeyService);
569
+ customTreeKey.set(true);
570
+ this._register(this.tree.onContextMenu(e => this.onContextMenu(treeMenus, e, actionRunner)));
571
+ this._register(this.tree.onDidChangeSelection(e => this._onDidChangeSelection.fire(e.elements)));
572
+ this._register(this.tree.onDidChangeFocus(e => {
573
+ if (e.elements.length) {
574
+ this._onDidChangeFocus.fire(e.elements[0]);
575
+ }
576
+ }));
577
+ this._register(this.tree.onDidChangeCollapseState(e => {
578
+ if (!e.node.element) {
579
+ return;
580
+ }
581
+ const element = Array.isArray(e.node.element.element) ? e.node.element.element[0] : e.node.element.element;
582
+ if (e.node.collapsed) {
583
+ this._onDidCollapseItem.fire(element);
584
+ }
585
+ else {
586
+ this._onDidExpandItem.fire(element);
587
+ }
588
+ }));
589
+ this.tree.setInput(this.root).then(() => this.updateContentAreas());
590
+ this._register(this.tree.onDidOpen(async (e) => {
591
+ if (!e.browserEvent) {
592
+ return;
593
+ }
594
+ if (e.browserEvent.target && e.browserEvent.target.classList.contains(TreeItemCheckbox.checkboxClass)) {
595
+ return;
596
+ }
597
+ const selection = this.tree.getSelection();
598
+ const command = await this.resolveCommand(selection.length === 1 ? selection[0] : undefined);
599
+ if (command && isTreeCommandEnabled(command, this.contextKeyService)) {
600
+ let args = command.arguments || [];
601
+ if (command.id === API_OPEN_EDITOR_COMMAND_ID || command.id === API_OPEN_DIFF_EDITOR_COMMAND_ID) {
602
+ args = [...args, e];
603
+ }
604
+ try {
605
+ await this.commandService.executeCommand(command.id, ...args);
606
+ }
607
+ catch (err) {
608
+ this.notificationService.error(err);
609
+ }
610
+ }
611
+ }));
612
+ this._register(treeMenus.onDidChange((changed) => {
613
+ if (this.tree?.hasNode(changed)) {
614
+ this.tree?.rerender(changed);
615
+ }
616
+ }));
617
+ }
618
+ async resolveCommand(element) {
619
+ let command = element?.command;
620
+ if (element && !command) {
621
+ if ((element instanceof ResolvableTreeItem) && element.hasResolve) {
622
+ await element.resolve(( new CancellationTokenSource()).token);
623
+ command = element.command;
624
+ }
625
+ }
626
+ return command;
627
+ }
628
+ onContextMenu(treeMenus, treeEvent, actionRunner) {
629
+ this.hoverService.hideHover();
630
+ const node = treeEvent.element;
631
+ if (node === null) {
632
+ return;
633
+ }
634
+ const event = treeEvent.browserEvent;
635
+ event.preventDefault();
636
+ event.stopPropagation();
637
+ this.tree.setFocus([node]);
638
+ const actions = treeMenus.getResourceContextActions(node);
639
+ if (!actions.length) {
640
+ return;
641
+ }
642
+ this.contextMenuService.showContextMenu({
643
+ getAnchor: () => treeEvent.anchor,
644
+ getActions: () => actions,
645
+ getActionViewItem: (action) => {
646
+ const keybinding = this.keybindingService.lookupKeybinding(action.id);
647
+ if (keybinding) {
648
+ return ( new ActionViewItem(action, action, { label: true, keybinding: keybinding.getLabel() }));
649
+ }
650
+ return undefined;
651
+ },
652
+ onHide: (wasCancelled) => {
653
+ if (wasCancelled) {
654
+ this.tree.domFocus();
655
+ }
656
+ },
657
+ getActionsContext: () => ({ $treeViewId: this.id, $treeItemHandle: node.handle }),
658
+ actionRunner
659
+ });
660
+ }
661
+ updateMessage() {
662
+ if (this._message) {
663
+ this.showMessage(this._message);
664
+ }
665
+ else if (!this.dataProvider) {
666
+ this.showMessage(noDataProviderMessage);
667
+ }
668
+ else {
669
+ this.hideMessage();
670
+ }
671
+ this.updateContentAreas();
672
+ }
673
+ showMessage(message) {
674
+ this._messageValue = message;
675
+ if (!this.messageElement) {
676
+ return;
677
+ }
678
+ this.messageElement.classList.remove('hide');
679
+ this.resetMessageElement();
680
+ if (!isFalsyOrWhitespace(this._message)) {
681
+ this.messageElement.textContent = this._messageValue;
682
+ }
683
+ this.layout(this._height, this._width);
684
+ }
685
+ hideMessage() {
686
+ this.resetMessageElement();
687
+ this.messageElement?.classList.add('hide');
688
+ this.layout(this._height, this._width);
689
+ }
690
+ resetMessageElement() {
691
+ if (this.messageElement) {
692
+ dom.clearNode(this.messageElement);
693
+ }
694
+ }
695
+ layout(height, width) {
696
+ if (height && width && this.messageElement && this.treeContainer) {
697
+ this._height = height;
698
+ this._width = width;
699
+ const treeHeight = height - dom.getTotalHeight(this.messageElement);
700
+ this.treeContainer.style.height = treeHeight + 'px';
701
+ this.tree?.layout(treeHeight, width);
702
+ }
703
+ }
704
+ getOptimalWidth() {
705
+ if (this.tree) {
706
+ const parentNode = this.tree.getHTMLElement();
707
+ const childNodes = [].slice.call(parentNode.querySelectorAll('.outline-item-label > a'));
708
+ return dom.getLargestChildWidth(parentNode, childNodes);
709
+ }
710
+ return 0;
711
+ }
712
+ async refresh(elements) {
713
+ if (this.dataProvider && this.tree) {
714
+ if (this.refreshing) {
715
+ await Event.toPromise(this._onDidCompleteRefresh.event);
716
+ }
717
+ if (!elements) {
718
+ elements = [this.root];
719
+ this.elementsToRefresh = [];
720
+ }
721
+ for (const element of elements) {
722
+ element.children = undefined;
723
+ }
724
+ if (this.isVisible) {
725
+ return this.doRefresh(elements);
726
+ }
727
+ else {
728
+ if (this.elementsToRefresh.length) {
729
+ const seen = ( new Set());
730
+ this.elementsToRefresh.forEach(element => seen.add(element.handle));
731
+ for (const element of elements) {
732
+ if (!( seen.has(element.handle))) {
733
+ this.elementsToRefresh.push(element);
734
+ }
735
+ }
736
+ }
737
+ else {
738
+ this.elementsToRefresh.push(...elements);
739
+ }
740
+ }
741
+ }
742
+ return undefined;
743
+ }
744
+ async expand(itemOrItems) {
745
+ const tree = this.tree;
746
+ if (!tree) {
747
+ return;
748
+ }
749
+ try {
750
+ itemOrItems = Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems];
751
+ await Promise.all(( itemOrItems.map(element => {
752
+ return tree.expand(element, false);
753
+ })));
754
+ }
755
+ catch (e) {
756
+ }
757
+ }
758
+ isCollapsed(item) {
759
+ return !!this.tree?.isCollapsed(item);
760
+ }
761
+ setSelection(items) {
762
+ this.tree?.setSelection(items);
763
+ }
764
+ getSelection() {
765
+ return this.tree?.getSelection() ?? [];
766
+ }
767
+ setFocus(item) {
768
+ if (this.tree) {
769
+ if (item) {
770
+ this.focus(true, item);
771
+ this.tree.setFocus([item]);
772
+ }
773
+ else {
774
+ this.tree.setFocus([]);
775
+ }
776
+ }
777
+ }
778
+ async reveal(item) {
779
+ if (this.tree) {
780
+ return this.tree.reveal(item);
781
+ }
782
+ }
783
+ async doRefresh(elements) {
784
+ const tree = this.tree;
785
+ if (tree && this.visible) {
786
+ this.refreshing = true;
787
+ const oldSelection = tree.getSelection();
788
+ try {
789
+ await Promise.all(( elements.map(element => tree.updateChildren(element, true, true))));
790
+ }
791
+ catch (e) {
792
+ this.logService.error(e);
793
+ }
794
+ const newSelection = tree.getSelection();
795
+ if (oldSelection.length !== newSelection.length || ( oldSelection.some((value, index) => value.handle !== newSelection[index].handle))) {
796
+ this._onDidChangeSelection.fire(newSelection);
797
+ }
798
+ this.refreshing = false;
799
+ this._onDidCompleteRefresh.fire();
800
+ this.updateContentAreas();
801
+ if (this.focused) {
802
+ this.focus(false);
803
+ }
804
+ this.updateCollapseAllToggle();
805
+ }
806
+ }
807
+ initializeCollapseAllToggle() {
808
+ if (!this.collapseAllToggleContext) {
809
+ this.collapseAllToggleContextKey = ( new RawContextKey(`treeView.${this.id}.toggleCollapseAll`, false, ( localize(
810
+ 'treeView.toggleCollapseAll',
811
+ "Whether collapse all is toggled for the tree view with id {0}.",
812
+ this.id
813
+ ))));
814
+ this.collapseAllToggleContext = this.collapseAllToggleContextKey.bindTo(this.contextKeyService);
815
+ }
816
+ }
817
+ updateCollapseAllToggle() {
818
+ if (this.showCollapseAllAction) {
819
+ this.initializeCollapseAllToggle();
820
+ this.collapseAllToggleContext?.set(!!this.root.children && (this.root.children.length > 0) &&
821
+ ( this.root.children.some(value => value.collapsibleState !== TreeItemCollapsibleState.None)));
822
+ }
823
+ }
824
+ updateContentAreas() {
825
+ const isTreeEmpty = !this.root.children || this.root.children.length === 0;
826
+ if (this._messageValue && isTreeEmpty && !this.refreshing && this.treeContainer) {
827
+ if (!this.dragAndDropController) {
828
+ this.treeContainer.classList.add('hide');
829
+ }
830
+ this.domNode.setAttribute('tabindex', '0');
831
+ }
832
+ else if (this.treeContainer) {
833
+ this.treeContainer.classList.remove('hide');
834
+ this.domNode.removeAttribute('tabindex');
835
+ }
836
+ }
837
+ get container() {
838
+ return this._container;
839
+ }
840
+ };
841
+ AbstractTreeView = ( __decorate([
842
+ ( __param(2, IThemeService)),
843
+ ( __param(3, IInstantiationService)),
844
+ ( __param(4, ICommandService)),
845
+ ( __param(5, IConfigurationService)),
846
+ ( __param(6, IProgressService)),
847
+ ( __param(7, IContextMenuService)),
848
+ ( __param(8, IKeybindingService)),
849
+ ( __param(9, INotificationService)),
850
+ ( __param(10, IViewDescriptorService)),
851
+ ( __param(11, IHoverService)),
852
+ ( __param(12, IContextKeyService)),
853
+ ( __param(13, IActivityService)),
854
+ ( __param(14, ILogService))
855
+ ], AbstractTreeView));
856
+ class TreeViewIdentityProvider {
857
+ getId(element) {
858
+ return element.handle;
859
+ }
860
+ }
861
+ class TreeViewDelegate {
862
+ getHeight(element) {
863
+ return TreeRenderer.ITEM_HEIGHT;
864
+ }
865
+ getTemplateId(element) {
866
+ return TreeRenderer.TREE_TEMPLATE_ID;
867
+ }
868
+ }
869
+ class TreeDataSource {
870
+ constructor(treeView, withProgress) {
871
+ this.treeView = treeView;
872
+ this.withProgress = withProgress;
873
+ }
874
+ hasChildren(element) {
875
+ return !!this.treeView.dataProvider && (element.collapsibleState !== TreeItemCollapsibleState.None);
876
+ }
877
+ async getChildren(element) {
878
+ let result = [];
879
+ if (this.treeView.dataProvider) {
880
+ try {
881
+ result = (await this.withProgress(this.treeView.dataProvider.getChildren(element))) ?? [];
882
+ }
883
+ catch (e) {
884
+ if (!e.message.startsWith('Bad progress location:')) {
885
+ throw e;
886
+ }
887
+ }
888
+ }
889
+ return result;
890
+ }
891
+ }
892
+ let TreeRenderer = class TreeRenderer extends Disposable {
893
+ constructor(treeViewId, menus, labels, actionViewItemProvider, aligner, checkboxStateHandler, themeService, configurationService, labelService, hoverService, treeViewsService, contextKeyService) {
894
+ super();
895
+ this.treeViewId = treeViewId;
896
+ this.menus = menus;
897
+ this.labels = labels;
898
+ this.actionViewItemProvider = actionViewItemProvider;
899
+ this.aligner = aligner;
900
+ this.checkboxStateHandler = checkboxStateHandler;
901
+ this.themeService = themeService;
902
+ this.configurationService = configurationService;
903
+ this.labelService = labelService;
904
+ this.hoverService = hoverService;
905
+ this.treeViewsService = treeViewsService;
906
+ this.contextKeyService = contextKeyService;
907
+ this._hasCheckbox = false;
908
+ this._renderedElements = ( new Map());
909
+ this._hoverDelegate = {
910
+ showHover: (options) => this.hoverService.showHover(options),
911
+ delay: this.configurationService.getValue('workbench.hover.delay')
912
+ };
913
+ this._register(this.themeService.onDidFileIconThemeChange(() => this.rerender()));
914
+ this._register(this.themeService.onDidColorThemeChange(() => this.rerender()));
915
+ }
916
+ get templateId() {
917
+ return TreeRenderer.TREE_TEMPLATE_ID;
918
+ }
919
+ set actionRunner(actionRunner) {
920
+ this._actionRunner = actionRunner;
921
+ }
922
+ renderTemplate(container) {
923
+ container.classList.add('custom-view-tree-node-item');
924
+ const checkboxContainer = dom.append(container, dom.$(''));
925
+ const resourceLabel = this.labels.create(container, { supportHighlights: true, hoverDelegate: this._hoverDelegate });
926
+ const icon = dom.prepend(resourceLabel.element, dom.$('.custom-view-tree-node-item-icon'));
927
+ const actionsContainer = dom.append(resourceLabel.element, dom.$('.actions'));
928
+ const actionBar = ( new ActionBar(actionsContainer, {
929
+ actionViewItemProvider: this.actionViewItemProvider
930
+ }));
931
+ return { resourceLabel, icon, checkboxContainer, actionBar, container, elementDisposable: ( new DisposableStore()) };
932
+ }
933
+ getHover(label, resource, node) {
934
+ if (!(node instanceof ResolvableTreeItem) || !node.hasResolve) {
935
+ if (resource && !node.tooltip) {
936
+ return undefined;
937
+ }
938
+ else if (node.tooltip === undefined) {
939
+ return label;
940
+ }
941
+ else if (!isString(node.tooltip)) {
942
+ return { markdown: node.tooltip, markdownNotSupportedFallback: resource ? undefined : renderMarkdownAsPlaintext(node.tooltip) };
943
+ }
944
+ else if (node.tooltip !== '') {
945
+ return node.tooltip;
946
+ }
947
+ else {
948
+ return undefined;
949
+ }
950
+ }
951
+ return {
952
+ markdown: typeof node.tooltip === 'string' ? node.tooltip :
953
+ (token) => {
954
+ return ( new Promise((resolve) => {
955
+ node.resolve(token).then(() => resolve(node.tooltip));
956
+ }));
957
+ },
958
+ markdownNotSupportedFallback: resource ? undefined : (label ?? '')
959
+ };
960
+ }
961
+ renderElement(element, index, templateData) {
962
+ const node = element.element;
963
+ const resource = node.resourceUri ? URI.revive(node.resourceUri) : null;
964
+ const treeItemLabel = node.label ? node.label : (resource ? { label: basename(resource) } : undefined);
965
+ const description = isString(node.description) ? node.description : resource && node.description === true ? this.labelService.getUriLabel(dirname(resource), { relative: true }) : undefined;
966
+ const label = treeItemLabel ? treeItemLabel.label : undefined;
967
+ const matches = (treeItemLabel && treeItemLabel.highlights && label) ? ( treeItemLabel.highlights.map(([start, end]) => {
968
+ if (start < 0) {
969
+ start = label.length + start;
970
+ }
971
+ if (end < 0) {
972
+ end = label.length + end;
973
+ }
974
+ if ((start >= label.length) || (end > label.length)) {
975
+ return ({ start: 0, end: 0 });
976
+ }
977
+ if (start > end) {
978
+ const swap = start;
979
+ start = end;
980
+ end = swap;
981
+ }
982
+ return ({ start, end });
983
+ })) : undefined;
984
+ const icon = this.themeService.getColorTheme().type === ColorScheme.LIGHT ? node.icon : node.iconDark;
985
+ const iconUrl = icon ? URI.revive(icon) : undefined;
986
+ const title = this.getHover(label, resource, node);
987
+ templateData.actionBar.clear();
988
+ templateData.icon.style.color = '';
989
+ let commandEnabled = true;
990
+ if (node.command) {
991
+ commandEnabled = isTreeCommandEnabled(node.command, this.contextKeyService);
992
+ }
993
+ this.renderCheckbox(node, templateData);
994
+ if (resource) {
995
+ const fileDecorations = this.configurationService.getValue('explorer.decorations');
996
+ const labelResource = resource ? resource : ( URI.parse('missing:_icon_resource'));
997
+ templateData.resourceLabel.setResource({ name: label, description, resource: labelResource }, {
998
+ fileKind: this.getFileKind(node),
999
+ title,
1000
+ hideIcon: this.shouldHideResourceLabelIcon(iconUrl, node.themeIcon),
1001
+ fileDecorations,
1002
+ extraClasses: ['custom-view-tree-node-item-resourceLabel'],
1003
+ matches: matches ? matches : createMatches(element.filterData),
1004
+ strikethrough: treeItemLabel?.strikethrough,
1005
+ disabledCommand: !commandEnabled,
1006
+ labelEscapeNewLines: true
1007
+ });
1008
+ }
1009
+ else {
1010
+ templateData.resourceLabel.setResource({ name: label, description }, {
1011
+ title,
1012
+ hideIcon: true,
1013
+ extraClasses: ['custom-view-tree-node-item-resourceLabel'],
1014
+ matches: matches ? matches : createMatches(element.filterData),
1015
+ strikethrough: treeItemLabel?.strikethrough,
1016
+ disabledCommand: !commandEnabled,
1017
+ labelEscapeNewLines: true
1018
+ });
1019
+ }
1020
+ if (iconUrl) {
1021
+ templateData.icon.className = 'custom-view-tree-node-item-icon';
1022
+ templateData.icon.style.backgroundImage = dom.asCSSUrl(iconUrl);
1023
+ }
1024
+ else {
1025
+ let iconClass;
1026
+ if (this.shouldShowThemeIcon(!!resource, node.themeIcon)) {
1027
+ iconClass = ThemeIcon.asClassName(node.themeIcon);
1028
+ if (node.themeIcon.color) {
1029
+ templateData.icon.style.color = this.themeService.getColorTheme().getColor(node.themeIcon.color.id)?.toString() ?? '';
1030
+ }
1031
+ }
1032
+ templateData.icon.className = iconClass ? `custom-view-tree-node-item-icon ${iconClass}` : '';
1033
+ templateData.icon.style.backgroundImage = '';
1034
+ }
1035
+ if (!commandEnabled) {
1036
+ templateData.icon.className = templateData.icon.className + ' disabled';
1037
+ if (templateData.container.parentElement) {
1038
+ templateData.container.parentElement.className = templateData.container.parentElement.className + ' disabled';
1039
+ }
1040
+ }
1041
+ templateData.actionBar.context = { $treeViewId: this.treeViewId, $treeItemHandle: node.handle };
1042
+ const menuActions = this.menus.getResourceActions(node);
1043
+ if (menuActions.menu) {
1044
+ templateData.elementDisposable.add(menuActions.menu);
1045
+ }
1046
+ templateData.actionBar.push(menuActions.actions, { icon: true, label: false });
1047
+ if (this._actionRunner) {
1048
+ templateData.actionBar.actionRunner = this._actionRunner;
1049
+ }
1050
+ this.setAlignment(templateData.container, node);
1051
+ this.treeViewsService.addRenderedTreeItemElement(node, templateData.container);
1052
+ this._renderedElements.set(element, templateData);
1053
+ }
1054
+ rerender() {
1055
+ const keys = ( new Set(( this._renderedElements.keys())));
1056
+ for (const key of keys) {
1057
+ const value = this._renderedElements.get(key);
1058
+ if (value) {
1059
+ this.disposeElement(key, 0, value);
1060
+ this.renderElement(key, 0, value);
1061
+ }
1062
+ }
1063
+ }
1064
+ renderCheckbox(node, templateData) {
1065
+ if (node.checkbox) {
1066
+ if (!this._hasCheckbox) {
1067
+ this._hasCheckbox = true;
1068
+ this.rerender();
1069
+ }
1070
+ if (!templateData.checkbox) {
1071
+ const checkbox = ( new TreeItemCheckbox(templateData.checkboxContainer, this.checkboxStateHandler));
1072
+ templateData.checkbox = checkbox;
1073
+ }
1074
+ templateData.checkbox.render(node);
1075
+ }
1076
+ else if (templateData.checkbox) {
1077
+ templateData.checkbox.dispose();
1078
+ templateData.checkbox = undefined;
1079
+ }
1080
+ }
1081
+ setAlignment(container, treeItem) {
1082
+ container.parentElement.classList.toggle('align-icon-with-twisty', !this._hasCheckbox && this.aligner.alignIconWithTwisty(treeItem));
1083
+ }
1084
+ shouldHideResourceLabelIcon(iconUrl, icon) {
1085
+ return (!!iconUrl || (!!icon && !this.isFileKindThemeIcon(icon)));
1086
+ }
1087
+ shouldShowThemeIcon(hasResource, icon) {
1088
+ if (!icon) {
1089
+ return false;
1090
+ }
1091
+ return !(hasResource && this.isFileKindThemeIcon(icon));
1092
+ }
1093
+ isFolderThemeIcon(icon) {
1094
+ return icon?.id === FolderThemeIcon.id;
1095
+ }
1096
+ isFileKindThemeIcon(icon) {
1097
+ if (icon) {
1098
+ return icon.id === FileThemeIcon.id || this.isFolderThemeIcon(icon);
1099
+ }
1100
+ else {
1101
+ return false;
1102
+ }
1103
+ }
1104
+ getFileKind(node) {
1105
+ if (node.themeIcon) {
1106
+ switch (node.themeIcon.id) {
1107
+ case FileThemeIcon.id:
1108
+ return FileKind.FILE;
1109
+ case FolderThemeIcon.id:
1110
+ return FileKind.FOLDER;
1111
+ }
1112
+ }
1113
+ return node.collapsibleState === TreeItemCollapsibleState.Collapsed || node.collapsibleState === TreeItemCollapsibleState.Expanded ? FileKind.FOLDER : FileKind.FILE;
1114
+ }
1115
+ disposeElement(resource, index, templateData) {
1116
+ templateData.elementDisposable.clear();
1117
+ this._renderedElements.delete(resource);
1118
+ this.treeViewsService.removeRenderedTreeItemElement(resource.element);
1119
+ templateData.checkbox?.dispose();
1120
+ templateData.checkbox = undefined;
1121
+ }
1122
+ disposeTemplate(templateData) {
1123
+ templateData.resourceLabel.dispose();
1124
+ templateData.actionBar.dispose();
1125
+ templateData.elementDisposable.dispose();
1126
+ }
1127
+ };
1128
+ TreeRenderer.ITEM_HEIGHT = 22;
1129
+ TreeRenderer.TREE_TEMPLATE_ID = 'treeExplorer';
1130
+ TreeRenderer = ( __decorate([
1131
+ ( __param(6, IThemeService)),
1132
+ ( __param(7, IConfigurationService)),
1133
+ ( __param(8, ILabelService)),
1134
+ ( __param(9, IHoverService)),
1135
+ ( __param(10, ITreeViewsService)),
1136
+ ( __param(11, IContextKeyService))
1137
+ ], TreeRenderer));
1138
+ class Aligner extends Disposable {
1139
+ constructor(themeService) {
1140
+ super();
1141
+ this.themeService = themeService;
1142
+ }
1143
+ set tree(tree) {
1144
+ this._tree = tree;
1145
+ }
1146
+ alignIconWithTwisty(treeItem) {
1147
+ if (treeItem.collapsibleState !== TreeItemCollapsibleState.None) {
1148
+ return false;
1149
+ }
1150
+ if (!this.hasIcon(treeItem)) {
1151
+ return false;
1152
+ }
1153
+ if (this._tree) {
1154
+ const parent = this._tree.getParentElement(treeItem) || this._tree.getInput();
1155
+ if (this.hasIcon(parent)) {
1156
+ return !!parent.children && ( parent.children.some(
1157
+ c => c.collapsibleState !== TreeItemCollapsibleState.None && !this.hasIcon(c)
1158
+ ));
1159
+ }
1160
+ return !!parent.children && parent.children.every(c => c.collapsibleState === TreeItemCollapsibleState.None || !this.hasIcon(c));
1161
+ }
1162
+ else {
1163
+ return false;
1164
+ }
1165
+ }
1166
+ hasIcon(node) {
1167
+ const icon = this.themeService.getColorTheme().type === ColorScheme.LIGHT ? node.icon : node.iconDark;
1168
+ if (icon) {
1169
+ return true;
1170
+ }
1171
+ if (node.resourceUri || node.themeIcon) {
1172
+ const fileIconTheme = this.themeService.getFileIconTheme();
1173
+ const isFolder = node.themeIcon ? node.themeIcon.id === FolderThemeIcon.id : node.collapsibleState !== TreeItemCollapsibleState.None;
1174
+ if (isFolder) {
1175
+ return fileIconTheme.hasFileIcons && fileIconTheme.hasFolderIcons;
1176
+ }
1177
+ return fileIconTheme.hasFileIcons;
1178
+ }
1179
+ return false;
1180
+ }
1181
+ }
1182
+ class MultipleSelectionActionRunner extends ActionRunner {
1183
+ constructor(notificationService, getSelectedResources) {
1184
+ super();
1185
+ this.getSelectedResources = getSelectedResources;
1186
+ this._register(this.onDidRun(e => {
1187
+ if (e.error && !isCancellationError(e.error)) {
1188
+ notificationService.error(( localize(
1189
+ 'command-error',
1190
+ 'Error running command {1}: {0}. This is likely caused by the extension that contributes {1}.',
1191
+ e.error.message,
1192
+ e.action.id
1193
+ )));
1194
+ }
1195
+ }));
1196
+ }
1197
+ async runAction(action, context) {
1198
+ const selection = this.getSelectedResources();
1199
+ let selectionHandleArgs = undefined;
1200
+ let actionInSelected = false;
1201
+ if (selection.length > 1) {
1202
+ selectionHandleArgs = ( selection.map(selected => {
1203
+ if ((selected.handle === context.$treeItemHandle) || context.$selectedTreeItems) {
1204
+ actionInSelected = true;
1205
+ }
1206
+ return { $treeViewId: context.$treeViewId, $treeItemHandle: selected.handle };
1207
+ }));
1208
+ }
1209
+ if (!actionInSelected) {
1210
+ selectionHandleArgs = undefined;
1211
+ }
1212
+ await action.run(context, selectionHandleArgs);
1213
+ }
1214
+ }
1215
+ let TreeMenus = class TreeMenus extends Disposable {
1216
+ constructor(id, menuService) {
1217
+ super();
1218
+ this.id = id;
1219
+ this.menuService = menuService;
1220
+ this._onDidChange = ( new Emitter());
1221
+ this.onDidChange = this._onDidChange.event;
1222
+ }
1223
+ getResourceActions(element) {
1224
+ const actions = this.getActions(MenuId.ViewItemContext, element, true);
1225
+ return { menu: actions.menu, actions: actions.primary };
1226
+ }
1227
+ getResourceContextActions(element) {
1228
+ return this.getActions(MenuId.ViewItemContext, element).secondary;
1229
+ }
1230
+ setContextKeyService(service) {
1231
+ this.contextKeyService = service;
1232
+ }
1233
+ getActions(menuId, element, listen = false) {
1234
+ if (!this.contextKeyService) {
1235
+ return { primary: [], secondary: [] };
1236
+ }
1237
+ const contextKeyService = this.contextKeyService.createOverlay([
1238
+ ['view', this.id],
1239
+ ['viewItem', element.contextValue]
1240
+ ]);
1241
+ const menu = this.menuService.createMenu(menuId, contextKeyService);
1242
+ const primary = [];
1243
+ const secondary = [];
1244
+ const result = { primary, secondary, menu };
1245
+ createAndFillInContextMenuActions(menu, { shouldForwardArgs: true }, result, 'inline');
1246
+ if (listen) {
1247
+ this._register(menu.onDidChange(() => this._onDidChange.fire(element)));
1248
+ }
1249
+ else {
1250
+ menu.dispose();
1251
+ }
1252
+ return result;
1253
+ }
1254
+ dispose() {
1255
+ this.contextKeyService = undefined;
1256
+ super.dispose();
1257
+ }
1258
+ };
1259
+ TreeMenus = ( __decorate([
1260
+ ( __param(1, IMenuService))
1261
+ ], TreeMenus));
1262
+ let CustomTreeView = class CustomTreeView extends AbstractTreeView {
1263
+ constructor(id, title, extensionId, themeService, instantiationService, commandService, configurationService, progressService, contextMenuService, keybindingService, notificationService, viewDescriptorService, contextKeyService, hoverService, extensionService, activityService, telemetryService, logService) {
1264
+ super(id, title, themeService, instantiationService, commandService, configurationService, progressService, contextMenuService, keybindingService, notificationService, viewDescriptorService, hoverService, contextKeyService, activityService, logService);
1265
+ this.extensionId = extensionId;
1266
+ this.extensionService = extensionService;
1267
+ this.telemetryService = telemetryService;
1268
+ this.activated = false;
1269
+ }
1270
+ activate() {
1271
+ if (!this.activated) {
1272
+ this.telemetryService.publicLog2('Extension:ViewActivate', {
1273
+ extensionId: ( new TelemetryTrustedValue(this.extensionId)),
1274
+ id: this.id,
1275
+ });
1276
+ this.createTree();
1277
+ this.progressService.withProgress({ location: this.id }, () => this.extensionService.activateByEvent(`onView:${this.id}`))
1278
+ .then(() => timeout(2000))
1279
+ .then(() => {
1280
+ this.updateMessage();
1281
+ });
1282
+ this.activated = true;
1283
+ }
1284
+ }
1285
+ };
1286
+ CustomTreeView = ( __decorate([
1287
+ ( __param(3, IThemeService)),
1288
+ ( __param(4, IInstantiationService)),
1289
+ ( __param(5, ICommandService)),
1290
+ ( __param(6, IConfigurationService)),
1291
+ ( __param(7, IProgressService)),
1292
+ ( __param(8, IContextMenuService)),
1293
+ ( __param(9, IKeybindingService)),
1294
+ ( __param(10, INotificationService)),
1295
+ ( __param(11, IViewDescriptorService)),
1296
+ ( __param(12, IContextKeyService)),
1297
+ ( __param(13, IHoverService)),
1298
+ ( __param(14, IExtensionService)),
1299
+ ( __param(15, IActivityService)),
1300
+ ( __param(16, ITelemetryService)),
1301
+ ( __param(17, ILogService))
1302
+ ], CustomTreeView));
1303
+ let CustomTreeViewDragAndDrop = class CustomTreeViewDragAndDrop {
1304
+ constructor(treeId, labelService, instantiationService, treeViewsDragAndDropService, logService) {
1305
+ this.treeId = treeId;
1306
+ this.labelService = labelService;
1307
+ this.instantiationService = instantiationService;
1308
+ this.treeViewsDragAndDropService = treeViewsDragAndDropService;
1309
+ this.logService = logService;
1310
+ this.treeItemsTransfer = LocalSelectionTransfer.getInstance();
1311
+ this.treeMimeType = `application/vnd.code.tree.${treeId.toLowerCase()}`;
1312
+ }
1313
+ set controller(controller) {
1314
+ this.dndController = controller;
1315
+ }
1316
+ handleDragAndLog(dndController, itemHandles, uuid, dragCancellationToken) {
1317
+ return dndController.handleDrag(itemHandles, uuid, dragCancellationToken).then(additionalDataTransfer => {
1318
+ if (additionalDataTransfer) {
1319
+ const unlistedTypes = [];
1320
+ for (const item of additionalDataTransfer.entries()) {
1321
+ if ((item[0] !== this.treeMimeType) && (dndController.dragMimeTypes.findIndex(value => value === item[0]) < 0)) {
1322
+ unlistedTypes.push(item[0]);
1323
+ }
1324
+ }
1325
+ if (unlistedTypes.length) {
1326
+ this.logService.warn(`Drag and drop controller for tree ${this.treeId} adds the following data transfer types but does not declare them in dragMimeTypes: ${unlistedTypes.join(', ')}`);
1327
+ }
1328
+ }
1329
+ return additionalDataTransfer;
1330
+ });
1331
+ }
1332
+ addExtensionProvidedTransferTypes(originalEvent, itemHandles) {
1333
+ if (!originalEvent.dataTransfer || !this.dndController) {
1334
+ return;
1335
+ }
1336
+ const uuid = generateUuid();
1337
+ this.dragCancellationToken = ( new CancellationTokenSource());
1338
+ this.treeViewsDragAndDropService.addDragOperationTransfer(uuid, this.handleDragAndLog(this.dndController, itemHandles, uuid, this.dragCancellationToken.token));
1339
+ this.treeItemsTransfer.setData([( new DraggedTreeItemsIdentifier(uuid))], DraggedTreeItemsIdentifier.prototype);
1340
+ originalEvent.dataTransfer.clearData(Mimes.text);
1341
+ if (this.dndController.dragMimeTypes.find((element) => element === Mimes.uriList)) {
1342
+ originalEvent.dataTransfer?.setData(DataTransfers.RESOURCES, '');
1343
+ }
1344
+ this.dndController.dragMimeTypes.forEach(supportedType => {
1345
+ originalEvent.dataTransfer?.setData(supportedType, '');
1346
+ });
1347
+ }
1348
+ addResourceInfoToTransfer(originalEvent, resources) {
1349
+ if (resources.length && originalEvent.dataTransfer) {
1350
+ this.instantiationService.invokeFunction(accessor => fillEditorsDragData(accessor, resources, originalEvent));
1351
+ const fileResources = ( resources.filter(s => s.scheme === Schemas.file).map(r => r.fsPath));
1352
+ if (fileResources.length) {
1353
+ originalEvent.dataTransfer.setData(CodeDataTransfers.FILES, JSON.stringify(fileResources));
1354
+ }
1355
+ }
1356
+ }
1357
+ onDragStart(data, originalEvent) {
1358
+ if (originalEvent.dataTransfer) {
1359
+ const treeItemsData = data.getData();
1360
+ const resources = [];
1361
+ const sourceInfo = {
1362
+ id: this.treeId,
1363
+ itemHandles: []
1364
+ };
1365
+ treeItemsData.forEach(item => {
1366
+ sourceInfo.itemHandles.push(item.handle);
1367
+ if (item.resourceUri) {
1368
+ resources.push(URI.revive(item.resourceUri));
1369
+ }
1370
+ });
1371
+ this.addResourceInfoToTransfer(originalEvent, resources);
1372
+ this.addExtensionProvidedTransferTypes(originalEvent, sourceInfo.itemHandles);
1373
+ originalEvent.dataTransfer.setData(this.treeMimeType, JSON.stringify(sourceInfo));
1374
+ }
1375
+ }
1376
+ debugLog(types) {
1377
+ if (types.size) {
1378
+ this.logService.debug(`TreeView dragged mime types: ${Array.from(types).join(', ')}`);
1379
+ }
1380
+ else {
1381
+ this.logService.debug(`TreeView dragged with no supported mime types.`);
1382
+ }
1383
+ }
1384
+ onDragOver(data, targetElement, targetIndex, originalEvent) {
1385
+ const dataTransfer = toVSDataTransfer(originalEvent.dataTransfer);
1386
+ addExternalEditorsDropData(dataTransfer, originalEvent);
1387
+ const types = ( new Set(( Array.from(dataTransfer.entries()).map(x => x[0]))));
1388
+ if (originalEvent.dataTransfer) {
1389
+ for (const item of originalEvent.dataTransfer.items) {
1390
+ if (item.kind === 'file' || item.type === DataTransfers.RESOURCES.toLowerCase()) {
1391
+ types.add(Mimes.uriList);
1392
+ break;
1393
+ }
1394
+ }
1395
+ }
1396
+ this.debugLog(types);
1397
+ const dndController = this.dndController;
1398
+ if (!dndController || !originalEvent.dataTransfer || (dndController.dropMimeTypes.length === 0)) {
1399
+ return false;
1400
+ }
1401
+ const dragContainersSupportedType = ( Array.from(types).some((value, index) => {
1402
+ if (value === this.treeMimeType) {
1403
+ return true;
1404
+ }
1405
+ else {
1406
+ return dndController.dropMimeTypes.indexOf(value) >= 0;
1407
+ }
1408
+ }));
1409
+ if (dragContainersSupportedType) {
1410
+ return { accept: true, bubble: 0 , autoExpand: true };
1411
+ }
1412
+ return false;
1413
+ }
1414
+ getDragURI(element) {
1415
+ if (!this.dndController) {
1416
+ return null;
1417
+ }
1418
+ return element.resourceUri ? ( URI.revive(element.resourceUri).toString()) : element.handle;
1419
+ }
1420
+ getDragLabel(elements) {
1421
+ if (!this.dndController) {
1422
+ return undefined;
1423
+ }
1424
+ if (elements.length > 1) {
1425
+ return String(elements.length);
1426
+ }
1427
+ const element = elements[0];
1428
+ return element.label ? element.label.label : (element.resourceUri ? this.labelService.getUriLabel(URI.revive(element.resourceUri)) : undefined);
1429
+ }
1430
+ async drop(data, targetNode, targetIndex, originalEvent) {
1431
+ const dndController = this.dndController;
1432
+ if (!originalEvent.dataTransfer || !dndController) {
1433
+ return;
1434
+ }
1435
+ let treeSourceInfo;
1436
+ let willDropUuid;
1437
+ if (this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)) {
1438
+ willDropUuid = this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype)[0].identifier;
1439
+ }
1440
+ const originalDataTransfer = toVSDataTransfer(originalEvent.dataTransfer);
1441
+ addExternalEditorsDropData(originalDataTransfer, originalEvent, true);
1442
+ const outDataTransfer = ( new VSDataTransfer());
1443
+ for (const [type, item] of originalDataTransfer.entries()) {
1444
+ if (type === this.treeMimeType || dndController.dropMimeTypes.includes(type) || (item.asFile() && dndController.dropMimeTypes.includes(DataTransfers.FILES.toLowerCase()))) {
1445
+ outDataTransfer.append(type, item);
1446
+ if (type === this.treeMimeType) {
1447
+ try {
1448
+ treeSourceInfo = JSON.parse(await item.asString());
1449
+ }
1450
+ catch {
1451
+ }
1452
+ }
1453
+ }
1454
+ }
1455
+ const additionalDataTransfer = await this.treeViewsDragAndDropService.removeDragOperationTransfer(willDropUuid);
1456
+ if (additionalDataTransfer) {
1457
+ for (const [type, item] of additionalDataTransfer.entries()) {
1458
+ outDataTransfer.append(type, item);
1459
+ }
1460
+ }
1461
+ return dndController.handleDrop(outDataTransfer, targetNode, CancellationToken.None, willDropUuid, treeSourceInfo?.id, treeSourceInfo?.itemHandles);
1462
+ }
1463
+ onDragEnd(originalEvent) {
1464
+ if (originalEvent.dataTransfer?.dropEffect === 'none') {
1465
+ this.dragCancellationToken?.cancel();
1466
+ }
1467
+ }
1468
+ };
1469
+ CustomTreeViewDragAndDrop = ( __decorate([
1470
+ ( __param(1, ILabelService)),
1471
+ ( __param(2, IInstantiationService)),
1472
+ ( __param(3, ITreeViewsDnDService)),
1473
+ ( __param(4, ILogService))
1474
+ ], CustomTreeViewDragAndDrop));
1475
+ export { CustomTreeView, CustomTreeViewDragAndDrop, RawCustomTreeViewContextKey, TreeViewPane };