@codingame/monaco-vscode-api 1.83.15 → 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 (361) hide show
  1. package/README.md +430 -0
  2. package/api.js +13 -7
  3. package/assets/clear.mp3 +0 -0
  4. package/assets/format.mp3 +0 -0
  5. package/assets/save.mp3 +0 -0
  6. package/contributions.js +3 -0
  7. package/extensions.d.ts +13 -3
  8. package/external/{xterm-addon-image/typings/xterm-addon-image.d.ts → @xterm/addon-image/typings/addon-image.d.ts} +1 -1
  9. package/external/{xterm → @xterm/xterm}/typings/xterm.d.ts +13 -1
  10. package/lifecycle.js +2 -2
  11. package/localExtensionHost.js +6 -3
  12. package/missing-services.js +170 -22
  13. package/monaco-editor-treemending.patch +6884 -18018
  14. package/monaco-treemending.js +2 -2
  15. package/package.json +7 -7
  16. package/service-override/tools/editor.d.ts +8 -8
  17. package/service-override/tools/editor.js +44 -19
  18. package/services.d.ts +2 -2
  19. package/services.js +3 -3
  20. package/vscode/src/vs/base/browser/broadcast.js +6 -5
  21. package/vscode/src/vs/base/browser/dnd.d.ts +6 -0
  22. package/vscode/src/vs/base/browser/mouseEvent.d.ts +1 -1
  23. package/vscode/src/vs/base/browser/touch.d.ts +10 -0
  24. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.d.ts +1 -0
  25. package/vscode/src/vs/base/browser/ui/iconLabel/iconHoverDelegate.d.ts +22 -15
  26. package/vscode/src/vs/base/browser/ui/menu/menubar.js +4 -3
  27. package/vscode/src/vs/base/browser/ui/splitview/paneview.css.js +1 -1
  28. package/vscode/src/vs/base/browser/ui/splitview/paneview.d.ts +3 -0
  29. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +34 -11
  30. package/vscode/src/vs/base/common/actions.d.ts +1 -15
  31. package/vscode/src/vs/base/common/async.d.ts +1 -31
  32. package/vscode/src/vs/base/common/event.d.ts +2 -1
  33. package/vscode/src/vs/base/common/observableInternal/base.d.ts +23 -10
  34. package/vscode/src/vs/base/common/prefixTree.js +140 -0
  35. package/vscode/src/vs/base/common/product.d.ts +16 -2
  36. package/vscode/src/vs/base/common/resourceTree.js +135 -0
  37. package/vscode/src/vs/base/common/skipList.js +1 -0
  38. package/vscode/src/vs/base/common/tfIdf.js +137 -0
  39. package/vscode/src/vs/base/common/types.d.ts +13 -1
  40. package/vscode/src/vs/base/common/verifier.js +62 -0
  41. package/vscode/src/vs/editor/browser/editorBrowser.d.ts +4 -2
  42. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +23 -4
  43. package/vscode/src/vs/editor/common/core/lineRange.d.ts +1 -0
  44. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +3 -0
  45. package/vscode/src/vs/editor/common/core/position.d.ts +1 -0
  46. package/vscode/src/vs/editor/common/editorCommon.d.ts +2 -1
  47. package/vscode/src/vs/editor/common/languages.d.ts +23 -1
  48. package/vscode/src/vs/editor/common/services/languageFeatures.d.ts +2 -1
  49. package/vscode/src/vs/editor/common/services/resolverService.d.ts +11 -2
  50. package/vscode/src/vs/platform/accessibility/common/accessibility.d.ts +16 -1
  51. package/vscode/src/vs/platform/action/common/action.d.ts +8 -0
  52. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +4 -0
  53. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +26 -2
  54. package/vscode/src/vs/platform/actions/common/actions.d.ts +8 -0
  55. package/vscode/src/vs/platform/audioCues/browser/audioCueService.d.ts +6 -0
  56. package/vscode/src/vs/platform/commands/common/commands.d.ts +13 -5
  57. package/vscode/src/vs/platform/dialogs/common/dialogs.d.ts +9 -3
  58. package/vscode/src/vs/platform/dialogs/common/dialogs.js +5 -2
  59. package/vscode/src/vs/platform/editor/common/editor.d.ts +3 -15
  60. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +1 -0
  61. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +3 -15
  62. package/vscode/src/vs/platform/extensionManagement/common/implicitActivationEvents.js +5 -0
  63. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +0 -1
  64. package/vscode/src/vs/platform/files/common/files.d.ts +72 -8
  65. package/vscode/src/vs/platform/files/common/watcher.js +77 -0
  66. package/vscode/src/vs/platform/keybinding/common/keybindingsRegistry.d.ts +2 -2
  67. package/vscode/src/vs/platform/layout/browser/layoutService.d.ts +52 -21
  68. package/vscode/src/vs/platform/request/browser/requestService.js +3 -0
  69. package/vscode/src/vs/platform/request/common/requestIpc.js +17 -0
  70. package/vscode/src/vs/platform/storage/common/storage.js +2 -2
  71. package/vscode/src/vs/platform/telemetry/common/telemetry.d.ts +1 -0
  72. package/vscode/src/vs/platform/terminal/common/capabilities/bufferMarkCapability.js +41 -0
  73. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +12 -7
  74. package/vscode/src/vs/platform/terminal/common/capabilities/{commandDetectionCapability.d.ts → commandDetection/terminalCommand.d.ts} +3 -2
  75. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/terminalCommand.js +257 -0
  76. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +651 -0
  77. package/vscode/src/vs/platform/terminal/common/capabilities/cwdDetectionCapability.js +29 -0
  78. package/vscode/src/vs/platform/terminal/common/capabilities/partialCommandDetectionCapability.js +48 -0
  79. package/vscode/src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.js +94 -0
  80. package/vscode/src/vs/platform/terminal/common/terminalEnvironment.js +37 -0
  81. package/vscode/src/vs/platform/terminal/common/terminalStrings.js +16 -0
  82. package/vscode/src/vs/platform/terminal/common/xterm/shellIntegrationAddon.js +319 -0
  83. package/vscode/src/vs/platform/window/common/window.d.ts +9 -2
  84. package/vscode/src/vs/platform/window/common/window.js +6 -1
  85. package/vscode/src/vs/platform/workspaces/common/workspaces.d.ts +2 -43
  86. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +113 -81
  87. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +5 -4
  88. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +25 -3
  89. package/vscode/src/vs/workbench/api/common/extHostChat.js +13 -163
  90. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +412 -0
  91. package/vscode/src/vs/workbench/api/common/extHostChatProvider.js +79 -11
  92. package/vscode/src/vs/workbench/api/common/extHostCommands.js +13 -12
  93. package/vscode/src/vs/workbench/api/common/extHostComments.js +1 -1
  94. package/vscode/src/vs/workbench/api/common/extHostEditorTabs.js +8 -6
  95. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +1 -1
  96. package/vscode/src/vs/workbench/api/common/extHostFileSystemEventService.js +36 -19
  97. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +52 -31
  98. package/vscode/src/vs/workbench/api/common/extHostIssueReporter.js +38 -0
  99. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +28 -3
  100. package/vscode/src/vs/workbench/api/common/extHostLanguages.js +10 -0
  101. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +117 -2
  102. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +32 -4
  103. package/vscode/src/vs/workbench/api/common/extHostSCM.js +85 -23
  104. package/vscode/src/vs/workbench/api/common/extHostSearch.js +3 -0
  105. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +42 -0
  106. package/vscode/src/vs/workbench/api/common/extHostTask.js +2 -1
  107. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -0
  108. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +3 -3
  109. package/vscode/src/vs/workbench/api/common/extHostTesting.js +97 -47
  110. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +115 -16
  111. package/vscode/src/vs/workbench/api/common/extHostTypes.js +66 -36
  112. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +6 -1
  113. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +182 -75
  114. package/vscode/src/vs/workbench/browser/actions/windowActions.js +176 -4
  115. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +143 -2
  116. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +237 -0
  117. package/vscode/src/vs/workbench/browser/composite.d.ts +0 -4
  118. package/vscode/src/vs/workbench/browser/composite.js +5 -4
  119. package/vscode/src/vs/workbench/browser/dnd.js +72 -23
  120. package/vscode/src/vs/workbench/browser/labels.js +7 -3
  121. package/vscode/src/vs/workbench/browser/media/part.css.js +1 -1
  122. package/vscode/src/vs/workbench/browser/panecomposite.d.ts +2 -2
  123. package/vscode/src/vs/workbench/browser/panecomposite.js +2 -0
  124. package/vscode/src/vs/workbench/browser/part.js +33 -2
  125. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +99 -117
  126. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +173 -33
  127. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +102 -6
  128. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +256 -17
  129. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +4 -0
  130. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +68 -35
  131. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +5 -5
  132. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +35 -16
  133. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +348 -0
  134. package/vscode/src/vs/workbench/browser/parts/editor/editorsObserver.js +43 -31
  135. package/vscode/src/vs/workbench/browser/parts/editor/media/editortabscontrol.css.js +4 -0
  136. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -0
  137. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +1 -0
  138. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +14 -2
  139. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +4 -4
  140. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +277 -0
  141. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +5 -2
  142. package/vscode/src/vs/workbench/browser/parts/panel/media/panelpart.css.js +1 -1
  143. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +3 -38
  144. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.d.ts +54 -52
  145. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +2 -1
  146. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.d.ts +25 -0
  147. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +258 -0
  148. package/vscode/src/vs/workbench/browser/parts/views/media/paneviewlet.css.js +1 -1
  149. package/vscode/src/vs/workbench/browser/parts/views/viewPane.d.ts +2 -5
  150. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +157 -117
  151. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +50 -23
  152. package/vscode/src/vs/workbench/browser/parts/views/viewsService.js +26 -11
  153. package/vscode/src/vs/workbench/browser/parts/views/viewsViewlet.js +10 -6
  154. package/vscode/src/vs/workbench/browser/style.js +2 -1
  155. package/vscode/src/vs/workbench/browser/web.api.d.ts +39 -2
  156. package/vscode/src/vs/workbench/browser/window.js +55 -0
  157. package/vscode/src/vs/workbench/browser/workbench.contribution.js +220 -40
  158. package/vscode/src/vs/workbench/common/activity.js +3 -0
  159. package/vscode/src/vs/workbench/common/contextkeys.js +35 -5
  160. package/vscode/src/vs/workbench/common/contributions.js +4 -3
  161. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +14 -4
  162. package/vscode/src/vs/workbench/common/editor/diffEditorModel.js +1 -1
  163. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +22 -19
  164. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +4 -3
  165. package/vscode/src/vs/workbench/common/editor/editorModel.d.ts +1 -2
  166. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +22 -4
  167. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.js +3 -3
  168. package/vscode/src/vs/workbench/common/editor.d.ts +60 -30
  169. package/vscode/src/vs/workbench/common/editor.js +11 -3
  170. package/vscode/src/vs/workbench/common/theme.js +2 -2
  171. package/vscode/src/vs/workbench/common/views.d.ts +4 -4
  172. package/vscode/src/vs/workbench/common/views.js +3 -1
  173. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +97 -8
  174. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +17 -99
  175. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +103 -37
  176. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +2 -3
  177. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +127 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +71 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +2 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +33 -110
  181. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +64 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +94 -0
  183. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +6 -1
  184. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +1 -88
  185. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +4 -4
  186. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -2
  187. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +3 -1
  188. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +15 -16
  189. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +91 -1
  190. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +9 -3
  191. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +3 -1
  192. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +2 -3
  193. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +1 -0
  194. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +9 -1
  195. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +10 -1
  196. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +114 -22
  197. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  198. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +4 -1
  199. package/vscode/src/vs/workbench/contrib/files/browser/explorerFileContrib.js +19 -0
  200. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +10 -8
  201. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +62 -10
  202. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +2 -1
  203. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +9 -8
  204. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +10 -1
  205. package/vscode/src/vs/workbench/contrib/files/browser/files.d.ts +1 -0
  206. package/vscode/src/vs/workbench/contrib/files/browser/files.js +7 -3
  207. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +4 -4
  208. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +64 -36
  209. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +42 -17
  210. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +145 -25
  211. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +423 -0
  212. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +82 -0
  213. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  214. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +36 -0
  215. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +3 -1
  216. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +24 -3
  217. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +11 -6
  218. package/vscode/src/vs/workbench/contrib/scm/common/scm.js +1 -2
  219. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/searchNotebookHelpers.js +31 -0
  220. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +61 -41
  221. package/vscode/src/vs/workbench/contrib/search/{browser/searchNotebookHelpers.js → common/cellSearchModel.js} +4 -63
  222. package/vscode/src/vs/workbench/contrib/search/common/searchNotebookHelpers.js +40 -0
  223. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +2 -2
  224. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +3 -0
  225. package/vscode/src/vs/workbench/contrib/terminal/browser/detachedTerminal.js +92 -0
  226. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +100 -79
  227. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.d.ts +3 -3
  228. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +1 -1
  229. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalExtensions.js +25 -0
  230. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcon.js +7 -4
  231. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +64 -0
  232. package/vscode/src/vs/workbench/contrib/terminal/browser/widgets/widgetManager.js +36 -0
  233. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +540 -0
  234. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +104 -0
  235. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +518 -0
  236. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/suggestAddon.js +390 -0
  237. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +17 -11
  238. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +814 -0
  239. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts +5 -2
  240. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +2 -8
  241. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +2 -0
  242. package/vscode/src/vs/workbench/contrib/testing/common/getComputedState.js +101 -0
  243. package/vscode/src/vs/workbench/contrib/testing/common/observableValue.js +30 -0
  244. package/vscode/src/vs/workbench/contrib/testing/common/storedValue.js +36 -0
  245. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +115 -0
  246. package/vscode/src/vs/workbench/contrib/testing/common/testCoverageService.js +74 -0
  247. package/vscode/src/vs/workbench/contrib/testing/common/testExplorerFilterState.js +116 -0
  248. package/vscode/src/vs/workbench/contrib/testing/common/testProfileService.js +172 -1
  249. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +384 -0
  250. package/vscode/src/vs/workbench/contrib/testing/common/testResultService.js +156 -1
  251. package/vscode/src/vs/workbench/contrib/testing/common/testResultStorage.js +156 -0
  252. package/vscode/src/vs/workbench/contrib/testing/common/testService.js +75 -1
  253. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +72 -1
  254. package/vscode/src/vs/workbench/contrib/testing/common/testingContextKeys.js +188 -0
  255. package/vscode/src/vs/workbench/contrib/testing/common/testingContinuousRunService.js +102 -0
  256. package/vscode/src/vs/workbench/contrib/testing/common/testingDecorations.js +29 -0
  257. package/vscode/src/vs/workbench/{services/editor/browser/editorDropService.js → contrib/testing/common/testingPeekOpener.js} +2 -2
  258. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.js +47 -0
  259. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +4 -3
  260. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +8 -9
  261. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput.js +1 -1
  262. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +5 -2
  263. package/vscode/src/vs/workbench/services/activity/browser/activityService.d.ts +16 -10
  264. package/vscode/src/vs/workbench/services/activity/common/activity.d.ts +14 -1
  265. package/vscode/src/vs/workbench/services/activity/common/activity.js +1 -7
  266. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +9 -28
  267. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +273 -0
  268. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolver.js +1 -0
  269. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +2 -0
  270. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +2 -3
  271. package/vscode/src/vs/workbench/services/editor/browser/editorService.d.ts +7 -5
  272. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +59 -37
  273. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +193 -94
  274. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.js +2 -2
  275. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.d.ts +8 -2
  276. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +8 -1
  277. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +62 -16
  278. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +5 -3
  279. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +3 -2
  280. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +4 -9
  281. package/vscode/src/vs/workbench/services/extensions/common/{extensionHostManager.d.ts → extensionHostManagers.d.ts} +2 -0
  282. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.d.ts +1 -1
  283. package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +9 -0
  284. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +22 -0
  285. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +14 -3
  286. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +9 -0
  287. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -3
  288. package/vscode/src/vs/workbench/services/history/common/history.d.ts +2 -2
  289. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +49 -18
  290. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +29 -7
  291. package/vscode/src/vs/workbench/services/hover/browser/hover.d.ts +51 -28
  292. package/vscode/src/vs/workbench/services/hover/browser/hoverService.d.ts +5 -2
  293. package/vscode/src/vs/workbench/services/keybinding/browser/unboundCommands.js +2 -2
  294. package/vscode/src/vs/workbench/services/languageStatus/common/languageStatusService.d.ts +4 -1
  295. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +40 -36
  296. package/vscode/src/vs/workbench/services/panecomposite/browser/panecomposite.d.ts +0 -6
  297. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +3 -0
  298. package/vscode/src/vs/workbench/services/progress/browser/progressIndicator.js +2 -2
  299. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.d.ts +16 -1
  300. package/vscode/src/vs/workbench/services/request/browser/requestService.js +48 -0
  301. package/vscode/src/vs/workbench/services/search/common/searchHelpers.js +4 -4
  302. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +10 -51
  303. package/vscode/src/vs/workbench/services/suggest/browser/media/suggest.css.js +4 -0
  304. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.js +10 -0
  305. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.js +98 -0
  306. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +428 -0
  307. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +83 -0
  308. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +32 -1
  309. package/vscode/src/vs/workbench/services/textfile/common/textEditorService.js +1 -5
  310. package/vscode/src/vs/workbench/services/themes/browser/browserHostColorSchemeService.js +4 -3
  311. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +9 -3
  312. package/vscode/src/vs/workbench/services/title/browser/titleService.d.ts +18 -0
  313. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +18 -3
  314. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorModel.js +16 -7
  315. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +6 -0
  316. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +13 -0
  317. package/vscode/src/vs/workbench/services/url/browser/urlService.js +2 -1
  318. package/vscode/src/vs/workbench/services/userActivity/common/userActivityService.js +2 -2
  319. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +9 -0
  320. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +375 -0
  321. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +80 -0
  322. package/vscode-dts/vscode.proposed.chatProvider.d.ts +5 -1
  323. package/vscode-dts/vscode.proposed.chatRequestAccess.d.ts +68 -10
  324. package/vscode-dts/vscode.proposed.chatTab.d.ts +21 -0
  325. package/vscode-dts/vscode.proposed.chatVariables.d.ts +5 -1
  326. package/vscode-dts/vscode.proposed.codeActionAI.d.ts +16 -0
  327. package/vscode-dts/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +7 -0
  328. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +51 -0
  329. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +30 -0
  330. package/vscode-dts/vscode.proposed.handleIssueUri.d.ts +26 -0
  331. package/vscode-dts/vscode.proposed.interactive.d.ts +26 -100
  332. package/vscode-dts/vscode.proposed.interactiveUserActions.d.ts +14 -7
  333. package/vscode-dts/vscode.proposed.languageStatusText.d.ts +12 -0
  334. package/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts +63 -0
  335. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +43 -0
  336. package/vscode-dts/vscode.proposed.resolvers.d.ts +100 -1
  337. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +9 -1
  338. package/vscode-dts/vscode.proposed.scmInputBoxActionButton.d.ts +19 -0
  339. package/vscode-dts/vscode.proposed.scmInputBoxValueProvider.d.ts +25 -0
  340. package/vscode-dts/vscode.proposed.speech.d.ts +35 -0
  341. package/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts +11 -7
  342. package/vscode-dts/vscode.proposed.testCoverage.d.ts +6 -1
  343. package/vscode-dts/vscode.proposed.testingActiveProfile.d.ts +21 -0
  344. package/external/xterm-headless/typings/xterm-headless.d.ts +0 -49
  345. package/vscode/src/vs/platform/backup/common/backup.d.ts +0 -14
  346. package/vscode/src/vs/platform/update/common/update.d.ts +0 -112
  347. package/vscode/src/vs/workbench/api/common/extHostChatAgents.js +0 -62
  348. package/vscode/src/vs/workbench/api/common/extHostChatSlashCommand.js +0 -62
  349. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.d.ts +0 -56
  350. package/vscode/src/vs/workbench/services/files/common/files.js +0 -4
  351. package/vscode/src/vs/workbench/services/host/browser/browserHostService.d.ts +0 -41
  352. package/vscode/src/vs/workbench/services/title/common/titleService.d.ts +0 -31
  353. package/vscode-dts/vscode.proposed.chatAgents.d.ts +0 -39
  354. package/vscode-dts/vscode.proposed.chatSlashCommands.d.ts +0 -47
  355. package/vscode-dts/vscode.proposed.testMessageContextValue.d.ts +0 -45
  356. /package/external/{xterm-addon-canvas/typings/xterm-addon-canvas.d.ts → @xterm/addon-canvas/typings/addon-canvas.d.ts} +0 -0
  357. /package/external/{xterm-addon-search/typings/xterm-addon-search.d.ts → @xterm/addon-search/typings/addon-search.d.ts} +0 -0
  358. /package/external/{xterm-addon-serialize/typings/xterm-addon-serialize.d.ts → @xterm/addon-serialize/typings/addon-serialize.d.ts} +0 -0
  359. /package/external/{xterm-addon-unicode11/typings/xterm-addon-unicode11.d.ts → @xterm/addon-unicode11/typings/addon-unicode11.d.ts} +0 -0
  360. /package/external/{xterm-addon-webgl/typings/xterm-addon-webgl.d.ts → @xterm/addon-webgl/typings/addon-webgl.d.ts} +0 -0
  361. /package/vscode/src/vs/workbench/services/title/{common → browser}/titleService.js +0 -0
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
2
  import * as nls from 'monaco-editor/esm/vs/nls.js';
