@codingame/monaco-vscode-api 1.83.16 → 1.85.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/api.js +13 -7
  2. package/assets/clear.mp3 +0 -0
  3. package/assets/format.mp3 +0 -0
  4. package/assets/save.mp3 +0 -0
  5. package/extensions.d.ts +13 -3
  6. package/external/{xterm-addon-image/typings/xterm-addon-image.d.ts → @xterm/addon-image/typings/addon-image.d.ts} +1 -1
  7. package/external/{xterm-addon-serialize/typings/xterm-addon-serialize.d.ts → @xterm/addon-serialize/typings/addon-serialize.d.ts} +20 -3
  8. package/external/{xterm → @xterm/xterm}/typings/xterm.d.ts +13 -1
  9. package/lifecycle.js +2 -2
  10. package/localExtensionHost.js +3 -1
  11. package/missing-services.js +160 -25
  12. package/monaco-editor-treemending.patch +6884 -18018
  13. package/monaco-treemending.js +2 -2
  14. package/package.json +7 -7
  15. package/service-override/tools/editor.d.ts +8 -8
  16. package/service-override/tools/editor.js +44 -19
  17. package/services.d.ts +2 -2
  18. package/services.js +3 -3
  19. package/vscode/src/vs/base/browser/broadcast.js +6 -5
  20. package/vscode/src/vs/base/browser/dnd.d.ts +6 -0
  21. package/vscode/src/vs/base/browser/mouseEvent.d.ts +1 -1
  22. package/vscode/src/vs/base/browser/touch.d.ts +10 -0
  23. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.d.ts +1 -0
  24. package/vscode/src/vs/base/browser/ui/iconLabel/iconHoverDelegate.d.ts +22 -15
  25. package/vscode/src/vs/base/browser/ui/menu/menubar.js +4 -3
  26. package/vscode/src/vs/base/browser/ui/splitview/paneview.css.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/splitview/paneview.d.ts +3 -0
  28. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +34 -11
  29. package/vscode/src/vs/base/common/actions.d.ts +1 -15
  30. package/vscode/src/vs/base/common/async.d.ts +1 -31
  31. package/vscode/src/vs/base/common/event.d.ts +2 -1
  32. package/vscode/src/vs/base/common/observableInternal/base.d.ts +23 -10
  33. package/vscode/src/vs/base/common/prefixTree.js +21 -11
  34. package/vscode/src/vs/base/common/product.d.ts +16 -2
  35. package/vscode/src/vs/base/common/resourceTree.js +135 -0
  36. package/vscode/src/vs/base/common/skipList.js +1 -0
  37. package/vscode/src/vs/base/common/tfIdf.js +137 -0
  38. package/vscode/src/vs/base/common/types.d.ts +13 -1
  39. package/vscode/src/vs/base/common/verifier.js +62 -0
  40. package/vscode/src/vs/editor/browser/editorBrowser.d.ts +4 -2
  41. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +23 -4
  42. package/vscode/src/vs/editor/common/core/lineRange.d.ts +1 -0
  43. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +3 -0
  44. package/vscode/src/vs/editor/common/core/position.d.ts +1 -0
  45. package/vscode/src/vs/editor/common/editorCommon.d.ts +2 -1
  46. package/vscode/src/vs/editor/common/languages.d.ts +23 -1
  47. package/vscode/src/vs/editor/common/services/languageFeatures.d.ts +2 -1
  48. package/vscode/src/vs/editor/common/services/resolverService.d.ts +11 -2
  49. package/vscode/src/vs/platform/accessibility/common/accessibility.d.ts +16 -1
  50. package/vscode/src/vs/platform/action/common/action.d.ts +8 -0
  51. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +4 -0
  52. package/vscode/src/vs/platform/actions/common/actions.d.ts +8 -0
  53. package/vscode/src/vs/platform/audioCues/browser/audioCueService.d.ts +6 -0
  54. package/vscode/src/vs/platform/commands/common/commands.d.ts +13 -5
  55. package/vscode/src/vs/platform/dialogs/common/dialogs.d.ts +9 -3
  56. package/vscode/src/vs/platform/dialogs/common/dialogs.js +5 -2
  57. package/vscode/src/vs/platform/editor/common/editor.d.ts +3 -15
  58. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +1 -0
  59. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +3 -15
  60. package/vscode/src/vs/platform/extensionManagement/common/implicitActivationEvents.js +5 -0
  61. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +0 -1
  62. package/vscode/src/vs/platform/files/common/files.d.ts +72 -8
  63. package/vscode/src/vs/platform/files/common/watcher.js +77 -0
  64. package/vscode/src/vs/platform/keybinding/common/keybindingsRegistry.d.ts +2 -2
  65. package/vscode/src/vs/platform/layout/browser/layoutService.d.ts +52 -21
  66. package/vscode/src/vs/platform/request/browser/requestService.js +3 -0
  67. package/vscode/src/vs/platform/request/common/requestIpc.js +17 -0
  68. package/vscode/src/vs/platform/storage/common/storage.js +2 -2
  69. package/vscode/src/vs/platform/telemetry/common/telemetry.d.ts +1 -0
  70. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +12 -7
  71. package/vscode/src/vs/platform/terminal/common/capabilities/{commandDetectionCapability.d.ts → commandDetection/terminalCommand.d.ts} +3 -2
  72. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/terminalCommand.js +257 -0
  73. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +439 -354
  74. package/vscode/src/vs/platform/window/common/window.d.ts +9 -2
  75. package/vscode/src/vs/platform/window/common/window.js +6 -1
  76. package/vscode/src/vs/platform/workspaces/common/workspaces.d.ts +2 -43
  77. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +113 -81
  78. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +5 -4
  79. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +25 -3
  80. package/vscode/src/vs/workbench/api/common/extHostChat.js +13 -163
  81. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +412 -0
  82. package/vscode/src/vs/workbench/api/common/extHostChatProvider.js +79 -11
  83. package/vscode/src/vs/workbench/api/common/extHostCommands.js +13 -12
  84. package/vscode/src/vs/workbench/api/common/extHostComments.js +1 -1
  85. package/vscode/src/vs/workbench/api/common/extHostEditorTabs.js +8 -6
  86. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +1 -1
  87. package/vscode/src/vs/workbench/api/common/extHostFileSystemEventService.js +36 -19
  88. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +52 -31
  89. package/vscode/src/vs/workbench/api/common/extHostIssueReporter.js +38 -0
  90. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +28 -3
  91. package/vscode/src/vs/workbench/api/common/extHostLanguages.js +10 -0
  92. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +117 -2
  93. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +32 -4
  94. package/vscode/src/vs/workbench/api/common/extHostSCM.js +85 -23
  95. package/vscode/src/vs/workbench/api/common/extHostSearch.js +3 -0
  96. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +42 -0
  97. package/vscode/src/vs/workbench/api/common/extHostTask.js +2 -1
  98. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -0
  99. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +3 -3
  100. package/vscode/src/vs/workbench/api/common/extHostTesting.js +97 -47
  101. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +115 -16
  102. package/vscode/src/vs/workbench/api/common/extHostTypes.js +66 -36
  103. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +6 -1
  104. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +182 -75
  105. package/vscode/src/vs/workbench/browser/actions/windowActions.js +176 -4
  106. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +143 -2
  107. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +237 -0
  108. package/vscode/src/vs/workbench/browser/composite.d.ts +0 -4
  109. package/vscode/src/vs/workbench/browser/composite.js +5 -4
  110. package/vscode/src/vs/workbench/browser/dnd.js +72 -23
  111. package/vscode/src/vs/workbench/browser/labels.js +7 -3
  112. package/vscode/src/vs/workbench/browser/media/part.css.js +1 -1
  113. package/vscode/src/vs/workbench/browser/panecomposite.d.ts +2 -2
  114. package/vscode/src/vs/workbench/browser/panecomposite.js +2 -0
  115. package/vscode/src/vs/workbench/browser/part.js +33 -2
  116. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +99 -117
  117. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +173 -33
  118. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +102 -6
  119. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +256 -17
  120. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +4 -0
  121. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +68 -35
  122. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +5 -5
  123. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +35 -16
  124. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +348 -0
  125. package/vscode/src/vs/workbench/browser/parts/editor/editorsObserver.js +43 -31
  126. package/vscode/src/vs/workbench/browser/parts/editor/media/editortabscontrol.css.js +4 -0
  127. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -0
  128. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +1 -0
  129. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +14 -2
  130. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +4 -4
  131. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +277 -0
  132. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +5 -2
  133. package/vscode/src/vs/workbench/browser/parts/panel/media/panelpart.css.js +1 -1
  134. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +3 -38
  135. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.d.ts +54 -52
  136. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +2 -1
  137. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.d.ts +25 -0
  138. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +258 -0
  139. package/vscode/src/vs/workbench/browser/parts/views/media/paneviewlet.css.js +1 -1
  140. package/vscode/src/vs/workbench/browser/parts/views/viewPane.d.ts +2 -5
  141. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +157 -117
  142. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +50 -23
  143. package/vscode/src/vs/workbench/browser/parts/views/viewsService.js +26 -11
  144. package/vscode/src/vs/workbench/browser/parts/views/viewsViewlet.js +10 -6
  145. package/vscode/src/vs/workbench/browser/style.js +2 -1
  146. package/vscode/src/vs/workbench/browser/web.api.d.ts +39 -2
  147. package/vscode/src/vs/workbench/browser/window.js +55 -0
  148. package/vscode/src/vs/workbench/browser/workbench.contribution.js +220 -40
  149. package/vscode/src/vs/workbench/common/activity.js +3 -0
  150. package/vscode/src/vs/workbench/common/contextkeys.js +35 -5
  151. package/vscode/src/vs/workbench/common/contributions.js +4 -3
  152. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +14 -4
  153. package/vscode/src/vs/workbench/common/editor/diffEditorModel.js +1 -1
  154. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +22 -19
  155. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +4 -3
  156. package/vscode/src/vs/workbench/common/editor/editorModel.d.ts +1 -2
  157. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +22 -4
  158. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.js +3 -3
  159. package/vscode/src/vs/workbench/common/editor.d.ts +60 -30
  160. package/vscode/src/vs/workbench/common/editor.js +11 -3
  161. package/vscode/src/vs/workbench/common/theme.js +2 -2
  162. package/vscode/src/vs/workbench/common/views.d.ts +4 -4
  163. package/vscode/src/vs/workbench/common/views.js +3 -1
  164. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +97 -8
  165. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +17 -99
  166. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +103 -37
  167. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +2 -3
  168. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +127 -0
  169. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +71 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +2 -1
  171. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +33 -110
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +64 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +94 -0
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +6 -1
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +1 -88
  176. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +4 -4
  177. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -2
  178. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +3 -1
  179. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +15 -16
  180. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +9 -3
  181. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +3 -1
  182. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +2 -3
  183. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +1 -0
  184. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +9 -1
  185. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +10 -1
  186. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +114 -22
  187. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  188. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +4 -1
  189. package/vscode/src/vs/workbench/contrib/files/browser/explorerFileContrib.js +19 -0
  190. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +10 -8
  191. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +62 -10
  192. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +2 -1
  193. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +9 -8
  194. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +10 -1
  195. package/vscode/src/vs/workbench/contrib/files/browser/files.d.ts +1 -0
  196. package/vscode/src/vs/workbench/contrib/files/browser/files.js +7 -3
  197. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +4 -4
  198. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +64 -36
  199. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +42 -17
  200. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +145 -25
  201. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +1 -1
  202. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  203. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +36 -0
  204. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +3 -1
  205. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +24 -3
  206. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +11 -6
  207. package/vscode/src/vs/workbench/contrib/scm/common/scm.js +1 -2
  208. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/searchNotebookHelpers.js +31 -0
  209. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +61 -41
  210. package/vscode/src/vs/workbench/contrib/search/{browser/searchNotebookHelpers.js → common/cellSearchModel.js} +4 -63
  211. package/vscode/src/vs/workbench/contrib/search/common/searchNotebookHelpers.js +40 -0
  212. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +2 -2
  213. package/vscode/src/vs/workbench/{services/editor/browser/editorDropService.js → contrib/speech/common/speechService.js} +2 -2
  214. package/vscode/src/vs/workbench/contrib/terminal/browser/detachedTerminal.js +29 -4
  215. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +100 -79
  216. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.d.ts +3 -3
  217. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcon.js +7 -4
  219. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +5 -3
  220. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +143 -41
  221. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +17 -11
  222. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +41 -26
  223. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts +5 -2
  224. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +2 -8
  225. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +2 -0
  226. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +115 -0
  227. package/vscode/src/vs/workbench/contrib/testing/common/testCoverageService.js +74 -0
  228. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +3 -3
  229. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +64 -1
  230. package/vscode/src/vs/workbench/contrib/testing/common/testingContextKeys.js +9 -0
  231. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +4 -3
  232. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +8 -9
  233. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +5 -2
  235. package/vscode/src/vs/workbench/services/activity/browser/activityService.d.ts +16 -10
  236. package/vscode/src/vs/workbench/services/activity/common/activity.d.ts +14 -1
  237. package/vscode/src/vs/workbench/services/activity/common/activity.js +1 -7
  238. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +9 -28
  239. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +273 -0
  240. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolver.js +1 -0
  241. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +2 -0
  242. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +2 -3
  243. package/vscode/src/vs/workbench/services/editor/browser/editorService.d.ts +7 -5
  244. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +59 -37
  245. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +193 -94
  246. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.js +2 -2
  247. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.d.ts +8 -2
  248. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +8 -1
  249. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +62 -16
  250. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +5 -3
  251. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +3 -2
  252. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +4 -9
  253. package/vscode/src/vs/workbench/services/extensions/common/{extensionHostManager.d.ts → extensionHostManagers.d.ts} +2 -0
  254. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.d.ts +1 -1
  255. package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +9 -0
  256. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +22 -0
  257. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +14 -3
  258. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +9 -0
  259. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -3
  260. package/vscode/src/vs/workbench/services/history/common/history.d.ts +2 -2
  261. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +49 -18
  262. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +29 -7
  263. package/vscode/src/vs/workbench/services/hover/browser/hover.d.ts +51 -28
  264. package/vscode/src/vs/workbench/services/hover/browser/hoverService.d.ts +5 -2
  265. package/vscode/src/vs/workbench/services/keybinding/browser/unboundCommands.js +2 -2
  266. package/vscode/src/vs/workbench/services/languageStatus/common/languageStatusService.d.ts +4 -1
  267. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +40 -36
  268. package/vscode/src/vs/workbench/services/panecomposite/browser/panecomposite.d.ts +0 -6
  269. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +3 -0
  270. package/vscode/src/vs/workbench/services/progress/browser/progressIndicator.js +2 -2
  271. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.d.ts +18 -3
  272. package/vscode/src/vs/workbench/services/request/browser/requestService.js +48 -0
  273. package/vscode/src/vs/workbench/services/search/common/searchHelpers.js +4 -4
  274. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +10 -51
  275. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +2 -2
  276. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +32 -1
  277. package/vscode/src/vs/workbench/services/textfile/common/textEditorService.js +1 -5
  278. package/vscode/src/vs/workbench/services/themes/browser/browserHostColorSchemeService.js +4 -3
  279. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +9 -3
  280. package/vscode/src/vs/workbench/services/title/browser/titleService.d.ts +18 -0
  281. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +18 -3
  282. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorModel.js +16 -7
  283. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +6 -0
  284. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +13 -0
  285. package/vscode/src/vs/workbench/services/url/browser/urlService.js +2 -1
  286. package/vscode/src/vs/workbench/services/userActivity/common/userActivityService.js +2 -2
  287. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +9 -0
  288. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +375 -0
  289. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +80 -0
  290. package/vscode-dts/vscode.proposed.chatProvider.d.ts +5 -1
  291. package/vscode-dts/vscode.proposed.chatRequestAccess.d.ts +68 -10
  292. package/vscode-dts/vscode.proposed.chatTab.d.ts +21 -0
  293. package/vscode-dts/vscode.proposed.chatVariables.d.ts +5 -1
  294. package/vscode-dts/vscode.proposed.codeActionAI.d.ts +16 -0
  295. package/vscode-dts/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +7 -0
  296. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +51 -0
  297. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +30 -0
  298. package/vscode-dts/vscode.proposed.handleIssueUri.d.ts +26 -0
  299. package/vscode-dts/vscode.proposed.interactive.d.ts +26 -100
  300. package/vscode-dts/vscode.proposed.interactiveUserActions.d.ts +14 -7
  301. package/vscode-dts/vscode.proposed.languageStatusText.d.ts +12 -0
  302. package/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts +63 -0
  303. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +43 -0
  304. package/vscode-dts/vscode.proposed.resolvers.d.ts +100 -1
  305. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +9 -1
  306. package/vscode-dts/vscode.proposed.scmInputBoxActionButton.d.ts +19 -0
  307. package/vscode-dts/vscode.proposed.scmInputBoxValueProvider.d.ts +25 -0
  308. package/vscode-dts/vscode.proposed.speech.d.ts +35 -0
  309. package/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts +11 -7
  310. package/vscode-dts/vscode.proposed.testCoverage.d.ts +6 -1
  311. package/vscode-dts/vscode.proposed.testingActiveProfile.d.ts +21 -0
  312. package/external/xterm-headless/typings/xterm-headless.d.ts +0 -49
  313. package/vscode/src/vs/platform/backup/common/backup.d.ts +0 -14
  314. package/vscode/src/vs/platform/update/common/update.d.ts +0 -112
  315. package/vscode/src/vs/workbench/api/common/extHostChatAgents.js +0 -62
  316. package/vscode/src/vs/workbench/api/common/extHostChatSlashCommand.js +0 -62
  317. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.d.ts +0 -56
  318. package/vscode/src/vs/workbench/services/files/common/files.js +0 -4
  319. package/vscode/src/vs/workbench/services/host/browser/browserHostService.d.ts +0 -41
  320. package/vscode/src/vs/workbench/services/title/common/titleService.d.ts +0 -31
  321. package/vscode-dts/vscode.proposed.chatAgents.d.ts +0 -39
  322. package/vscode-dts/vscode.proposed.chatSlashCommands.d.ts +0 -47
  323. package/vscode-dts/vscode.proposed.testMessageContextValue.d.ts +0 -45
  324. /package/external/{xterm-addon-canvas/typings/xterm-addon-canvas.d.ts → @xterm/addon-canvas/typings/addon-canvas.d.ts} +0 -0
  325. /package/external/{xterm-addon-search/typings/xterm-addon-search.d.ts → @xterm/addon-search/typings/addon-search.d.ts} +0 -0
  326. /package/external/{xterm-addon-unicode11/typings/xterm-addon-unicode11.d.ts → @xterm/addon-unicode11/typings/addon-unicode11.d.ts} +0 -0
  327. /package/external/{xterm-addon-webgl/typings/xterm-addon-webgl.d.ts → @xterm/addon-webgl/typings/addon-webgl.d.ts} +0 -0
  328. /package/vscode/src/vs/workbench/services/title/{common → browser}/titleService.js +0 -0
