@codingame/monaco-vscode-api 1.83.16 → 1.85.0-next.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 (328) hide show
  1. package/api.js +13 -7
  2. package/assets/clear.mp3 +0 -0
  3. package/assets/format.mp3 +0 -0
  4. package/assets/save.mp3 +0 -0
  5. package/extensions.d.ts +13 -3
  6. package/external/{xterm-addon-image/typings/xterm-addon-image.d.ts → @xterm/addon-image/typings/addon-image.d.ts} +1 -1
  7. package/external/{xterm → @xterm/xterm}/typings/xterm.d.ts +13 -1
  8. package/lifecycle.js +2 -2
  9. package/localExtensionHost.js +3 -1
  10. package/missing-services.js +115 -23
  11. package/monaco-editor-treemending.patch +6884 -18018
  12. package/monaco-treemending.js +2 -2
  13. package/package.json +7 -7
  14. package/service-override/tools/editor.d.ts +8 -8
  15. package/service-override/tools/editor.js +44 -19
  16. package/services.d.ts +2 -2
  17. package/services.js +3 -3
  18. package/vscode/src/vs/base/browser/broadcast.js +6 -5
  19. package/vscode/src/vs/base/browser/dnd.d.ts +6 -0
  20. package/vscode/src/vs/base/browser/mouseEvent.d.ts +1 -1
  21. package/vscode/src/vs/base/browser/touch.d.ts +10 -0
  22. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.d.ts +1 -0
  23. package/vscode/src/vs/base/browser/ui/iconLabel/iconHoverDelegate.d.ts +22 -15
  24. package/vscode/src/vs/base/browser/ui/menu/menubar.js +4 -3
  25. package/vscode/src/vs/base/browser/ui/splitview/paneview.css.js +1 -1
  26. package/vscode/src/vs/base/browser/ui/splitview/paneview.d.ts +3 -0
  27. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +34 -11
  28. package/vscode/src/vs/base/common/actions.d.ts +1 -15
  29. package/vscode/src/vs/base/common/async.d.ts +1 -31
  30. package/vscode/src/vs/base/common/event.d.ts +2 -1
  31. package/vscode/src/vs/base/common/observableInternal/base.d.ts +23 -10
  32. package/vscode/src/vs/base/common/prefixTree.js +21 -11
  33. package/vscode/src/vs/base/common/product.d.ts +16 -2
  34. package/vscode/src/vs/base/common/resourceTree.js +135 -0
  35. package/vscode/src/vs/base/common/skipList.js +1 -0
  36. package/vscode/src/vs/base/common/tfIdf.js +137 -0
  37. package/vscode/src/vs/base/common/types.d.ts +13 -1
  38. package/vscode/src/vs/base/common/verifier.js +62 -0
  39. package/vscode/src/vs/editor/browser/editorBrowser.d.ts +4 -2
  40. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +23 -4
  41. package/vscode/src/vs/editor/common/core/lineRange.d.ts +1 -0
  42. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +3 -0
  43. package/vscode/src/vs/editor/common/core/position.d.ts +1 -0
  44. package/vscode/src/vs/editor/common/editorCommon.d.ts +2 -1
  45. package/vscode/src/vs/editor/common/languages.d.ts +23 -1
  46. package/vscode/src/vs/editor/common/services/languageFeatures.d.ts +2 -1
  47. package/vscode/src/vs/editor/common/services/resolverService.d.ts +11 -2
  48. package/vscode/src/vs/platform/accessibility/common/accessibility.d.ts +16 -1
  49. package/vscode/src/vs/platform/action/common/action.d.ts +8 -0
  50. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +4 -0
  51. package/vscode/src/vs/platform/actions/common/actions.d.ts +8 -0
  52. package/vscode/src/vs/platform/audioCues/browser/audioCueService.d.ts +6 -0
  53. package/vscode/src/vs/platform/commands/common/commands.d.ts +13 -5
  54. package/vscode/src/vs/platform/dialogs/common/dialogs.d.ts +9 -3
  55. package/vscode/src/vs/platform/dialogs/common/dialogs.js +5 -2
  56. package/vscode/src/vs/platform/editor/common/editor.d.ts +3 -15
  57. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +1 -0
  58. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +3 -15
  59. package/vscode/src/vs/platform/extensionManagement/common/implicitActivationEvents.js +5 -0
  60. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +0 -1
  61. package/vscode/src/vs/platform/files/common/files.d.ts +72 -8
  62. package/vscode/src/vs/platform/files/common/watcher.js +77 -0
  63. package/vscode/src/vs/platform/keybinding/common/keybindingsRegistry.d.ts +2 -2
  64. package/vscode/src/vs/platform/layout/browser/layoutService.d.ts +52 -21
  65. package/vscode/src/vs/platform/request/browser/requestService.js +3 -0
  66. package/vscode/src/vs/platform/request/common/requestIpc.js +17 -0
  67. package/vscode/src/vs/platform/storage/common/storage.js +2 -2
  68. package/vscode/src/vs/platform/telemetry/common/telemetry.d.ts +1 -0
  69. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +12 -7
  70. package/vscode/src/vs/platform/terminal/common/capabilities/{commandDetectionCapability.d.ts → commandDetection/terminalCommand.d.ts} +3 -2
  71. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/terminalCommand.js +257 -0
  72. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +439 -354
  73. package/vscode/src/vs/platform/window/common/window.d.ts +9 -2
  74. package/vscode/src/vs/platform/window/common/window.js +6 -1
  75. package/vscode/src/vs/platform/workspaces/common/workspaces.d.ts +2 -43
  76. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +113 -81
  77. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +5 -4
  78. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +25 -3
  79. package/vscode/src/vs/workbench/api/common/extHostChat.js +13 -163
  80. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +412 -0
  81. package/vscode/src/vs/workbench/api/common/extHostChatProvider.js +79 -11
  82. package/vscode/src/vs/workbench/api/common/extHostCommands.js +13 -12
  83. package/vscode/src/vs/workbench/api/common/extHostComments.js +1 -1
  84. package/vscode/src/vs/workbench/api/common/extHostEditorTabs.js +8 -6
  85. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +1 -1
  86. package/vscode/src/vs/workbench/api/common/extHostFileSystemEventService.js +36 -19
  87. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +52 -31
  88. package/vscode/src/vs/workbench/api/common/extHostIssueReporter.js +38 -0
  89. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +28 -3
  90. package/vscode/src/vs/workbench/api/common/extHostLanguages.js +10 -0
  91. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +117 -2
  92. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +32 -4
  93. package/vscode/src/vs/workbench/api/common/extHostSCM.js +85 -23
  94. package/vscode/src/vs/workbench/api/common/extHostSearch.js +3 -0
  95. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +42 -0
  96. package/vscode/src/vs/workbench/api/common/extHostTask.js +2 -1
  97. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -0
  98. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +3 -3
  99. package/vscode/src/vs/workbench/api/common/extHostTesting.js +97 -47
  100. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +115 -16
  101. package/vscode/src/vs/workbench/api/common/extHostTypes.js +66 -36
  102. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +6 -1
  103. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +182 -75
  104. package/vscode/src/vs/workbench/browser/actions/windowActions.js +176 -4
  105. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +143 -2
  106. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +237 -0
  107. package/vscode/src/vs/workbench/browser/composite.d.ts +0 -4
  108. package/vscode/src/vs/workbench/browser/composite.js +5 -4
  109. package/vscode/src/vs/workbench/browser/dnd.js +72 -23
  110. package/vscode/src/vs/workbench/browser/labels.js +7 -3
  111. package/vscode/src/vs/workbench/browser/media/part.css.js +1 -1
  112. package/vscode/src/vs/workbench/browser/panecomposite.d.ts +2 -2
  113. package/vscode/src/vs/workbench/browser/panecomposite.js +2 -0
  114. package/vscode/src/vs/workbench/browser/part.js +33 -2
  115. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +99 -117
  116. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +173 -33
  117. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +102 -6
  118. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +256 -17
  119. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +4 -0
  120. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +68 -35
  121. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +5 -5
  122. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +35 -16
  123. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +348 -0
  124. package/vscode/src/vs/workbench/browser/parts/editor/editorsObserver.js +43 -31
  125. package/vscode/src/vs/workbench/browser/parts/editor/media/editortabscontrol.css.js +4 -0
  126. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -0
  127. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +1 -0
  128. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +14 -2
  129. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +4 -4
  130. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +277 -0
  131. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +5 -2
  132. package/vscode/src/vs/workbench/browser/parts/panel/media/panelpart.css.js +1 -1
  133. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +3 -38
  134. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.d.ts +54 -52
  135. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +2 -1
  136. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.d.ts +25 -0
  137. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +258 -0
  138. package/vscode/src/vs/workbench/browser/parts/views/media/paneviewlet.css.js +1 -1
  139. package/vscode/src/vs/workbench/browser/parts/views/viewPane.d.ts +2 -5
  140. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +157 -117
  141. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +50 -23
  142. package/vscode/src/vs/workbench/browser/parts/views/viewsService.js +26 -11
  143. package/vscode/src/vs/workbench/browser/parts/views/viewsViewlet.js +10 -6
  144. package/vscode/src/vs/workbench/browser/style.js +2 -1
  145. package/vscode/src/vs/workbench/browser/web.api.d.ts +39 -2
  146. package/vscode/src/vs/workbench/browser/window.js +55 -0
  147. package/vscode/src/vs/workbench/browser/workbench.contribution.js +220 -40
  148. package/vscode/src/vs/workbench/common/activity.js +3 -0
  149. package/vscode/src/vs/workbench/common/contextkeys.js +35 -5
  150. package/vscode/src/vs/workbench/common/contributions.js +4 -3
  151. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +14 -4
  152. package/vscode/src/vs/workbench/common/editor/diffEditorModel.js +1 -1
  153. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +22 -19
  154. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +4 -3
  155. package/vscode/src/vs/workbench/common/editor/editorModel.d.ts +1 -2
  156. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +22 -4
  157. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.js +3 -3
  158. package/vscode/src/vs/workbench/common/editor.d.ts +60 -30
  159. package/vscode/src/vs/workbench/common/editor.js +11 -3
  160. package/vscode/src/vs/workbench/common/theme.js +2 -2
  161. package/vscode/src/vs/workbench/common/views.d.ts +4 -4
  162. package/vscode/src/vs/workbench/common/views.js +3 -1
  163. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +97 -8
  164. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +17 -99
  165. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +103 -37
  166. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +2 -3
  167. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +127 -0
  168. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +71 -0
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +2 -1
  170. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +33 -110
  171. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +64 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +94 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +6 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +1 -88
  175. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +4 -4
  176. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -2
  177. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +3 -1
  178. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +15 -16
  179. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +9 -3
  180. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +3 -1
  181. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +2 -3
  182. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +1 -0
  183. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +9 -1
  184. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +10 -1
  185. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +114 -22
  186. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  187. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +4 -1
  188. package/vscode/src/vs/workbench/contrib/files/browser/explorerFileContrib.js +19 -0
  189. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +10 -8
  190. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +62 -10
  191. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +2 -1
  192. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +9 -8
  193. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +10 -1
  194. package/vscode/src/vs/workbench/contrib/files/browser/files.d.ts +1 -0
  195. package/vscode/src/vs/workbench/contrib/files/browser/files.js +7 -3
  196. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +4 -4
  197. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +64 -36
  198. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +42 -17
  199. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +145 -25
  200. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +1 -1
  201. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  202. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +36 -0
  203. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +3 -1
  204. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +24 -3
  205. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +11 -6
  206. package/vscode/src/vs/workbench/contrib/scm/common/scm.js +1 -2
  207. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/searchNotebookHelpers.js +31 -0
  208. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +61 -41
  209. package/vscode/src/vs/workbench/contrib/search/{browser/searchNotebookHelpers.js → common/cellSearchModel.js} +4 -63
  210. package/vscode/src/vs/workbench/contrib/search/common/searchNotebookHelpers.js +40 -0
  211. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +2 -2
  212. package/vscode/src/vs/workbench/{services/editor/browser/editorDropService.js → contrib/speech/common/speechService.js} +2 -2
  213. package/vscode/src/vs/workbench/contrib/terminal/browser/detachedTerminal.js +29 -4
  214. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +100 -79
  215. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.d.ts +3 -3
  216. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +1 -1
  217. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcon.js +7 -4
  218. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +5 -3
  219. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +143 -41
  220. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +17 -11
  221. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +41 -26
  222. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts +5 -2
  223. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +2 -8
  224. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +2 -0
  225. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +115 -0
  226. package/vscode/src/vs/workbench/contrib/testing/common/testCoverageService.js +74 -0
  227. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +3 -3
  228. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +64 -1
  229. package/vscode/src/vs/workbench/contrib/testing/common/testingContextKeys.js +9 -0
  230. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +4 -3
  231. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +8 -9
  232. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput.js +1 -1
  233. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +5 -2
  234. package/vscode/src/vs/workbench/services/activity/browser/activityService.d.ts +16 -10
  235. package/vscode/src/vs/workbench/services/activity/common/activity.d.ts +14 -1
  236. package/vscode/src/vs/workbench/services/activity/common/activity.js +1 -7
  237. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +9 -28
  238. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +273 -0
  239. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolver.js +1 -0
  240. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +2 -0
  241. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +2 -3
  242. package/vscode/src/vs/workbench/services/editor/browser/editorService.d.ts +7 -5
  243. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +59 -37
  244. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +193 -94
  245. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.js +2 -2
  246. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.d.ts +8 -2
  247. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +8 -1
  248. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +62 -16
  249. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +5 -3
  250. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +3 -2
  251. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +4 -9
  252. package/vscode/src/vs/workbench/services/extensions/common/{extensionHostManager.d.ts → extensionHostManagers.d.ts} +2 -0
  253. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.d.ts +1 -1
  254. package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +9 -0
  255. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +22 -0
  256. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +14 -3
  257. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +9 -0
  258. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -3
  259. package/vscode/src/vs/workbench/services/history/common/history.d.ts +2 -2
  260. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +49 -18
  261. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +29 -7
  262. package/vscode/src/vs/workbench/services/hover/browser/hover.d.ts +51 -28
  263. package/vscode/src/vs/workbench/services/hover/browser/hoverService.d.ts +5 -2
  264. package/vscode/src/vs/workbench/services/keybinding/browser/unboundCommands.js +2 -2
  265. package/vscode/src/vs/workbench/services/languageStatus/common/languageStatusService.d.ts +4 -1
  266. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +40 -36
  267. package/vscode/src/vs/workbench/services/panecomposite/browser/panecomposite.d.ts +0 -6
  268. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +3 -0
  269. package/vscode/src/vs/workbench/services/progress/browser/progressIndicator.js +2 -2
  270. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.d.ts +16 -1
  271. package/vscode/src/vs/workbench/services/request/browser/requestService.js +48 -0
  272. package/vscode/src/vs/workbench/services/search/common/searchHelpers.js +4 -4
  273. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +10 -51
  274. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +2 -2
  275. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +32 -1
  276. package/vscode/src/vs/workbench/services/textfile/common/textEditorService.js +1 -5
  277. package/vscode/src/vs/workbench/services/themes/browser/browserHostColorSchemeService.js +4 -3
  278. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +9 -3
  279. package/vscode/src/vs/workbench/services/title/browser/titleService.d.ts +18 -0
  280. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +18 -3
  281. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorModel.js +16 -7
  282. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +6 -0
  283. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +13 -0
  284. package/vscode/src/vs/workbench/services/url/browser/urlService.js +2 -1
  285. package/vscode/src/vs/workbench/services/userActivity/common/userActivityService.js +2 -2
  286. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +9 -0
  287. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +375 -0
  288. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +80 -0
  289. package/vscode-dts/vscode.proposed.chatProvider.d.ts +5 -1
  290. package/vscode-dts/vscode.proposed.chatRequestAccess.d.ts +68 -10
  291. package/vscode-dts/vscode.proposed.chatTab.d.ts +21 -0
  292. package/vscode-dts/vscode.proposed.chatVariables.d.ts +5 -1
  293. package/vscode-dts/vscode.proposed.codeActionAI.d.ts +16 -0
  294. package/vscode-dts/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +7 -0
  295. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +51 -0
  296. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +30 -0
  297. package/vscode-dts/vscode.proposed.handleIssueUri.d.ts +26 -0
  298. package/vscode-dts/vscode.proposed.interactive.d.ts +26 -100
  299. package/vscode-dts/vscode.proposed.interactiveUserActions.d.ts +14 -7
  300. package/vscode-dts/vscode.proposed.languageStatusText.d.ts +12 -0
  301. package/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts +63 -0
  302. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +43 -0
  303. package/vscode-dts/vscode.proposed.resolvers.d.ts +100 -1
  304. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +9 -1
  305. package/vscode-dts/vscode.proposed.scmInputBoxActionButton.d.ts +19 -0
  306. package/vscode-dts/vscode.proposed.scmInputBoxValueProvider.d.ts +25 -0
  307. package/vscode-dts/vscode.proposed.speech.d.ts +35 -0
  308. package/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts +11 -7
  309. package/vscode-dts/vscode.proposed.testCoverage.d.ts +6 -1
  310. package/vscode-dts/vscode.proposed.testingActiveProfile.d.ts +21 -0
  311. package/external/xterm-headless/typings/xterm-headless.d.ts +0 -49
  312. package/vscode/src/vs/platform/backup/common/backup.d.ts +0 -14
  313. package/vscode/src/vs/platform/update/common/update.d.ts +0 -112
  314. package/vscode/src/vs/workbench/api/common/extHostChatAgents.js +0 -62
  315. package/vscode/src/vs/workbench/api/common/extHostChatSlashCommand.js +0 -62
  316. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.d.ts +0 -56
  317. package/vscode/src/vs/workbench/services/files/common/files.js +0 -4
  318. package/vscode/src/vs/workbench/services/host/browser/browserHostService.d.ts +0 -41
  319. package/vscode/src/vs/workbench/services/title/common/titleService.d.ts +0 -31
  320. package/vscode-dts/vscode.proposed.chatAgents.d.ts +0 -39
  321. package/vscode-dts/vscode.proposed.chatSlashCommands.d.ts +0 -47
  322. package/vscode-dts/vscode.proposed.testMessageContextValue.d.ts +0 -45
  323. /package/external/{xterm-addon-canvas/typings/xterm-addon-canvas.d.ts → @xterm/addon-canvas/typings/addon-canvas.d.ts} +0 -0
  324. /package/external/{xterm-addon-search/typings/xterm-addon-search.d.ts → @xterm/addon-search/typings/addon-search.d.ts} +0 -0
  325. /package/external/{xterm-addon-serialize/typings/xterm-addon-serialize.d.ts → @xterm/addon-serialize/typings/addon-serialize.d.ts} +0 -0
  326. /package/external/{xterm-addon-unicode11/typings/xterm-addon-unicode11.d.ts → @xterm/addon-unicode11/typings/addon-unicode11.d.ts} +0 -0
  327. /package/external/{xterm-addon-webgl/typings/xterm-addon-webgl.d.ts → @xterm/addon-webgl/typings/addon-webgl.d.ts} +0 -0
  328. /package/vscode/src/vs/workbench/services/title/{common → browser}/titleService.js +0 -0