3
3
  import { OS, isWindows } from 'monaco-editor/esm/vs/base/common/platform.js';
4
- import { extname, basename } from 'monaco-editor/esm/vs/base/common/path.js';
4
+ import { extname, basename, isAbsolute } from 'monaco-editor/esm/vs/base/common/path.js';
5
5
  import * as resources from 'monaco-editor/esm/vs/base/common/resources.js';
6
6
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
7
7
  import { toErrorMessage } from 'monaco-editor/esm/vs/base/common/errorMessage.js';
@@ -594,17 +594,21 @@ class GlobalCompareResourcesAction extends Action2 {
594
594
  }
595
595
  class ToggleAutoSaveAction extends Action2 {
596
596
  static { this.ID = 'workbench.action.toggleAutoSave'; }
597
- static { this.LABEL = ( nls.localizeWithPath(
598
- 'vs/workbench/contrib/files/browser/fileActions',
599
- 'toggleAutoSave',
600
- "Toggle Auto Save"
601
- )); }
602
597
  constructor() {
603
598
  super({
604
599
  id: ToggleAutoSaveAction.ID,
605
- title: { value: ToggleAutoSaveAction.LABEL, original: 'Toggle Auto Save' },
600
+ title: ( nls.localize2WithPath(
601
+ 'vs/workbench/contrib/files/browser/fileActions',
602
+ 'toggleAutoSave',
603
+ "Toggle Auto Save"
604
+ )),
606
605
  f1: true,
607
- category: Categories.File
606
+ category: Categories.File,
607
+ metadata: { description: ( nls.localize2WithPath(
608
+ 'vs/workbench/contrib/files/browser/fileActions',
609
+ 'toggleAutoSaveDescription',
610
+ "Toggle the ability to save files automatically after typing"
611
+ )) }
608
612
  });
609
613
  }
610
614
  run(accessor) {
@@ -1148,7 +1152,7 @@ CommandsRegistry.registerCommand({
1148
1152
  id: UPLOAD_COMMAND_ID,
1149
1153
  handler: uploadFileHandler
1150
1154
  });
1151
- const pasteFileHandler = async (accessor) => {
1155
+ const pasteFileHandler = async (accessor, fileList) => {
1152
1156
  const clipboardService = accessor.get(IClipboardService);
1153
1157
  const explorerService = accessor.get(IExplorerService);
1154
1158
  const fileService = accessor.get(IFileService);
@@ -1158,7 +1162,47 @@ const pasteFileHandler = async (accessor) => {
1158
1162
  const uriIdentityService = accessor.get(IUriIdentityService);
1159
1163
  const dialogService = accessor.get(IDialogService);
1160
1164
  const context = explorerService.getContext(true);
1161
- const toPaste = resources.distinctParents(await clipboardService.readResources(), r => r);
1165
+ const hasNativeFilesToPaste = fileList && fileList.length > 0;
1166
+ const confirmPasteNative = hasNativeFilesToPaste && configurationService.getValue('explorer.confirmPasteNative');
1167
+ const toPaste = await getFilesToPaste(fileList, clipboardService);
1168
+ if (confirmPasteNative) {
1169
+ const message = toPaste.length > 1 ?
1170
+ ( nls.localizeWithPath(
1171
+ 'vs/workbench/contrib/files/browser/fileActions',
1172
+ 'confirmMultiPasteNative',
1173
+ "Are you sure you want to paste the following {0} items?",
1174
+ toPaste.length
1175
+ )) :
1176
+ ( nls.localizeWithPath(
1177
+ 'vs/workbench/contrib/files/browser/fileActions',
1178
+ 'confirmPasteNative',
1179
+ "Are you sure you want to paste '{0}'?",
1180
+ basename(toPaste[0].fsPath)
1181
+ ));
1182
+ const detail = toPaste.length > 1 ? getFileNamesMessage(toPaste) : undefined;
1183
+ const confirmation = await dialogService.confirm({
1184
+ message,
1185
+ detail,
1186
+ checkbox: {
1187
+ label: ( nls.localizeWithPath(
1188
+ 'vs/workbench/contrib/files/browser/fileActions',
1189
+ 'doNotAskAgain',
1190
+ "Do not ask me again"
1191
+ ))
1192
+ },
1193
+ primaryButton: ( nls.localizeWithPath(
1194
+ 'vs/workbench/contrib/files/browser/fileActions',
1195
+ { key: 'pasteButtonLabel', comment: ['&& denotes a mnemonic'] },
1196
+ "&&Paste"
1197
+ ))
1198
+ });
1199
+ if (!confirmation.confirmed) {
1200
+ return;
1201
+ }
1202
+ if (confirmation.checkboxChecked === true) {
1203
+ await configurationService.updateValue('explorer.confirmPasteNative', false);
1204
+ }
1205
+ }
1162
1206
  const element = context.length ? context[0] : explorerService.roots[0];
1163
1207
  const incrementalNaming = configurationService.getValue().explorer.incrementalNaming;
1164
1208
  try {
@@ -1273,6 +1317,14 @@ const pasteFileHandler = async (accessor) => {
1273
1317
  }
1274
1318
  }
1275
1319
  };
1320
+ async function getFilesToPaste(fileList, clipboardService) {
1321
+ if (fileList && fileList.length > 0) {
1322
+ return ( [...fileList].filter(file => !!file.path && isAbsolute(file.path)).map(file => URI.file(file.path)));
1323
+ }
1324
+ else {
1325
+ return resources.distinctParents(await clipboardService.readResources(), resource => resource);
1326
+ }
1327
+ }
1276
1328
  const openFilePreserveFocusHandler = async (accessor) => {
1277
1329
  const editorService = accessor.get(IEditorService);
1278
1330
  const explorerService = accessor.get(IExplorerService);
@@ -21,6 +21,7 @@ const SAVE_FILE_WITHOUT_FORMATTING_LABEL = ( nls.localizeWithPath(
21
21
  "Save without Formatting"
22
22
  ));
23
23
  const SAVE_ALL_COMMAND_ID = 'saveAll';
24
+ const SAVE_ALL_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileConstants', 'saveAll', "Save All"));
24
25
  const SAVE_ALL_IN_GROUP_COMMAND_ID = 'workbench.files.action.saveAllInGroup';
25
26
  const SAVE_FILES_COMMAND_ID = 'workbench.action.files.saveFiles';
26
27
  const OpenEditorsGroupContext = ( new RawContextKey('groupFocusedInOpenEditors', false));
@@ -44,4 +45,4 @@ const NEW_UNTITLED_FILE_LABEL = ( nls.localizeWithPath(
44
45
  "New Untitled Text File"
45
46
  ));
46
47
  const NEW_FILE_COMMAND_ID = 'workbench.action.files.newFile';
47
- export { COMPARE_RESOURCE_COMMAND_ID, COMPARE_SELECTED_COMMAND_ID, COMPARE_WITH_SAVED_COMMAND_ID, COPY_PATH_COMMAND_ID, COPY_RELATIVE_PATH_COMMAND_ID, FIRST_COMPRESSED_FOLDER, LAST_COMPRESSED_FOLDER, NEW_FILE_COMMAND_ID, NEW_UNTITLED_FILE_COMMAND_ID, NEW_UNTITLED_FILE_LABEL, NEXT_COMPRESSED_FOLDER, OPEN_TO_SIDE_COMMAND_ID, OPEN_WITH_EXPLORER_COMMAND_ID, OpenEditorsDirtyEditorContext, OpenEditorsGroupContext, OpenEditorsReadonlyEditorContext, PREVIOUS_COMPRESSED_FOLDER, REMOVE_ROOT_FOLDER_COMMAND_ID, REMOVE_ROOT_FOLDER_LABEL, REVEAL_IN_EXPLORER_COMMAND_ID, REVERT_FILE_COMMAND_ID, ResourceSelectedForCompareContext, SAVE_ALL_COMMAND_ID, SAVE_ALL_IN_GROUP_COMMAND_ID, SAVE_FILES_COMMAND_ID, SAVE_FILE_AS_COMMAND_ID, SAVE_FILE_AS_LABEL, SAVE_FILE_COMMAND_ID, SAVE_FILE_LABEL, SAVE_FILE_WITHOUT_FORMATTING_COMMAND_ID, SAVE_FILE_WITHOUT_FORMATTING_LABEL, SELECT_FOR_COMPARE_COMMAND_ID };
48
+ export { COMPARE_RESOURCE_COMMAND_ID, COMPARE_SELECTED_COMMAND_ID, COMPARE_WITH_SAVED_COMMAND_ID, COPY_PATH_COMMAND_ID, COPY_RELATIVE_PATH_COMMAND_ID, FIRST_COMPRESSED_FOLDER, LAST_COMPRESSED_FOLDER, NEW_FILE_COMMAND_ID, NEW_UNTITLED_FILE_COMMAND_ID, NEW_UNTITLED_FILE_LABEL, NEXT_COMPRESSED_FOLDER, OPEN_TO_SIDE_COMMAND_ID, OPEN_WITH_EXPLORER_COMMAND_ID, OpenEditorsDirtyEditorContext, OpenEditorsGroupContext, OpenEditorsReadonlyEditorContext, PREVIOUS_COMPRESSED_FOLDER, REMOVE_ROOT_FOLDER_COMMAND_ID, REMOVE_ROOT_FOLDER_LABEL, REVEAL_IN_EXPLORER_COMMAND_ID, REVERT_FILE_COMMAND_ID, ResourceSelectedForCompareContext, SAVE_ALL_COMMAND_ID, SAVE_ALL_IN_GROUP_COMMAND_ID, SAVE_ALL_LABEL, SAVE_FILES_COMMAND_ID, SAVE_FILE_AS_COMMAND_ID, SAVE_FILE_AS_LABEL, SAVE_FILE_COMMAND_ID, SAVE_FILE_LABEL, SAVE_FILE_WITHOUT_FORMATTING_COMMAND_ID, SAVE_FILE_WITHOUT_FORMATTING_LABEL, SELECT_FOR_COMPARE_COMMAND_ID };
@@ -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);