@@ -1,7 +1,9 @@
1
1
  import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
2
2
  import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
3
- import { MenuId, Action2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
4
- import { IsDevelopmentContext } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkeys.js';
3
+ import { MenuId, Action2, registerAction2, MenuRegistry } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
4
+ import { KeyChord } from 'monaco-editor/esm/vs/base/common/keyCodes.js';
5
+ import { IsAuxiliaryWindowFocusedContext, IsFullscreenContext } from '../../common/contextkeys.js';
6
+ import { IsDevelopmentContext, IsWebContext, IsIOSContext, IsMacNativeContext } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkeys.js';
5
7
  import { Categories } from 'monaco-editor/esm/vs/platform/action/common/actionCommonCategories.js';
6
8
  import { KeybindingsRegistry } from 'monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js';
7
9
  import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
@@ -14,7 +16,7 @@ import { IWorkspacesService, isRecentFolder, isRecentWorkspace } from '../../../
14
16
  import { getIconClasses } from 'monaco-editor/esm/vs/editor/common/services/getIconClasses.js';
15
17
  import { FileKind } from 'monaco-editor/esm/vs/platform/files/common/files.js';
16
18
  import { splitRecentLabel } from 'monaco-editor/esm/vs/base/common/labels.js';
17
- import { isMacintosh } from 'monaco-editor/esm/vs/base/common/platform.js';
19
+ import { isMacintosh, isWeb, isWindows } from 'monaco-editor/esm/vs/base/common/platform.js';
18
20
  import { ContextKeyExpr } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
19
21
  import { getQuickNavigateHandler, inQuickPickContext } from '../quickaccess.js';
20
22
  import { IHostService } from '../../services/host/browser/host.js';
@@ -24,6 +26,8 @@ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
24
26
  import { CommandsRegistry } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
25
27
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
26
28
  import { isFolderBackupInfo, isWorkspaceBackupInfo } from '../../../platform/backup/common/backup.js';
29
+ import { getActiveWindow, getActiveElement } from 'monaco-editor/esm/vs/base/browser/dom.js';
30
+ import { mainWindow } from 'monaco-editor/esm/vs/base/browser/window.js';
27
31
  import { IDialogService } from '../../../platform/dialogs/common/dialogs.js';
28
32
  const inRecentFilesPickerContextKey = 'inRecentFilesPicker';
29
33
  class BaseOpenRecentAction extends Action2 {
@@ -269,6 +273,63 @@ class OpenRecentAction extends BaseOpenRecentAction {
269
273
  return false;
270
274
  }
271
275
  }
276
+ class QuickPickRecentAction extends BaseOpenRecentAction {
277
+ constructor() {
278
+ super({
279
+ id: 'workbench.action.quickOpenRecent',
280
+ title: { value: ( localizeWithPath(
281
+ 'vs/workbench/browser/actions/windowActions',
282
+ 'quickOpenRecent',
283
+ "Quick Open Recent..."
284
+ )), original: 'Quick Open Recent...' },
285
+ category: Categories.File,
286
+ f1: false
287
+ });
288
+ }
289
+ isQuickNavigate() {
290
+ return true;
291
+ }
292
+ }
293
+ class ToggleFullScreenAction extends Action2 {
294
+ constructor() {
295
+ super({
296
+ id: 'workbench.action.toggleFullScreen',
297
+ title: {
298
+ value: ( localizeWithPath(
299
+ 'vs/workbench/browser/actions/windowActions',
300
+ 'toggleFullScreen',
301
+ "Toggle Full Screen"
302
+ )),
303
+ mnemonicTitle: ( localizeWithPath(
304
+ 'vs/workbench/browser/actions/windowActions',
305
+ { key: 'miToggleFullScreen', comment: ['&& denotes a mnemonic'] },
306
+ "&&Full Screen"
307
+ )),
308
+ original: 'Toggle Full Screen'
309
+ },
310
+ category: Categories.View,
311
+ f1: true,
312
+ keybinding: {
313
+ weight: 200 ,
314
+ primary: 69 ,
315
+ mac: {
316
+ primary: 2048 | 256 | 36
317
+ }
318
+ },
319
+ precondition: ( IsIOSContext.toNegated()),
320
+ toggled: IsFullscreenContext,
321
+ menu: [{
322
+ id: MenuId.MenubarAppearanceMenu,
323
+ group: '1_toggle_view',
324
+ order: 1
325
+ }]
326
+ });
327
+ }
328
+ run(accessor) {
329
+ const hostService = accessor.get(IHostService);
330
+ return hostService.toggleFullScreen(getActiveWindow());
331
+ }
332
+ }
272
333
  class ReloadWindowAction extends Action2 {
273
334
  static { this.ID = 'workbench.action.reloadWindow'; }
274
335
  constructor() {
@@ -280,6 +341,7 @@ class ReloadWindowAction extends Action2 {
280
341
  "Reload Window"
281
342
  )), original: 'Reload Window' },
282
343
  category: Categories.Developer,
344
+ precondition: ( IsAuxiliaryWindowFocusedContext.toNegated()),
283
345
  f1: true,
284
346
  keybinding: {
285
347
  weight: 200 + 50,
@@ -288,11 +350,97 @@ class ReloadWindowAction extends Action2 {
288
350
  }
289
351
  });
