@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
@@ -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;
@@ -12,8 +12,8 @@ import { IKeybindingService } from 'monaco-editor/esm/vs/platform/keybinding/com
12
12
  import { preventEditorClose, EditorResourceAccessor, SideBySideEditor, EditorCloseMethod } from '../../../../common/editor.js';
13
13
  import { SaveAllInGroupAction, CloseGroupAction } from '../fileActions.js';
14
14
  import { OpenEditor, OpenEditorsFocusedContext, ExplorerFocusedContext } from '../../common/files.js';
15
- import { CloseEditorAction, UnpinEditorAction } from '../../../../browser/parts/editor/editorActions.js';
16
- import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
15
+ import { CloseEditorAction, UnpinEditorAction, CloseAllEditorsAction } from '../../../../browser/parts/editor/editorActions.js';
16
+ import { ContextKeyExpr, IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
17
17
  import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
18
18
  import { asCssVariable, badgeBackground, badgeForeground, contrastBorder } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
19
19
  import { WorkbenchList } from 'monaco-editor/esm/vs/platform/list/browser/listService.js';
@@ -21,9 +21,9 @@ import { ResourceLabels } from '../../../../browser/labels.js';
21
21
  import { ActionBar } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js';
22
22
  import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
23
23
  import { dispose } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
24
- import { MenuId, MenuRegistry } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
25
- import { OpenEditorsGroupContext, OpenEditorsDirtyEditorContext, OpenEditorsReadonlyEditorContext } from '../fileConstants.js';
26
- import { ResourceContextKey } from '../../../../common/contextkeys.js';
24
+ import { MenuId, registerAction2, Action2, MenuRegistry } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
25
+ import { OpenEditorsGroupContext, OpenEditorsDirtyEditorContext, OpenEditorsReadonlyEditorContext, SAVE_ALL_LABEL, SAVE_ALL_COMMAND_ID, NEW_UNTITLED_FILE_COMMAND_ID } from '../fileConstants.js';
26
+ import { ResourceContextKey, MultipleEditorGroupsContext } from '../../../../common/contextkeys.js';
27
27
  import { containsDragType, CodeDataTransfers } from 'monaco-editor/esm/vs/platform/dnd/browser/dnd.js';
28
28
  import { ResourcesDropHandler, fillEditorsDragData } from '../../../../browser/dnd.js';
29
29
  import { ViewPane } from '../../../../browser/parts/views/viewPane.js';
@@ -35,8 +35,11 @@ import { IFilesConfigurationService } from '../../../../services/filesConfigurat
35
35
  import { IViewDescriptorService } from '../../../../common/views.js';
36
36
  import { IOpenerService } from 'monaco-editor/esm/vs/platform/opener/common/opener.js';
37
37
  import { compareFileNamesDefault } from 'monaco-editor/esm/vs/base/common/comparers.js';
38
+ import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
39
+ import { ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
38
40
  import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
39
41
  import { extUriIgnorePathCase } from 'monaco-editor/esm/vs/base/common/resources.js';
42
+ import { mainWindow } from 'monaco-editor/esm/vs/base/browser/window.js';
40
43
  var OpenEditorsView_1;
41
44
  const $ = dom.$;
42
45
  let OpenEditorsView = class OpenEditorsView extends ViewPane {
@@ -44,7 +47,7 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
44
47
  static { this.DEFAULT_VISIBLE_OPEN_EDITORS = 9; }
45
48
  static { this.DEFAULT_MIN_VISIBLE_OPEN_EDITORS = 0; }
46
49
  static { this.ID = 'workbench.explorer.openEditorsView'; }
47
- static { this.NAME = ( nls.localizeWithPath(
50
+ static { this.NAME = ( nls.localize2WithPath(
48
51
  'vs/workbench/contrib/files/browser/views/openEditorsView',
49
52
  { key: 'openEditors', comment: ['Open is an adjective'] },
50
53
  "Open Editors"
@@ -56,6 +59,7 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
56
59
  this.filesConfigurationService = filesConfigurationService;
57
60
  this.needsRefresh = false;
58
61
  this.elements = [];
62
+ this.blockFocusActiveEditorTracking = false;
59
63
  this.structuralRefreshDelay = 0;
60
64
  this.sortOrder = configurationService.getValue('explorer.openEditors.sortOrder');
61
65
  this.registerUpdateEvents();
@@ -82,26 +86,26 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
82
86
  }
83
87
  const index = this.getIndex(group, e.editor);
84
88
  switch (e.kind) {
85
- case 6 :
86
- case 0 :
89
+ case 7 :
87
90
  this.focusActiveEditor();
88
91
  break;
89
92
  case 1 :
93
+ case 2 :
90
94
  if (index >= 0) {
91
95
  this.list.splice(index, 1, [group]);
92
96
  }
93
97
  break;
98
+ case 12 :
94
99
  case 11 :
100
+ case 9 :
95
101
  case 10 :
96
102
  case 8 :
97
- case 9 :
98
- case 7 :
99
103
  this.list.splice(index, 1, [( new OpenEditor(e.editor, group))]);
100
104
  this.focusActiveEditor();
101
105
  break;
102
- case 3 :
103
- case 5 :
104
106
  case 4 :
107
+ case 6 :
108
+ case 5 :
105
109
  updateWholeList();
106
110
  break;
107
111
  }
@@ -115,6 +119,7 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
115
119
  updateWholeList();
116
120
  }));
117
121
  this._register(this.editorGroupService.onDidMoveGroup(() => updateWholeList()));
122
+ this._register(this.editorGroupService.onDidChangeActiveGroup(() => this.focusActiveEditor()));
118
123
  this._register(this.editorGroupService.onDidRemoveGroup(group => {
119
124
  dispose(groupDisposables.get(group.id));
120
125
  updateWholeList();
@@ -215,17 +220,25 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
215
220
  }
216
221
  }));
217
222
  this._register(this.list.onDidOpen(e => {
218
- if (!e.element) {
223
+ const element = e.element;
224
+ if (!element) {
219
225
  return;
220
226
  }
221
- else if (e.element instanceof OpenEditor) {
222
- if (e.browserEvent instanceof MouseEvent && e.browserEvent.button === 1) {
227
+ else if (element instanceof OpenEditor) {
228
+ if (dom.isMouseEvent(e.browserEvent) && e.browserEvent.button === 1) {
223
229
  return;
224
230
  }
225
- this.openEditor(e.element, { preserveFocus: e.editorOptions.preserveFocus, pinned: e.editorOptions.pinned, sideBySide: e.sideBySide });
231
+ this.withActiveEditorFocusTrackingDisabled(() => {
232
+ this.openEditor(element, { preserveFocus: e.editorOptions.preserveFocus, pinned: e.editorOptions.pinned, sideBySide: e.sideBySide });
233
+ });
226
234
  }
227
235
  else {
228
- this.editorGroupService.activateGroup(e.element);
236
+ this.withActiveEditorFocusTrackingDisabled(() => {
237
+ this.editorGroupService.activateGroup(element);
238
+ if (!e.editorOptions.preserveFocus) {
239
+ element.focus();
240
+ }
241
+ });
229
242
  }
230
243
  }));
231
244
  this.listRefreshScheduler.schedule(0);
@@ -241,10 +254,7 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
241
254
  }
242
255
  focus() {
243
256
  super.focus();
244
- this.list.domFocus();
245
- }
246
- getList() {
247
- return this.list;
257
+ this.list?.domFocus();
248
258
  }
249
259
  layoutBody(height, width) {
250
260
  super.layoutBody(height, width);
@@ -311,7 +321,7 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
311
321
  if (!preserveActivateGroup) {
312
322
  this.editorGroupService.activateGroup(element.group);
313
323
  }
314
- const targetGroup = options.sideBySide ? this.editorGroupService.sideGroup : this.editorGroupService.activeGroup;
324
+ const targetGroup = options.sideBySide ? this.editorGroupService.sideGroup : element.group;
315
325
  targetGroup.openEditor(element.editor, options);
316
326
  }
317
327
  }
@@ -323,12 +333,24 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
323
333
  this.contextMenuService.showContextMenu({
324
334
  menuId: MenuId.OpenEditorsContext,
325
335
  menuActionOptions: { shouldForwardArgs: true, arg: element instanceof OpenEditor ? EditorResourceAccessor.getOriginalUri(element.editor) : {} },
326
- contextKeyService: this.list.contextKeyService,
336
+ contextKeyService: this.list?.contextKeyService,
327
337
  getAnchor: () => e.anchor,
328
338
  getActionsContext: () => element instanceof OpenEditor ? { groupId: element.groupId, editorIndex: element.group.getIndexOfEditor(element.editor) } : { groupId: element.id }
329
339
  });
330
340
  }
341
+ withActiveEditorFocusTrackingDisabled(fn) {
342
+ this.blockFocusActiveEditorTracking = true;
343
+ try {
344
+ fn();
345
+ }
346
+ finally {
347
+ this.blockFocusActiveEditorTracking = false;
348
+ }
349
+ }
331
350
  focusActiveEditor() {
351
+ if (!this.list || this.blockFocusActiveEditorTracking) {
352
+ return;
353
+ }
332
354
  if (this.list.length && this.editorGroupService.activeGroup) {
333
355
  const index = this.getIndex(this.editorGroupService.activeGroup, this.editorGroupService.activeGroup.activeEditor);
334
356
  if (index >= 0) {
@@ -409,6 +431,9 @@ let OpenEditorsView = class OpenEditorsView extends ViewPane {
409
431
  this.structuralRefreshDelay = delay;
410
432
  }
411
433
  getOptimalWidth() {
434
+ if (!this.list) {
435
+ return super.getOptimalWidth();
436
+ }
412
437
  const parentNode = this.list.getHTMLElement();
413
438
  const childNodes = [].slice.call(parentNode.querySelectorAll('.open-editor > a'));
414
439
  return dom.getLargestChildWidth(parentNode, childNodes);
@@ -584,7 +609,7 @@ class OpenEditorsDragAndDrop {
584
609
  this.editorGroupService.activateGroup(group);
585
610
  }
586
611
  else {
587
- this.dropHandler.handleDrop(originalEvent, () => group, () => group.focus(), { index });
612
+ this.dropHandler.handleDrop(originalEvent, mainWindow, () => group, () => group.focus(), { index });
588
613
  }
589
614
  }
590
615
  dispose() { }
@@ -608,8 +633,38 @@ class OpenEditorsAccessibilityProvider {
608
633
  }
609
634
  }
610
635
  const toggleEditorGroupLayoutId = 'workbench.action.toggleEditorGroupLayout';
636
+ registerAction2(class extends Action2 {
637
+ constructor() {
638
+ super({
639
+ id: 'workbench.action.toggleEditorGroupLayout',
640
+ title: { value: ( nls.localizeWithPath(
641
+ 'vs/workbench/contrib/files/browser/views/openEditorsView',
642
+ 'flipLayout',
643
+ "Toggle Vertical/Horizontal Editor Layout"
644
+ )), original: 'Toggle Vertical/Horizontal Editor Layout' },
645
+ f1: true,
646
+ keybinding: {
647
+ primary: 1024 | 512 | 21 ,
648
+ mac: { primary: 2048 | 512 | 21 },
649
+ weight: 200
650
+ },
651
+ icon: Codicon.editorLayout,
652
+ menu: {
653
+ id: MenuId.ViewTitle,
654
+ group: 'navigation',
655
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', OpenEditorsView.ID)), MultipleEditorGroupsContext)),
656
+ order: 10
657
+ }
658
+ });
659
+ }
660
+ async run(accessor) {
661
+ const editorGroupService = accessor.get(IEditorGroupsService);
662
+ const newOrientation = ((editorGroupService.orientation === 1) ) ? 0 : 1 ;
663
+ editorGroupService.setGroupOrientation(newOrientation);
664
+ }
665
+ });
611
666
  MenuRegistry.appendMenuItem(MenuId.MenubarLayoutMenu, {
612
- group: '4_flip',
667
+ group: '5_flip',
613
668
  command: {
614
669
  id: toggleEditorGroupLayoutId,
615
670
  title: {
@@ -628,4 +683,69 @@ MenuRegistry.appendMenuItem(MenuId.MenubarLayoutMenu, {
628
683
  },
629
684
  order: 1
630
685
  });
686
+ registerAction2(class extends Action2 {
687
+ constructor() {
688
+ super({
689
+ id: 'workbench.action.files.saveAll',
690
+ title: { value: SAVE_ALL_LABEL, original: 'Save All' },
691
+ f1: true,
692
+ icon: Codicon.saveAll,
693
+ menu: {
694
+ id: MenuId.ViewTitle,
695
+ group: 'navigation',
696
+ when: ( ContextKeyExpr.equals('view', OpenEditorsView.ID)),
697
+ order: 20
698
+ }
699
+ });
700
+ }
701
+ async run(accessor) {
702
+ const commandService = accessor.get(ICommandService);
703
+ await commandService.executeCommand(SAVE_ALL_COMMAND_ID);
704
+ }
705
+ });
706
+ registerAction2(class extends Action2 {
707
+ constructor() {
708
+ super({
709
+ id: 'openEditors.closeAll',
710
+ title: CloseAllEditorsAction.LABEL,
711
+ f1: false,
712
+ icon: Codicon.closeAll,
713
+ menu: {
714
+ id: MenuId.ViewTitle,
715
+ group: 'navigation',
716
+ when: ( ContextKeyExpr.equals('view', OpenEditorsView.ID)),
717
+ order: 30
718
+ }
719
+ });
720
+ }
721
+ async run(accessor) {
722
+ const instantiationService = accessor.get(IInstantiationService);
723
+ const closeAll = ( new CloseAllEditorsAction());
724
+ await instantiationService.invokeFunction(accessor => closeAll.run(accessor));
725
+ }
726
+ });
727
+ registerAction2(class extends Action2 {
728
+ constructor() {
729
+ super({
730
+ id: 'openEditors.newUntitledFile',
731
+ title: { value: ( nls.localizeWithPath(
732
+ 'vs/workbench/contrib/files/browser/views/openEditorsView',
733
+ 'newUntitledFile',
734
+ "New Untitled Text File"
735
+ )), original: 'New Untitled Text File' },
736
+ f1: false,
737
+ icon: Codicon.newFile,
738
+ menu: {
739
+ id: MenuId.ViewTitle,
740
+ group: 'navigation',
741
+ when: ( ContextKeyExpr.equals('view', OpenEditorsView.ID)),
742
+ order: 5
743
+ }
744
+ });
745
+ }
746
+ async run(accessor) {
747
+ const commandService = accessor.get(ICommandService);
748
+ await commandService.executeCommand(NEW_UNTITLED_FILE_COMMAND_ID);
749
+ }
750
+ });
631
751
  export { OpenEditorsView };