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