290
352
  }
353
+ async run(accessor) {
354
+ const hostService = accessor.get(IHostService);
355
+ if (getActiveWindow() === mainWindow) {
356
+ return hostService.reload();
357
+ }
358
+ }
359
+ }
360
+ class ShowAboutDialogAction extends Action2 {
361
+ constructor() {
362
+ super({
363
+ id: 'workbench.action.showAboutDialog',
364
+ title: {
365
+ value: ( localizeWithPath('vs/workbench/browser/actions/windowActions', 'about', "About")),
366
+ mnemonicTitle: ( localizeWithPath(
367
+ 'vs/workbench/browser/actions/windowActions',
368
+ { key: 'miAbout', comment: ['&& denotes a mnemonic'] },
369
+ "&&About"
370
+ )),
371
+ original: 'About'
372
+ },
373
+ category: Categories.Help,
374
+ f1: true,
375
+ menu: {
376
+ id: MenuId.MenubarHelpMenu,
377
+ group: 'z_about',
378
+ order: 1,
379
+ when: ( IsMacNativeContext.toNegated())
380
+ }
381
+ });
382
+ }
383
+ run(accessor) {
384
+ const dialogService = accessor.get(IDialogService);
385
+ return dialogService.about();
386
+ }
387
+ }
388
+ class NewWindowAction extends Action2 {
389
+ constructor() {
390
+ super({
391
+ id: 'workbench.action.newWindow',
392
+ title: {
393
+ value: ( localizeWithPath('vs/workbench/browser/actions/windowActions', 'newWindow', "New Window")),
394
+ mnemonicTitle: ( localizeWithPath(
395
+ 'vs/workbench/browser/actions/windowActions',
396
+ { key: 'miNewWindow', comment: ['&& denotes a mnemonic'] },
397
+ "New &&Window"
398
+ )),
399
+ original: 'New Window'
400
+ },
401
+ f1: true,
402
+ keybinding: {
403
+ weight: 200 ,
404
+ primary: isWeb ? ((isWindows ? KeyChord(2048 | 41 , 1024 | 44 ) : 2048 | 512 | 1024 | 44) ) : 2048 | 1024 | 44 ,
405
+ secondary: isWeb ? [2048 | 1024 | 44 ] : undefined
406
+ },
407
+ menu: {
408
+ id: MenuId.MenubarFileMenu,
409
+ group: '1_new',
410
+ order: 3
411
+ }
412
+ });
413
+ }
291
414
  run(accessor) {
292
415
  const hostService = accessor.get(IHostService);
293
- return hostService.reload();
416
+ return hostService.openWindow({ remoteAuthority: null });
294
417
  }
295
418
  }