@@ -19,7 +19,7 @@ import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspac
19
19
  import { extractEditorsAndFilesDropData } from 'monaco-editor/esm/vs/platform/dnd/browser/dnd.js';
20
20
  import { IWorkspaceEditingService } from '../../../services/workspaces/common/workspaceEditing.js';
21
21
  import { isWeb } from 'monaco-editor/esm/vs/base/common/platform.js';
22
- import { triggerDownload } from 'monaco-editor/esm/vs/base/browser/dom.js';
22
+ import { isDragEvent, getActiveWindow, triggerDownload } from 'monaco-editor/esm/vs/base/browser/dom.js';
23
23
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
24
24
  import { FileAccess, Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
25
25
  import { mnemonicButtonLabel } from 'monaco-editor/esm/vs/base/common/labels.js';
@@ -60,7 +60,7 @@ let BrowserFileUpload = class BrowserFileUpload {
60
60
  return uploadPromise;
61
61
  }
62
62
  toTransfer(source) {
63
- if (source instanceof DragEvent) {
63
+ if (isDragEvent(source)) {
64
64
  return source.dataTransfer;
65
65
  }
66
66
  const transfer = { items: [] };
@@ -306,7 +306,7 @@ let ExternalFileImport = class ExternalFileImport {
306
306
  this.notificationService = notificationService;
307
307
  this.instantiationService = instantiationService;
308
308
  }
309
- async import(target, source) {
309
+ async import(target, source, targetWindow) {
310
310
  const cts = ( new CancellationTokenSource());
311
311
  const importPromise = this.progressService.withProgress({
312
312
  location: 10 ,
@@ -317,11 +317,11 @@ let ExternalFileImport = class ExternalFileImport {
317
317
  'copyingFiles',
318
318
  "Copying..."
319
319
  ))
320
- }, async () => await this.doImport(target, source, cts.token), () => cts.dispose(true));
320
+ }, async () => await this.doImport(target, source, targetWindow, cts.token), () => cts.dispose(true));
321
321
  this.progressService.withProgress({ location: VIEW_ID, delay: 500 }, () => importPromise);
322
322
  return importPromise;
323
323
  }
324
- async doImport(target, source, token) {
324
+ async doImport(target, source, targetWindow, token) {
325
325
  const candidateFiles = coalesce(( (await this.instantiationService.invokeFunction(accessor => extractEditorsAndFilesDropData(accessor, source))).map(editor => editor.resource)));
326
326
  await Promise.all(( candidateFiles.map(resource => this.fileService.activateProvider(resource.scheme))));
327
327
  const files = coalesce(candidateFiles.filter(resource => this.fileService.hasProvider(resource)));
@@ -329,7 +329,7 @@ let ExternalFileImport = class ExternalFileImport {
329
329
  if (token.isCancellationRequested) {
330
330
  return;
331
331
  }
332
- this.hostService.focus();
332
+ this.hostService.focus(targetWindow);
333
333
  const folders = ( resolvedFiles.filter(resolvedFile => resolvedFile.success && resolvedFile.stat?.isDirectory).map(resolvedFile => ({ uri: resolvedFile.stat.resource })));
334
334
  if (folders.length > 0 && target.isRoot) {
335
335
  let ImportChoice;
@@ -557,9 +557,10 @@ let FileDownload = class FileDownload {
557
557
  }
558
558
  const maxBlobDownloadSize = 32 * ByteSize.MB;
559
559
  const preferFileSystemAccessWebApis = stat.isDirectory || stat.size > maxBlobDownloadSize;
560
- if (preferFileSystemAccessWebApis && WebFileSystemAccess.supported(window)) {
560
+ const activeWindow = getActiveWindow();
561
+ if (preferFileSystemAccessWebApis && WebFileSystemAccess.supported(activeWindow)) {
561
562
  try {
562
- const parentFolder = await window.showDirectoryPicker();
563
+ const parentFolder = await activeWindow.showDirectoryPicker();
563
564
  const operation = {
564
565
  startTime: Date.now(),
565
566
  progressScheduler: ( new RunOnceWorker(steps => { progress.report(steps[steps.length - 1]); }, 1000)),
@@ -596,6 +596,15 @@ configurationRegistry.registerConfiguration({
596
596
  )),
597
597
  'default': true
598
598
  },
599
+ 'explorer.confirmPasteNative': {
600
+ 'type': 'boolean',
601
+ 'description': ( nls.localizeWithPath(
602
+ 'vs/workbench/contrib/files/browser/files.contribution',
603
+ 'confirmPasteNative',
604
+ "Controls whether the Explorer should ask for confirmation when pasting native files and folders."
605
+ )),
606
+ 'default': true
607
+ },
599
608
  'explorer.confirmDelete': {
600
609
  'type': 'boolean',
601
610
  'description': ( nls.localizeWithPath(
@@ -765,7 +774,7 @@ configurationRegistry.registerConfiguration({
765
774
  description: ( nls.localizeWithPath(
766
775
  'vs/workbench/contrib/files/browser/files.contribution',
767
776
  'explorer.incrementalNaming',
768
- "Controls what naming strategy to use when a giving a new name to a duplicated Explorer item on paste."
777
+ "Controls which naming strategy to use when giving a new name to a duplicated Explorer item on paste."
769
778
  )),
770
779
  default: 'simple'
771
780
  },
@@ -39,6 +39,7 @@ interface IExplorerService {
39
39
  }
40
40
  declare const IExplorerService: ServiceIdentifier<IExplorerService>;
41
41
  interface IExplorerView {
42
+ autoReveal: boolean | 'force' | 'focusNoScroll';
42
43
  getContext(respectMultiSelection: boolean): ExplorerItem[];
43
44
  refresh(recursive: boolean, item?: ExplorerItem): Promise<void>;
44
45
  selectResource(resource: URI | undefined, reveal?: boolean | string): Promise<void>;
@@ -6,10 +6,12 @@ import { ExplorerItem } from '../common/explorerModel.js';
6
6
  import { coalesce } from 'monaco-editor/esm/vs/base/common/arrays.js';
7
7
  import { AsyncDataTree } from 'monaco-editor/esm/vs/base/browser/ui/tree/asyncDataTree.js';
8
8
  import { createDecorator } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
9
+ import { isActiveElement } from 'monaco-editor/esm/vs/base/browser/dom.js';
9
10
  const IExplorerService = ( createDecorator('explorerService'));
10
11
  function getFocus(listService) {
11
12
  const list = listService.lastFocusedList;
12
- if (list?.getHTMLElement() === document.activeElement) {
13
+ const element = list?.getHTMLElement();
14
+ if (element && isActiveElement(element)) {
13
15
  let focus;
14
16
  if (list instanceof List) {
15
17
  const focused = list.getFocusedElements();
@@ -42,7 +44,8 @@ function getResourceForCommand(resource, listService, editorService) {
42
44
  }
43
45
  function getMultiSelectedResources(resource, listService, editorService, explorerService) {
44
46
  const list = listService.lastFocusedList;
45
- if (list?.getHTMLElement() === document.activeElement) {
47
+ const element = list?.getHTMLElement();
48
+ if (element && isActiveElement(element)) {
46
49
  if (list instanceof AsyncDataTree && list.getFocus().every(item => item instanceof ExplorerItem)) {
47
50
  const context = explorerService.getContext(true, true);
48
51
  if (context.length) {
@@ -71,7 +74,8 @@ function getMultiSelectedResources(resource, listService, editorService, explore
71
74
  }
72
75
  function getOpenEditorsViewMultiSelection(listService, editorGroupService) {
73
76
  const list = listService.lastFocusedList;
74
- if (list?.getHTMLElement() === document.activeElement) {
77
+ const element = list?.getHTMLElement();
78
+ if (element && isActiveElement(element)) {
75
79
  if (list instanceof List) {
76
80
  const selection = coalesce(list.getSelectedElements().filter(s => s instanceof OpenEditor));
77
81
  const focusedElements = list.getFocusedElements();
@@ -15,12 +15,12 @@ import { IViewDescriptorService } from '../../../../common/views.js';
15
15
  import { IOpenerService } from 'monaco-editor/esm/vs/platform/opener/common/opener.js';
16
16
  import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
17
17
  import { isWeb } from 'monaco-editor/esm/vs/base/common/platform.js';
18
- import { DragAndDropObserver } from 'monaco-editor/esm/vs/base/browser/dom.js';
18
+ import { DragAndDropObserver, getWindow } from 'monaco-editor/esm/vs/base/browser/dom.js';
19
19
  var EmptyView_1;
20
20
  let EmptyView = class EmptyView extends ViewPane {
21
21
  static { EmptyView_1 = this; }
22
22
  static { this.ID = 'workbench.explorer.emptyView'; }
23
- static { this.NAME = ( nls.localizeWithPath(
23
+ static { this.NAME = ( nls.localize2WithPath(
24
24
  'vs/workbench/contrib/files/browser/views/emptyView',
25
25
  'noWorkspace',
26
26
  "No Folder Opened"
@@ -42,7 +42,7 @@ let EmptyView = class EmptyView extends ViewPane {
42
42
  onDrop: e => {
43
43
  container.style.backgroundColor = '';
44
44
  const dropHandler = this.instantiationService.createInstance(ResourcesDropHandler, { allowWorkspaceOpen: !isWeb || isTemporaryWorkspace(this.contextService.getWorkspace()) });
45
- dropHandler.handleDrop(e);
45
+ dropHandler.handleDrop(e, getWindow(container));
46
46
  },
47
47
  onDragEnter: () => {
48
48
  const color = this.themeService.getColorTheme().getColor(listDropBackground);
@@ -67,7 +67,7 @@ let EmptyView = class EmptyView extends ViewPane {
67
67
  return;
68
68
  }
69
69
  if (this.contextService.getWorkbenchState() === 3 ) {
70
- this.updateTitle(EmptyView_1.NAME);
70
+ this.updateTitle(EmptyView_1.NAME.value);
71
71
  }
72
72
  else {
73
73
  this.updateTitle(this.title);
@@ -79,11 +79,13 @@ function getContext(focus, selection, respectMultiSelection, compressedNavigatio
79
79
  if (respectMultiSelection && selection.length > 1) {
80
80
  focusedStat = undefined;
81
81
  }
82
- const compressedNavigationController = focusedStat && compressedNavigationControllerProvider.getCompressedNavigationController(focusedStat);
82
+ const compressedNavigationControllers = focusedStat && compressedNavigationControllerProvider.getCompressedNavigationController(focusedStat);
83
+ const compressedNavigationController = compressedNavigationControllers && compressedNavigationControllers.length ? compressedNavigationControllers[0] : undefined;
83
84
  focusedStat = compressedNavigationController ? compressedNavigationController.current : focusedStat;
84
85
  const selectedStats = [];
85
86
  for (const stat of selection) {
86
- const controller = compressedNavigationControllerProvider.getCompressedNavigationController(stat);
87
+ const controllers = compressedNavigationControllerProvider.getCompressedNavigationController(stat);
88
+ const controller = controllers && controllers.length ? controllers[0] : undefined;
87
89
  if (controller && focusedStat && controller === compressedNavigationController) {
88
90
  if (stat === focusedStat) {
89
91
  selectedStats.push(stat);
@@ -128,7 +130,7 @@ let ExplorerView = class ExplorerView extends ViewPane {
128
130
  this.fileService = fileService;
129
131
  this.uriIdentityService = uriIdentityService;
130
132
  this.commandService = commandService;
131
- this.autoReveal = false;
133
+ this._autoReveal = false;
132
134
  this.delegate = options.delegate;
133
135
  this.resourceContext = instantiationService.createInstance(ResourceContextKey);
134
136
  this._register(this.resourceContext);
@@ -144,6 +146,12 @@ let ExplorerView = class ExplorerView extends ViewPane {
144
146
  this.viewVisibleContextKey = FoldersViewVisibleContext.bindTo(contextKeyService);
145
147
  this.explorerService.registerView(this);
146
148
  }
149
+ get autoReveal() {
150
+ return this._autoReveal;
151
+ }
152
+ set autoReveal(autoReveal) {
153
+ this._autoReveal = autoReveal;
154
+ }
147
155
  get name() {
148
156
  return this.labelService.getWorkspaceLabel(this.contextService.getWorkspace());
149
157
  }
@@ -207,16 +215,23 @@ let ExplorerView = class ExplorerView extends ViewPane {
207
215
  this.selectActiveFile(true);
208
216
  }
209
217
  }));
218
+ this._register(dom.addDisposableListener(dom.getWindow(this.container), dom.EventType.PASTE, async (event) => {
219
+ if (!this.hasFocus() || this.readonlyContext.get()) {
220
+ return;
221
+ }
222
+ await this.commandService.executeCommand('filesExplorer.paste', event.clipboardData?.files);
223
+ }));
210
224
  }
211
225
  focus() {
226
+ super.focus();
212
227
  this.tree.domFocus();
213
228
  const focused = this.tree.getFocus();
214
- if (focused.length === 1 && this.autoReveal) {
229
+ if (focused.length === 1 && this._autoReveal) {
215
230
  this.tree.reveal(focused[0], 0.5);
216
231
  }
217
232
  }
218
233
  hasFocus() {
219
- return dom.isAncestor(document.activeElement, this.container);
234
+ return dom.isAncestorOfActiveElement(this.container);
220
235
  }
221
236
  getContext(respectMultiSelection) {
222
237
  return getContext(this.tree.getFocus(), this.tree.getSelection(), respectMultiSelection, this.renderer);
@@ -254,8 +269,8 @@ let ExplorerView = class ExplorerView extends ViewPane {
254
269
  this.tree.domFocus();
255
270
  }
256
271
  }
257
- selectActiveFile(reveal = this.autoReveal) {
258
- if (this.autoReveal) {
272
+ async selectActiveFile(reveal = this._autoReveal) {
273
+ if (this._autoReveal) {
259
274
  const activeFile = EditorResourceAccessor.getCanonicalUri(this.editorService.activeEditor, { supportSideBySide: SideBySideEditor.PRIMARY });
260
275
  if (activeFile) {
261
276
  const focus = this.tree.getFocus();
@@ -263,7 +278,7 @@ let ExplorerView = class ExplorerView extends ViewPane {
263
278
  if (focus.length === 1 && this.uriIdentityService.extUri.isEqual(focus[0].resource, activeFile) && selection.length === 1 && this.uriIdentityService.extUri.isEqual(selection[0].resource, activeFile)) {
264
279
  return;
265
280
  }
266
- this.explorerService.select(activeFile, reveal);
281
+ return this.explorerService.select(activeFile, reveal);
267
282
  }
268
283
  }
269
284
  }
@@ -339,7 +354,7 @@ let ExplorerView = class ExplorerView extends ViewPane {
339
354
  if (!element) {
340
355
  return;
341
356
  }
342
- const shiftDown = e.browserEvent instanceof KeyboardEvent && e.browserEvent.shiftKey;
357
+ const shiftDown = dom.isKeyboardEvent(e.browserEvent) && e.browserEvent.shiftKey;
343
358
  if (!shiftDown) {
344
359
  if (element.isDirectory || this.explorerService.isEditable(undefined)) {
345
360
  return;
@@ -364,8 +379,8 @@ let ExplorerView = class ExplorerView extends ViewPane {
364
379
  this._register(this.tree.onDidChangeCollapseState(e => {
365
380
  const element = e.node.element?.element;
366
381
  if (element) {
367
- const navigationController = this.renderer.getCompressedNavigationController(element instanceof Array ? element[0] : element);
368
- navigationController?.updateCollapsed(e.node.collapsed);
382
+ const navigationControllers = this.renderer.getCompressedNavigationController(element instanceof Array ? element[0] : element);
383
+ navigationControllers?.forEach(controller => controller.updateCollapsed(e.node.collapsed));
369
384
  }
370
385
  this.updateAnyCollapsedContext();
371
386
  }));
@@ -383,7 +398,7 @@ let ExplorerView = class ExplorerView extends ViewPane {
383
398
  onConfigurationUpdated(event) {
384
399
  if (!event || event.affectsConfiguration('explorer.autoReveal')) {
385
400
  const configuration = this.configurationService.getValue();
386
- this.autoReveal = configuration?.explorer?.autoReveal;
401
+ this._autoReveal = configuration?.explorer?.autoReveal;
387
402
  }
388
403
  if (event && (event.affectsConfiguration('explorer.decorations.colors') || event.affectsConfiguration('explorer.decorations.badges'))) {
389
404
  this.refresh(true);
@@ -414,15 +429,15 @@ let ExplorerView = class ExplorerView extends ViewPane {
414
429
  }
415
430
  const stat = e.element;
416
431
  let anchor = e.anchor;
417
- if (dom.isHTMLElement(anchor)) {
432
+ if (anchor instanceof HTMLElement) {
418
433
  if (stat) {
419
- const controller = this.renderer.getCompressedNavigationController(stat);
420
- if (controller) {
421
- if (e.browserEvent instanceof KeyboardEvent || isCompressedFolderName(e.browserEvent.target)) {
422
- anchor = controller.labels[controller.index];
434
+ const controllers = this.renderer.getCompressedNavigationController(stat);
435
+ if (controllers && controllers.length > 0) {
436
+ if (dom.isKeyboardEvent(e.browserEvent) || isCompressedFolderName(e.browserEvent.target)) {
437
+ anchor = controllers[0].labels[controllers[0].index];
423
438
  }
424
439
  else {
425
- controller.last();
440
+ controllers.forEach(controller => controller.last());
426
441
  }
427
442
  }
428
443
  }
@@ -433,8 +448,8 @@ let ExplorerView = class ExplorerView extends ViewPane {
433
448
  const roots = this.explorerService.roots;
434
449
  let arg;
435
450
  if (stat instanceof ExplorerItem) {
436
- const compressedController = this.renderer.getCompressedNavigationController(stat);
437
- arg = compressedController ? compressedController.current.resource : stat.resource;
451
+ const compressedControllers = this.renderer.getCompressedNavigationController(stat);
452
+ arg = compressedControllers && compressedControllers.length ? compressedControllers[0].current.resource : stat.resource;
438
453
  }
439
454
  else {
440
455
  arg = roots.length === 1 ? roots[0].resource : {};
@@ -465,13 +480,15 @@ let ExplorerView = class ExplorerView extends ViewPane {
465
480
  else {
466
481
  this.resourceMoveableToTrash.reset();
467
482
  }
468
- const compressedNavigationController = stat && this.renderer.getCompressedNavigationController(stat);
469
- if (!compressedNavigationController) {
483
+ const compressedNavigationControllers = stat && this.renderer.getCompressedNavigationController(stat);
484
+ if (!compressedNavigationControllers) {
470
485
  this.compressedFocusContext.set(false);
471
486
  return;
472
487
  }
473
488
  this.compressedFocusContext.set(true);
474
- this.updateCompressedNavigationContextKeys(compressedNavigationController);
489
+ compressedNavigationControllers.forEach(controller => {
490
+ this.updateCompressedNavigationContextKeys(controller);
491
+ });
475
492
  }
476
493
  refresh(recursive, item, cancelEditing = true) {
477
494
  if (!this.tree || !this.isBodyVisible() || (item && !this.tree.hasNode(item))) {
@@ -557,13 +574,16 @@ let ExplorerView = class ExplorerView extends ViewPane {
557
574
  this._register(this.decorationService.registerDecorationsProvider(this.decorationsProvider));
558
575
  }
559
576
  }
560
- async selectResource(resource, reveal = this.autoReveal, retry = 0) {
577
+ async selectResource(resource, reveal = this._autoReveal, retry = 0) {
561
578
  if (retry === 2) {
562
579
  return;
563
580
  }
564
581
  if (!resource || !this.isBodyVisible()) {
565
582
  return;
566
583
  }
584
+ if (this.setTreeInputPromise) {
585
+ await this.setTreeInputPromise;
586
+ }
567
587
  let item = this.explorerService.findClosestRoot(resource);
568
588
  while (item && ( item.resource.toString()) !== ( resource.toString())) {
569
589
  try {
@@ -635,36 +655,44 @@ let ExplorerView = class ExplorerView extends ViewPane {
635
655
  if (!focused.length) {
636
656
  return;
637
657
  }
638
- const compressedNavigationController = this.renderer.getCompressedNavigationController(focused[0]);
639
- compressedNavigationController.previous();
640
- this.updateCompressedNavigationContextKeys(compressedNavigationController);
658
+ const compressedNavigationControllers = this.renderer.getCompressedNavigationController(focused[0]);
659
+ compressedNavigationControllers.forEach(controller => {
660
+ controller.previous();
661
+ this.updateCompressedNavigationContextKeys(controller);
662
+ });
641
663
  }
642
664
  nextCompressedStat() {
643
665
  const focused = this.tree.getFocus();
644
666
  if (!focused.length) {
645
667
  return;
646
668
  }
647
- const compressedNavigationController = this.renderer.getCompressedNavigationController(focused[0]);
648
- compressedNavigationController.next();
649
- this.updateCompressedNavigationContextKeys(compressedNavigationController);
669
+ const compressedNavigationControllers = this.renderer.getCompressedNavigationController(focused[0]);
670
+ compressedNavigationControllers.forEach(controller => {
671
+ controller.next();
672
+ this.updateCompressedNavigationContextKeys(controller);
673
+ });
650
674
  }
651
675
  firstCompressedStat() {
652
676
  const focused = this.tree.getFocus();
653
677
  if (!focused.length) {
654
678
  return;
655
679
  }
656
- const compressedNavigationController = this.renderer.getCompressedNavigationController(focused[0]);
657
- compressedNavigationController.first();
658
- this.updateCompressedNavigationContextKeys(compressedNavigationController);
680
+ const compressedNavigationControllers = this.renderer.getCompressedNavigationController(focused[0]);
681
+ compressedNavigationControllers.forEach(controller => {
682
+ controller.first();
683
+ this.updateCompressedNavigationContextKeys(controller);
684
+ });
659
685
  }
660
686
  lastCompressedStat() {
661
687
  const focused = this.tree.getFocus();
662
688
  if (!focused.length) {
663
689
  return;
664
690
  }
665
- const compressedNavigationController = this.renderer.getCompressedNavigationController(focused[0]);
666
- compressedNavigationController.last();
667
- this.updateCompressedNavigationContextKeys(compressedNavigationController);
691
+ const compressedNavigationControllers = this.renderer.getCompressedNavigationController(focused[0]);
692
+ compressedNavigationControllers.forEach(controller => {
693
+ controller.last();
694
+ this.updateCompressedNavigationContextKeys(controller);
695
+ });
668
696
  }
669
697
  updateCompressedNavigationContextKeys(controller) {
670
698
  this.compressedFocusFirstContext.set(controller.index === 0);
@@ -46,6 +46,8 @@ import { defaultInputBoxStyles } from 'monaco-editor/esm/vs/platform/theme/brows
46
46
  import { timeout } from 'monaco-editor/esm/vs/base/common/async.js';
47
47
  import { IHoverService } from '../../../../services/hover/browser/hover.js';
48
48
  import { IFilesConfigurationService } from '../../../../services/filesConfiguration/common/filesConfigurationService.js';
49
+ import { mainWindow } from 'monaco-editor/esm/vs/base/browser/window.js';
50
+ import { explorerFileContribRegistry } from '../explorerFileContrib.js';
49
51
  import { getFileNamesMessage, IDialogService } from '../../../../../platform/dialogs/common/dialogs.js';
50
52
  var FilesRenderer_1, FileDragAndDrop_1;
51
53
  class ExplorerDelegate {
@@ -208,7 +210,7 @@ class CompressedNavigationController {
208
210
  let FilesRenderer = class FilesRenderer {
209
211
  static { FilesRenderer_1 = this; }
210
212
  static { this.ID = 'file'; }
211
- constructor(container, labels, updateWidth, contextViewService, themeService, configurationService, explorerService, labelService, contextService, contextMenuService, hoverService) {
213
+ constructor(container, labels, updateWidth, contextViewService, themeService, configurationService, explorerService, labelService, contextService, contextMenuService, hoverService, instantiationService) {
212
214
  this.labels = labels;
213
215
  this.updateWidth = updateWidth;
214
216
  this.contextViewService = contextViewService;
@@ -219,6 +221,7 @@ let FilesRenderer = class FilesRenderer {
219
221
  this.contextService = contextService;
220
222
  this.contextMenuService = contextMenuService;
221
223
  this.hoverService = hoverService;
224
+ this.instantiationService = instantiationService;
222
225
  this.compressedNavigationControllers = ( new Map());
223
226
  this._onDidChangeActiveDescendant = ( new EventMultiplexer());
224
227
  this.onDidChangeActiveDescendant = this._onDidChangeActiveDescendant.event;
@@ -263,12 +266,16 @@ let FilesRenderer = class FilesRenderer {
263
266
  return overflowed ? this.hoverService.showHover({
264
267
  ...options,
265
268
  target: indentGuideElement,
266
- compact: true,
267
269
  container: listRow,
268
270
  additionalClasses: ['explorer-item-hover'],
269
- skipFadeInAnimation: true,
270
- showPointer: false,
271
- hoverPosition: 1 ,
271
+ position: {
272
+ hoverPosition: 1 ,
273
+ },
274
+ appearance: {
275
+ compact: true,
276
+ skipFadeInAnimation: true,
277
+ showPointer: false,
278
+ }
272
279
  }, focus) : undefined;
273
280
  }
274
281
  onDidHideHover() {
@@ -317,7 +324,8 @@ let FilesRenderer = class FilesRenderer {
317
324
  catch (e) {
318
325
  }
319
326
  }));
320
- const templateData = { templateDisposables, elementDisposables: templateDisposables.add(( new DisposableStore())), label, container };
327
+ const contribs = explorerFileContribRegistry.create(this.instantiationService, container, templateDisposables);
328
+ const templateData = { templateDisposables, elementDisposables: templateDisposables.add(( new DisposableStore())), label, container, contribs };
321
329
  return templateData;
322
330
  }
323
331
  renderElement(node, index, templateData) {
@@ -331,6 +339,7 @@ let FilesRenderer = class FilesRenderer {
331
339
  }
332
340
  else {
333
341
  templateData.label.element.style.display = 'none';
342
+ templateData.contribs.forEach(c => c.setResource(undefined));
334
343
  templateData.elementDisposables.add(this.renderInputBox(templateData.container, stat, editableData));
335
344
  }
336
345
  }
@@ -347,7 +356,8 @@ let FilesRenderer = class FilesRenderer {
347
356
  this.renderStat(stat, label, id, node.filterData, templateData);
348
357
  const compressedNavigationController = ( new CompressedNavigationController(id, node.element.elements, templateData, node.depth, node.collapsed));
349
358
  templateData.elementDisposables.add(compressedNavigationController);
350
- this.compressedNavigationControllers.set(stat, compressedNavigationController);
359
+ const nodeControllers = this.compressedNavigationControllers.get(stat) ?? [];
360
+ this.compressedNavigationControllers.set(stat, [...nodeControllers, compressedNavigationController]);
351
361
  templateData.elementDisposables.add(this._onDidChangeActiveDescendant.add(compressedNavigationController.onDidChange));
352
362
  templateData.elementDisposables.add(dom.addDisposableListener(templateData.container, 'mousedown', e => {
353
363
  const result = getIconLabelNameFromHTMLElement(e.target);
@@ -355,11 +365,24 @@ let FilesRenderer = class FilesRenderer {
355
365
  compressedNavigationController.setIndex(result.index);
356
366
  }
357
367
  }));
358
- templateData.elementDisposables.add(toDisposable(() => this.compressedNavigationControllers.delete(stat)));
368
+ templateData.elementDisposables.add(toDisposable(() => {
369
+ const nodeControllers = this.compressedNavigationControllers.get(stat) ?? [];
370
+ const renderedIndex = nodeControllers.findIndex(controller => controller === compressedNavigationController);
371
+ if (renderedIndex < 0) {
372
+ throw new Error('Disposing unknown navigation controller');
373
+ }
374
+ if (nodeControllers.length === 1) {
375
+ this.compressedNavigationControllers.delete(stat);
376
+ }
377
+ else {
378
+ nodeControllers.splice(renderedIndex, 1);
379
+ }
380
+ }));
359
381
  }
360
382
  else {
361
383
  templateData.label.element.classList.remove('compressed');
362
384
  templateData.label.element.style.display = 'none';
385
+ templateData.contribs.forEach(c => c.setResource(undefined));
363
386
  templateData.elementDisposables.add(this.renderInputBox(templateData.container, editable[0], editableData));
364
387
  }
365
388
  }
@@ -375,6 +398,7 @@ let FilesRenderer = class FilesRenderer {
375
398
  const themeIsUnhappyWithNesting = theme.hasFileIcons && (theme.hidesExplorerArrows || !theme.hasFolderIcons);
376
399
  const realignNestedChildren = stat.nestedParent && themeIsUnhappyWithNesting;
377
400
  const experimentalHover = this.configurationService.getValue('explorer.experimental.hover');
401
+ templateData.contribs.forEach(c => c.setResource(stat.resource));
378
402
  templateData.label.setResource({ resource: stat.resource, name: label }, {
379
403
  title: experimentalHover ? isStringArray(label) ? label[0] : label : undefined,
380
404
  fileKind: stat.isRoot ? FileKind.ROOT_FOLDER : stat.isDirectory ? FileKind.FOLDER : FileKind.FILE,
@@ -492,13 +516,14 @@ let FilesRenderer = class FilesRenderer {
492
516
  dom.addDisposableListener(inputBox.inputElement, dom.EventType.BLUR, async () => {
493
517
  while (true) {
494
518
  await timeout(0);
495
- if (!document.hasFocus()) {
519
+ const ownerDocument = inputBox.inputElement.ownerDocument;
520
+ if (!ownerDocument.hasFocus()) {
496
521
  break;
497
522
  }
498
- if (document.activeElement === inputBox.inputElement) {
523
+ if (dom.isActiveElement(inputBox.inputElement)) {
499
524
  return;
500
525
  }
501
- else if (document.activeElement instanceof HTMLElement && dom.hasParentWithClass(document.activeElement, 'context-view')) {
526
+ else if (ownerDocument.activeElement instanceof HTMLElement && dom.hasParentWithClass(ownerDocument.activeElement, 'context-view')) {
502
527
  await Event.toPromise(this.contextMenuService.onDidHideContextMenu);
503
528
  }
504
529
  else {
@@ -543,8 +568,7 @@ let FilesRenderer = class FilesRenderer {
543
568
  return depth;
544
569
  }
545
570
  getActiveDescendantId(stat) {
546
- const compressedNavigationController = this.compressedNavigationControllers.get(stat);
547
- return compressedNavigationController?.currentId;
571
+ return this.compressedNavigationControllers.get(stat)?.[0]?.currentId ?? undefined;
548
572
  }
549
573
  dispose() {
550
574
  this.configListener.dispose();
@@ -558,7 +582,8 @@ FilesRenderer = FilesRenderer_1 = ( __decorate([
558
582
  ( __param(7, ILabelService)),
559
583
  ( __param(8, IWorkspaceContextService)),
560
584
  ( __param(9, IContextMenuService)),
561
- ( __param(10, IHoverService))
585
+ ( __param(10, IHoverService)),
586
+ ( __param(11, IInstantiationService))
562
587
  ], FilesRenderer));
563
588
  let FilesFilter = class FilesFilter {
564
589
  constructor(contextService, configurationService, explorerService, editorService, uriIdentityService, fileService) {
@@ -985,9 +1010,9 @@ let FileDragAndDrop = class FileDragAndDrop {
985
1010
  }
986
1011
  try {
987
1012
  if (data instanceof NativeDragAndDropData) {
988
- if (!isWeb || (isTemporaryWorkspace(this.contextService.getWorkspace()) && WebFileSystemAccess.supported(window))) {
1013
+ if (!isWeb || (isTemporaryWorkspace(this.contextService.getWorkspace()) && WebFileSystemAccess.supported(mainWindow))) {
989
1014
  const fileImport = this.instantiationService.createInstance(ExternalFileImport);
990
- await fileImport.import(resolvedTarget, originalEvent);
1015
+ await fileImport.import(resolvedTarget, originalEvent, mainWindow);
991
1016
  }
992
1017
  else {
993
1018
  const browserUpload = this.instantiationService.createInstance(BrowserFileUpload);
@@ -1189,7 +1214,7 @@ let FileDragAndDrop = class FileDragAndDrop {
1189
1214
  return data.elements;
1190
1215
  }
1191
1216
  static getCompressedStatFromDragEvent(stat, dragEvent) {
1192
- const target = document.elementFromPoint(dragEvent.clientX, dragEvent.clientY);
1217
+ const target = dom.getWindow(dragEvent).document.elementFromPoint(dragEvent.clientX, dragEvent.clientY);
1193
1218
  const iconLabelName = getIconLabelNameFromHTMLElement(target);
1194
1219
  if (iconLabelName) {
1195
1220
  const { count, index } = iconLabelName;