419
+ class BlurAction extends Action2 {
420
+ constructor() {
421
+ super({
422
+ id: 'workbench.action.blur',
423
+ title: { value: ( localizeWithPath(
424
+ 'vs/workbench/browser/actions/windowActions',
425
+ 'blur',
426
+ "Remove keyboard focus from focused element"
427
+ )), original: 'Remove keyboard focus from focused element' }
428
+ });
429
+ }
430
+ run() {
431
+ const activeElement = getActiveElement();
432
+ if (activeElement instanceof HTMLElement) {
433
+ activeElement.blur();
434
+ }
435
+ }
436
+ }
437
+ registerAction2(NewWindowAction);
438
+ registerAction2(ToggleFullScreenAction);
439
+ registerAction2(QuickPickRecentAction);
440
+ registerAction2(OpenRecentAction);
441
+ registerAction2(ReloadWindowAction);
442
+ registerAction2(ShowAboutDialogAction);
443
+ registerAction2(BlurAction);
296
444
  const recentFilesPickerContext = ( ContextKeyExpr.and(inQuickPickContext, ( ContextKeyExpr.has(inRecentFilesPickerContextKey))));
297
445
  const quickPickNavigateNextInRecentFilesPickerId = 'workbench.action.quickOpenNavigateNextInRecentFilesPicker';
298
446
  KeybindingsRegistry.registerCommandAndKeybindingRule({
@@ -317,4 +465,28 @@ CommandsRegistry.registerCommand('workbench.action.toggleConfirmBeforeClose', ac
317
465
  const setting = configurationService.inspect('window.confirmBeforeClose').userValue;
318
466
  return configurationService.updateValue('window.confirmBeforeClose', setting === 'never' ? 'keyboardOnly' : 'never');
319
467
  });
468
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
469
+ group: 'z_ConfirmClose',
470
+ command: {
471
+ id: 'workbench.action.toggleConfirmBeforeClose',
472
+ title: ( localizeWithPath(
473
+ 'vs/workbench/browser/actions/windowActions',
474
+ 'miConfirmClose',
475
+ "Confirm Before Close"
476
+ )),
477
+ toggled: ( ContextKeyExpr.notEquals('config.window.confirmBeforeClose', 'never'))
478
+ },
479
+ order: 1,
480
+ when: IsWebContext
481
+ });
482
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
483
+ title: ( localizeWithPath(
484
+ 'vs/workbench/browser/actions/windowActions',
485
+ { key: 'miOpenRecent', comment: ['&& denotes a mnemonic'] },
486
+ "Open &&Recent"
487
+ )),
488
+ submenu: MenuId.MenubarRecentMenu,
489
+ group: '2_open',
490
+ order: 4
491
+ });
320
492
  export { OpenRecentAction, ReloadWindowAction, inRecentFilesPickerContextKey };
@@ -5,7 +5,7 @@ import { IEditorService } from '../../services/editor/common/editorService.js';
5
5
  import { ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
6
6
  import { SET_ROOT_FOLDER_COMMAND_ID, ADD_ROOT_FOLDER_LABEL, ADD_ROOT_FOLDER_COMMAND_ID, PICK_WORKSPACE_FOLDER_COMMAND_ID } from './workspaceCommands.js';
7
7
  import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
8
- import { Action2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
8
+ import { Action2, registerAction2, MenuRegistry, MenuId } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
9
9
  import { OpenFolderWorkspaceSupportContext, WorkbenchStateContext, EnterMultiRootWorkspaceSupportContext, EmptyWorkspaceSupportContext, WorkspaceFolderCountContext } from '../../common/contextkeys.js';
10
10
  import { IHostService } from '../../services/host/browser/host.js';
11
11
  import { KeyChord } from 'monaco-editor/esm/vs/base/common/keyCodes.js';
@@ -32,8 +32,8 @@ class OpenFileAction extends Action2 {
32
32
  )), original: 'Open File...' },
33
33
  category: Categories.File,
34
34
  f1: true,
35
- precondition: ( IsMacNativeContext.toNegated()),
36
35
  keybinding: {
36
+ when: ( IsMacNativeContext.toNegated()),
37
37
  weight: 200 ,
38
38
  primary: 2048 | 45
39
39
  }
@@ -292,4 +292,145 @@ class DuplicateWorkspaceInNewWindowAction extends Action2 {
292
292
  return hostService.openWindow([{ workspaceUri: newWorkspace.configPath }], { forceNewWindow: true, remoteAuthority });
293
293
  }
294
294
  }
295
+ registerAction2(AddRootFolderAction);
296
+ registerAction2(RemoveRootFolderAction);
297
+ registerAction2(OpenFileAction);
298
+ registerAction2(OpenFolderAction);
299
+ registerAction2(OpenFolderViaWorkspaceAction);
300
+ registerAction2(OpenFileFolderAction);
301
+ registerAction2(OpenWorkspaceAction);
302
+ registerAction2(OpenWorkspaceConfigFileAction);
303
+ registerAction2(CloseWorkspaceAction);
304
+ registerAction2(SaveWorkspaceAsAction);
305
+ registerAction2(DuplicateWorkspaceInNewWindowAction);
306
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
307
+ group: '2_open',
308
+ command: {
309
+ id: OpenFileAction.ID,
310
+ title: ( localizeWithPath(
311
+ 'vs/workbench/browser/actions/workspaceActions',
312
+ { key: 'miOpenFile', comment: ['&& denotes a mnemonic'] },
313
+ "&&Open File..."
314
+ ))
315
+ },
316
+ order: 1,
317
+ when: ( IsMacNativeContext.toNegated())
318
+ });
319
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
320
+ group: '2_open',
321
+ command: {
322
+ id: OpenFolderAction.ID,
323
+ title: ( localizeWithPath(
324
+ 'vs/workbench/browser/actions/workspaceActions',
325
+ { key: 'miOpenFolder', comment: ['&& denotes a mnemonic'] },
326
+ "Open &&Folder..."
327
+ ))
328
+ },
329
+ order: 2,
330
+ when: OpenFolderWorkspaceSupportContext
331
+ });
332
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
333
+ group: '2_open',
334
+ command: {
335
+ id: OpenFolderViaWorkspaceAction.ID,
336
+ title: ( localizeWithPath(
337
+ 'vs/workbench/browser/actions/workspaceActions',
338
+ { key: 'miOpenFolder', comment: ['&& denotes a mnemonic'] },
339
+ "Open &&Folder..."
340
+ ))
341
+ },
342
+ order: 2,
343
+ when: ( ContextKeyExpr.and(( OpenFolderWorkspaceSupportContext.toNegated()), ( WorkbenchStateContext.isEqualTo('workspace'))))
344
+ });
345
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
346
+ group: '2_open',
347
+ command: {
348
+ id: OpenFileFolderAction.ID,
349
+ title: ( localizeWithPath(
350
+ 'vs/workbench/browser/actions/workspaceActions',
351
+ { key: 'miOpen', comment: ['&& denotes a mnemonic'] },
352
+ "&&Open..."
353
+ ))
354
+ },
355
+ order: 1,
356
+ when: ( ContextKeyExpr.and(IsMacNativeContext, OpenFolderWorkspaceSupportContext))
357
+ });
358
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
359
+ group: '2_open',
360
+ command: {
361
+ id: OpenWorkspaceAction.ID,
362
+ title: ( localizeWithPath(
363
+ 'vs/workbench/browser/actions/workspaceActions',
364
+ { key: 'miOpenWorkspace', comment: ['&& denotes a mnemonic'] },
365
+ "Open Wor&&kspace from File..."
366
+ ))
367
+ },
368
+ order: 3,
369
+ when: EnterMultiRootWorkspaceSupportContext
370
+ });
371
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
372
+ group: '3_workspace',
373
+ command: {
374
+ id: ADD_ROOT_FOLDER_COMMAND_ID,
375
+ title: ( localizeWithPath(
376
+ 'vs/workbench/browser/actions/workspaceActions',
377
+ { key: 'miAddFolderToWorkspace', comment: ['&& denotes a mnemonic'] },
378
+ "A&&dd Folder to Workspace..."
379
+ ))
380
+ },
381
+ when: ( ContextKeyExpr.or(EnterMultiRootWorkspaceSupportContext, ( WorkbenchStateContext.isEqualTo('workspace')))),
382
+ order: 1
383
+ });
384
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
385
+ group: '3_workspace',
386
+ command: {
387
+ id: SaveWorkspaceAsAction.ID,
388
+ title: ( localizeWithPath(
389
+ 'vs/workbench/browser/actions/workspaceActions',
390
+ 'miSaveWorkspaceAs',
391
+ "Save Workspace As..."
392
+ ))
393
+ },
394
+ order: 2,
395
+ when: EnterMultiRootWorkspaceSupportContext
396
+ });
397
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
398
+ group: '3_workspace',
399
+ command: {
400
+ id: DuplicateWorkspaceInNewWindowAction.ID,
401
+ title: ( localizeWithPath(
402
+ 'vs/workbench/browser/actions/workspaceActions',
403
+ 'duplicateWorkspace',
404
+ "Duplicate Workspace"
405
+ ))
406
+ },
407
+ order: 3,
408
+ when: EnterMultiRootWorkspaceSupportContext
409
+ });
410
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
411
+ group: '6_close',
412
+ command: {
413
+ id: CloseWorkspaceAction.ID,
414
+ title: ( localizeWithPath(
415
+ 'vs/workbench/browser/actions/workspaceActions',
416
+ { key: 'miCloseFolder', comment: ['&& denotes a mnemonic'] },
417
+ "Close &&Folder"
418
+ ))
419
+ },
420
+ order: 3,
421
+ when: ( ContextKeyExpr.and(( WorkbenchStateContext.isEqualTo('folder')), EmptyWorkspaceSupportContext))
422
+ });
423
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
424
+ group: '6_close',
425
+ command: {
426
+ id: CloseWorkspaceAction.ID,
427
+ title: ( localizeWithPath(
428
+ 'vs/workbench/browser/actions/workspaceActions',
429
+ { key: 'miCloseWorkspace', comment: ['&& denotes a mnemonic'] },
430
+ "Close &&Workspace"
431
+ ))
432
+ },
433
+ order: 3,
434
+ when: ( ContextKeyExpr.and(( WorkbenchStateContext.isEqualTo('workspace')), EmptyWorkspaceSupportContext))
435
+ });
295
436
  export { AddRootFolderAction, OpenFileAction, OpenFileFolderAction, OpenFolderAction, OpenFolderViaWorkspaceAction, RemoveRootFolderAction };
@@ -1,5 +1,22 @@
1
1
  import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
2
+ import { IWorkspaceContextService, hasWorkspaceFileExtension } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
3
+ import { IWorkspaceEditingService } from '../../services/workspaces/common/workspaceEditing.js';
4
+ import { dirname } from 'monaco-editor/esm/vs/base/common/resources.js';
5
+ import { CancellationToken } from 'monaco-editor/esm/vs/base/common/cancellation.js';
6
+ import { mnemonicButtonLabel } from 'monaco-editor/esm/vs/base/common/labels.js';
7
+ import { CommandsRegistry, ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
8
+ import { FileKind } from 'monaco-editor/esm/vs/platform/files/common/files.js';
9
+ import { ILabelService } from 'monaco-editor/esm/vs/platform/label/common/label.js';
10
+ import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
11
+ import { getIconClasses } from 'monaco-editor/esm/vs/editor/common/services/getIconClasses.js';
12
+ import { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
13
+ import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
2
14
  import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
15
+ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
16
+ import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
17
+ import { IWorkspacesService } from '../../../platform/workspaces/common/workspaces.js';
18
+ import { IPathService } from '../../services/path/common/pathService.js';
19
+ import { IFileDialogService } from '../../../platform/dialogs/common/dialogs.js';
3
20
  const ADD_ROOT_FOLDER_COMMAND_ID = 'addRootFolder';
4
21
  const ADD_ROOT_FOLDER_LABEL = { value: ( localizeWithPath(
5
22
  'vs/workbench/browser/actions/workspaceCommands',
@@ -8,4 +25,224 @@ const ADD_ROOT_FOLDER_LABEL = { value: ( localizeWithPath(
8
25
  )), original: 'Add Folder to Workspace...' };
9
26
  const SET_ROOT_FOLDER_COMMAND_ID = 'setRootFolder';
10
27
  const PICK_WORKSPACE_FOLDER_COMMAND_ID = '_workbench.pickWorkspaceFolder';
28
+ CommandsRegistry.registerCommand({
29
+ id: 'workbench.action.files.openFileFolderInNewWindow',
30
+ handler: (accessor) => accessor.get(IFileDialogService).pickFileFolderAndOpen({ forceNewWindow: true })
31
+ });
32
+ CommandsRegistry.registerCommand({
33
+ id: '_files.pickFolderAndOpen',
34
+ handler: (accessor, options) => accessor.get(IFileDialogService).pickFolderAndOpen(options)
35
+ });
36
+ CommandsRegistry.registerCommand({
37
+ id: 'workbench.action.files.openFolderInNewWindow',
38
+ handler: (accessor) => accessor.get(IFileDialogService).pickFolderAndOpen({ forceNewWindow: true })
39
+ });
40
+ CommandsRegistry.registerCommand({
41
+ id: 'workbench.action.files.openFileInNewWindow',
42
+ handler: (accessor) => accessor.get(IFileDialogService).pickFileAndOpen({ forceNewWindow: true })
43
+ });
44
+ CommandsRegistry.registerCommand({
45
+ id: 'workbench.action.openWorkspaceInNewWindow',
46
+ handler: (accessor) => accessor.get(IFileDialogService).pickWorkspaceAndOpen({ forceNewWindow: true })
47
+ });
48
+ CommandsRegistry.registerCommand({
49
+ id: ADD_ROOT_FOLDER_COMMAND_ID,
50
+ handler: async (accessor) => {
51
+ const workspaceEditingService = accessor.get(IWorkspaceEditingService);
52
+ const folders = await selectWorkspaceFolders(accessor);
53
+ if (!folders || !folders.length) {
54
+ return;
55
+ }
56
+ await workspaceEditingService.addFolders(( folders.map(folder => ({ uri: folder }))));
57
+ }
58
+ });
59
+ CommandsRegistry.registerCommand({
60
+ id: SET_ROOT_FOLDER_COMMAND_ID,
61
+ handler: async (accessor) => {
62
+ const workspaceEditingService = accessor.get(IWorkspaceEditingService);
63
+ const contextService = accessor.get(IWorkspaceContextService);
64
+ const folders = await selectWorkspaceFolders(accessor);
65
+ if (!folders || !folders.length) {
66
+ return;
67
+ }
68
+ await workspaceEditingService.updateFolders(0, contextService.getWorkspace().folders.length, ( folders.map(folder => ({ uri: folder }))));
69
+ }
70
+ });
71
+ async function selectWorkspaceFolders(accessor) {
72
+ const dialogsService = accessor.get(IFileDialogService);
73
+ const pathService = accessor.get(IPathService);
74
+ const folders = await dialogsService.showOpenDialog({
75
+ openLabel: mnemonicButtonLabel(( localizeWithPath(
76
+ 'vs/workbench/browser/actions/workspaceCommands',
77
+ { key: 'add', comment: ['&& denotes a mnemonic'] },
78
+ "&&Add"
79
+ ))),
80
+ title: ( localizeWithPath(
81
+ 'vs/workbench/browser/actions/workspaceCommands',
82
+ 'addFolderToWorkspaceTitle',
83
+ "Add Folder to Workspace"
84
+ )),
85
+ canSelectFolders: true,
86
+ canSelectMany: true,
87
+ defaultUri: await dialogsService.defaultFolderPath(),
88
+ availableFileSystems: [pathService.defaultUriScheme]
89
+ });
90
+ return folders;
91
+ }
92
+ CommandsRegistry.registerCommand(PICK_WORKSPACE_FOLDER_COMMAND_ID, async function (accessor, args) {
93
+ const quickInputService = accessor.get(IQuickInputService);
94
+ const labelService = accessor.get(ILabelService);
95
+ const contextService = accessor.get(IWorkspaceContextService);
96
+ const modelService = accessor.get(IModelService);
97
+ const languageService = accessor.get(ILanguageService);
98
+ const folders = contextService.getWorkspace().folders;
99
+ if (!folders.length) {
100
+ return;
101
+ }
102
+ const folderPicks = ( folders.map(folder => {
103
+ const label = folder.name;
104
+ const description = labelService.getUriLabel(dirname(folder.uri), { relative: true });
105
+ return {
106
+ label,
107
+ description: description !== label ? description : undefined,
108
+ folder,
109
+ iconClasses: getIconClasses(modelService, languageService, folder.uri, FileKind.ROOT_FOLDER)
110
+ };
111
+ }));
112
+ const options = (args ? args[0] : undefined) || Object.create(null);
113
+ if (!options.activeItem) {
114
+ options.activeItem = folderPicks[0];
115
+ }
116
+ if (!options.placeHolder) {
117
+ options.placeHolder = ( localizeWithPath(
118
+ 'vs/workbench/browser/actions/workspaceCommands',
119
+ 'workspaceFolderPickerPlaceholder',
120
+ "Select workspace folder"
121
+ ));
122
+ }
123
+ if (typeof options.matchOnDescription !== 'boolean') {
124
+ options.matchOnDescription = true;
125
+ }
126
+ const token = (args ? args[1] : undefined) || CancellationToken.None;
127
+ const pick = await quickInputService.pick(folderPicks, options, token);
128
+ if (pick) {
129
+ return folders[folderPicks.indexOf(pick)];
130
+ }
131
+ return;
132
+ });
133
+ CommandsRegistry.registerCommand({
134
+ id: 'vscode.openFolder',
135
+ handler: (accessor, uriComponents, arg) => {
136
+ const commandService = accessor.get(ICommandService);
137
+ if (typeof arg === 'boolean') {
138
+ arg = { forceNewWindow: arg };
139
+ }
140
+ if (!uriComponents) {
141
+ const options = {
142
+ forceNewWindow: arg?.forceNewWindow
143
+ };
144
+ if (arg?.forceLocalWindow) {
145
+ options.remoteAuthority = null;
146
+ options.availableFileSystems = ['file'];
147
+ }
148
+ return commandService.executeCommand('_files.pickFolderAndOpen', options);
149
+ }
150
+ const uri = ( URI.from(uriComponents, true));
151
+ const options = {
152
+ forceNewWindow: arg?.forceNewWindow,
153
+ forceReuseWindow: arg?.forceReuseWindow,
154
+ noRecentEntry: arg?.noRecentEntry,
155
+ remoteAuthority: arg?.forceLocalWindow ? null : undefined,
156
+ forceProfile: arg?.forceProfile,
157
+ forceTempProfile: arg?.forceTempProfile,
158
+ };
159
+ const uriToOpen = (hasWorkspaceFileExtension(uri) || uri.scheme === Schemas.untitled) ? { workspaceUri: uri } : { folderUri: uri };
160
+ return commandService.executeCommand('_files.windowOpen', [uriToOpen], options);
161
+ },
162
+ metadata: {
163
+ description: 'Open a folder or workspace in the current window or new window depending on the newWindow argument. Note that opening in the same window will shutdown the current extension host process and start a new one on the given folder/workspace unless the newWindow parameter is set to true.',
164
+ args: [
165
+ {
166
+ name: 'uri', description: '(optional) Uri of the folder or workspace file to open. If not provided, a native dialog will ask the user for the folder',
167
+ constraint: (value) => value === undefined || value === null || value instanceof URI
168
+ },
169
+ {
170
+ name: 'options',
171
+ description: '(optional) Options. Object with the following properties: ' +
172
+ '`forceNewWindow`: Whether to open the folder/workspace in a new window or the same. Defaults to opening in the same window. ' +
173
+ '`forceReuseWindow`: Whether to force opening the folder/workspace in the same window. Defaults to false. ' +
174
+ '`noRecentEntry`: Whether the opened URI will appear in the \'Open Recent\' list. Defaults to false. ' +
175
+ 'Note, for backward compatibility, options can also be of type boolean, representing the `forceNewWindow` setting.',
176
+ constraint: (value) => value === undefined || typeof value === 'object' || typeof value === 'boolean'
177
+ }
178
+ ]
179
+ }
180
+ });
181
+ CommandsRegistry.registerCommand({
182
+ id: 'vscode.newWindow',
183
+ handler: (accessor, options) => {
184
+ const commandService = accessor.get(ICommandService);
185
+ const commandOptions = {
186
+ forceReuseWindow: options && options.reuseWindow,
187
+ remoteAuthority: options && options.remoteAuthority
188
+ };
189
+ return commandService.executeCommand('_files.newWindow', commandOptions);
190
+ },
191
+ metadata: {
192
+ description: 'Opens an new window depending on the newWindow argument.',
193
+ args: [
194
+ {
195
+ name: 'options',
196
+ description: '(optional) Options. Object with the following properties: ' +
197
+ '`reuseWindow`: Whether to open a new window or the same. Defaults to opening in a new window. ',
198
+ constraint: (value) => value === undefined || typeof value === 'object'
199
+ }
200
+ ]
201
+ }
202
+ });
203
+ CommandsRegistry.registerCommand('_workbench.removeFromRecentlyOpened', function (accessor, uri) {
204
+ const workspacesService = accessor.get(IWorkspacesService);
205
+ return workspacesService.removeRecentlyOpened([uri]);
206
+ });
207
+ CommandsRegistry.registerCommand({
208
+ id: 'vscode.removeFromRecentlyOpened',
209
+ handler: (accessor, path) => {
210
+ const workspacesService = accessor.get(IWorkspacesService);
211
+ if (typeof path === 'string') {
212
+ path = path.match(/^[^:/?#]+:\/\//) ? ( URI.parse(path)) : URI.file(path);
213
+ }
214
+ else {
215
+ path = URI.revive(path);
216
+ }
217
+ return workspacesService.removeRecentlyOpened([path]);
218
+ },
219
+ metadata: {
220
+ description: 'Removes an entry with the given path from the recently opened list.',
221
+ args: [
222
+ { name: 'path', description: 'URI or URI string to remove from recently opened.', constraint: (value) => typeof value === 'string' || value instanceof URI }
223
+ ]
224
+ }
225
+ });
226
+ CommandsRegistry.registerCommand('_workbench.addToRecentlyOpened', async function (accessor, recentEntry) {
227
+ const workspacesService = accessor.get(IWorkspacesService);
228
+ const uri = recentEntry.uri;
229
+ const label = recentEntry.label;
230
+ const remoteAuthority = recentEntry.remoteAuthority;
231
+ let recent = undefined;
232
+ if (recentEntry.type === 'workspace') {
233
+ const workspace = await workspacesService.getWorkspaceIdentifier(uri);
234
+ recent = { workspace, label, remoteAuthority };
235
+ }
236
+ else if (recentEntry.type === 'folder') {
237
+ recent = { folderUri: uri, label, remoteAuthority };
238
+ }
239
+ else {
240
+ recent = { fileUri: uri, label, remoteAuthority };
241
+ }
242
+ return workspacesService.addRecentlyOpened([recent]);
243
+ });
244
+ CommandsRegistry.registerCommand('_workbench.getRecentlyOpened', async function (accessor) {
245
+ const workspacesService = accessor.get(IWorkspacesService);
246
+ return workspacesService.getRecentlyOpened();
247
+ });
11
248
  export { ADD_ROOT_FOLDER_COMMAND_ID, ADD_ROOT_FOLDER_LABEL, PICK_WORKSPACE_FOLDER_COMMAND_ID, SET_ROOT_FOLDER_COMMAND_ID };
@@ -81,10 +81,6 @@ declare abstract class Composite extends Component implements IComposite {
81
81
  * draggable corner areas with inner sashes.
82
82
  */
83
83
  abstract setBoundarySashes(sashes: IBoundarySashes): void;
84
- /**
85
- * Update the styles of the contents of this composite.
86
- */
87
- updateStyles(): void;
88
84
  /**
89
85
  *
90
86
  * @returns the action runner for this composite
@@ -1,7 +1,7 @@
1
1
  import { ActionRunner } from 'monaco-editor/esm/vs/base/common/actions.js';
2
2
  import { Component } from '../common/component.js';
3
3
  import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
4
- import { trackFocus } from 'monaco-editor/esm/vs/base/browser/dom.js';
4
+ import { trackFocus, focusWindow } from 'monaco-editor/esm/vs/base/browser/dom.js';
5
5
  import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
6
6
  import { assertIsDefined } from 'monaco-editor/esm/vs/base/common/types.js';
7
7
  class Composite extends Component {
@@ -62,9 +62,10 @@ class Composite extends Component {
62
62
  }
63
63
  }
64
64
  focus() {
65
- }
66
- updateStyles() {
67
- super.updateStyles();
65
+ const container = this.getContainer();
66
+ if (container) {
67
+ focusWindow(container);
68
+ }
68
69
  }
69
70
  getMenuIds() {
70
71
  return [];