@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
|
@@ -1,8 +1,65 @@
|
|
|
1
|
+
import { CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
|
|
1
2
|
import { toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
2
3
|
import { MainContext } from './extHost.protocol.js';
|
|
3
4
|
import { ChatMessage } from './extHostTypeConverters.js';
|
|
4
5
|
import { Progress } from 'monaco-editor/esm/vs/platform/progress/common/progress.js';
|
|
5
6
|
import { ExtensionIdentifierMap } from 'monaco-editor/esm/vs/platform/extensions/common/extensions.js';
|
|
7
|
+
import { AsyncIterableSource } from 'monaco-editor/esm/vs/base/common/async.js';
|
|
8
|
+
import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
9
|
+
class ChatResponseStream {
|
|
10
|
+
constructor(option, stream) {
|
|
11
|
+
this.stream = ( new AsyncIterableSource());
|
|
12
|
+
this.stream = stream ?? ( new AsyncIterableSource());
|
|
13
|
+
const that = this;
|
|
14
|
+
this.apiObj = {
|
|
15
|
+
option: option,
|
|
16
|
+
response: that.stream.asyncIterable
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
class ChatRequest {
|
|
21
|
+
constructor(promise, cts) {
|
|
22
|
+
this._onDidStart = ( new Emitter());
|
|
23
|
+
this._responseStreams = ( new Map());
|
|
24
|
+
this._defaultStream = ( new AsyncIterableSource());
|
|
25
|
+
this._isDone = false;
|
|
26
|
+
const that = this;
|
|
27
|
+
this.apiObject = {
|
|
28
|
+
result: promise,
|
|
29
|
+
response: that._defaultStream.asyncIterable,
|
|
30
|
+
onDidStartResponseStream: that._onDidStart.event,
|
|
31
|
+
cancel() { cts.cancel(); },
|
|
32
|
+
};
|
|
33
|
+
promise.finally(() => {
|
|
34
|
+
this._isDone = true;
|
|
35
|
+
if (this._responseStreams.size > 0) {
|
|
36
|
+
for (const [, value] of this._responseStreams) {
|
|
37
|
+
value.stream.resolve();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this._defaultStream.resolve();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
handleFragment(fragment) {
|
|
46
|
+
if (this._isDone) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
let res = this._responseStreams.get(fragment.index);
|
|
50
|
+
if (!res) {
|
|
51
|
+
if (this._responseStreams.size === 0) {
|
|
52
|
+
res = ( new ChatResponseStream(fragment.index, this._defaultStream));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
res = ( new ChatResponseStream(fragment.index));
|
|
56
|
+
}
|
|
57
|
+
this._responseStreams.set(fragment.index, res);
|
|
58
|
+
this._onDidStart.fire(res.apiObj);
|
|
59
|
+
}
|
|
60
|
+
res.stream.emitOne(fragment.part);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
6
63
|
class ExtHostChatProvider {
|
|
7
64
|
static { this._idPool = 1; }
|
|
8
65
|
constructor(mainContext, _logService) {
|
|
@@ -15,7 +72,7 @@ class ExtHostChatProvider {
|
|
|
15
72
|
registerProvider(extension, identifier, provider, metadata) {
|
|
16
73
|
const handle = ExtHostChatProvider._idPool++;
|
|
17
74
|
this._providers.set(handle, { extension, provider });
|
|
18
|
-
this._proxy.$registerProvider(handle, identifier, { extension,
|
|
75
|
+
this._proxy.$registerProvider(handle, identifier, { extension, model: metadata.name ?? '' });
|
|
19
76
|
return toDisposable(() => {
|
|
20
77
|
this._proxy.$unregisterProvider(handle);
|
|
21
78
|
this._providers.delete(handle);
|
|
@@ -31,8 +88,8 @@ class ExtHostChatProvider {
|
|
|
31
88
|
this._logService.warn(`[CHAT](${data.extension.value}) CANNOT send progress because the REQUEST IS CANCELLED`);
|
|
32
89
|
return;
|
|
33
90
|
}
|
|
34
|
-
|
|
35
|
-
}
|
|
91
|
+
this._proxy.$handleProgressChunk(requestId, { index: fragment.index, part: fragment.part });
|
|
92
|
+
}));
|
|
36
93
|
return data.provider.provideChatResponse(( messages.map(ChatMessage.to)), options, progress, token);
|
|
37
94
|
}
|
|
38
95
|
allowListExtensionWhile(extension, promise) {
|
|
@@ -43,28 +100,39 @@ class ExtHostChatProvider {
|
|
|
43
100
|
if (!( this._chatAccessAllowList.has(from))) {
|
|
44
101
|
throw new Error('Extension is NOT allowed to make chat requests');
|
|
45
102
|
}
|
|
103
|
+
const metadata = await this._proxy.$prepareChatAccess(identifier);
|
|
104
|
+
if (!metadata) {
|
|
105
|
+
throw new Error(`ChatAccess '${identifier}' NOT found`);
|
|
106
|
+
}
|
|
46
107
|
const that = this;
|
|
47
108
|
return {
|
|
109
|
+
get model() {
|
|
110
|
+
return metadata.model;
|
|
111
|
+
},
|
|
48
112
|
get isRevoked() {
|
|
49
113
|
return !( that._chatAccessAllowList.has(from));
|
|
50
114
|
},
|
|
51
|
-
|
|
115
|
+
makeRequest(messages, options, token) {
|
|
52
116
|
if (!( that._chatAccessAllowList.has(from))) {
|
|
53
117
|
throw new Error('Access to chat has been revoked');
|
|
54
118
|
}
|
|
119
|
+
const cts = ( new CancellationTokenSource(token));
|
|
55
120
|
const requestId = (Math.random() * 1e6) | 0;
|
|
56
|
-
that.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
finally {
|
|
121
|
+
const requestPromise = that._proxy.$fetchResponse(from, identifier, requestId, ( messages.map(ChatMessage.from)), options ?? {}, cts.token);
|
|
122
|
+
const res = ( new ChatRequest(requestPromise, cts));
|
|
123
|
+
that._pendingRequest.set(requestId, { res });
|
|
124
|
+
requestPromise.finally(() => {
|
|
61
125
|
that._pendingRequest.delete(requestId);
|
|
62
|
-
}
|
|
126
|
+
});
|
|
127
|
+
return res.apiObject;
|
|
63
128
|
},
|
|
64
129
|
};
|
|
65
130
|
}
|
|
66
131
|
async $handleResponseFragment(requestId, chunk) {
|
|
67
|
-
this._pendingRequest.get(requestId)
|
|
132
|
+
const data = this._pendingRequest.get(requestId);
|
|
133
|
+
if (data) {
|
|
134
|
+
data.res.handleFragment(chunk);
|
|
135
|
+
}
|
|
68
136
|
}
|
|
69
137
|
}
|
|
70
138
|
export { ExtHostChatProvider };
|
|
@@ -20,6 +20,7 @@ import { toErrorMessage } from 'monaco-editor/esm/vs/base/common/errorMessage.js
|
|
|
20
20
|
import { StopWatch } from 'monaco-editor/esm/vs/base/common/stopwatch.js';
|
|
21
21
|
import { TelemetryTrustedValue } from '../../../platform/telemetry/common/telemetryUtils.js';
|
|
22
22
|
import { IExtHostTelemetry } from './extHostTelemetry.js';
|
|
23
|
+
import { generateUuid } from 'monaco-editor/esm/vs/base/common/uuid.js';
|
|
23
24
|
let ExtHostCommands = class ExtHostCommands {
|
|
24
25
|
#proxy;
|
|
25
26
|
#telemetry;
|
|
@@ -89,7 +90,7 @@ let ExtHostCommands = class ExtHostCommands {
|
|
|
89
90
|
this._apiCommands.delete(apiCommand.id);
|
|
90
91
|
});
|
|
91
92
|
}
|
|
92
|
-
registerCommand(global, id, callback, thisArg,
|
|
93
|
+
registerCommand(global, id, callback, thisArg, metadata, extension) {
|
|
93
94
|
this._logService.trace('ExtHostCommands#registerCommand', id);
|
|
94
95
|
if (!id.trim().length) {
|
|
95
96
|
throw new Error('invalid id');
|
|
@@ -97,7 +98,7 @@ let ExtHostCommands = class ExtHostCommands {
|
|
|
97
98
|
if (( this._commands.has(id))) {
|
|
98
99
|
throw new Error(`command '${id}' already exists`);
|
|
99
100
|
}
|
|
100
|
-
this._commands.set(id, { callback, thisArg,
|
|
101
|
+
this._commands.set(id, { callback, thisArg, metadata, extension });
|
|
101
102
|
if (global) {
|
|
102
103
|
this.#proxy.$registerCommand(id);
|
|
103
104
|
}
|
|
@@ -168,14 +169,14 @@ let ExtHostCommands = class ExtHostCommands {
|
|
|
168
169
|
if (!command) {
|
|
169
170
|
throw new Error('Unknown command');
|
|
170
171
|
}
|
|
171
|
-
const { callback, thisArg,
|
|
172
|
-
if (
|
|
173
|
-
for (let i = 0; i <
|
|
172
|
+
const { callback, thisArg, metadata } = command;
|
|
173
|
+
if (metadata?.args) {
|
|
174
|
+
for (let i = 0; i < metadata.args.length; i++) {
|
|
174
175
|
try {
|
|
175
|
-
validateConstraint(args[i],
|
|
176
|
+
validateConstraint(args[i], metadata.args[i].constraint);
|
|
176
177
|
}
|
|
177
178
|
catch (err) {
|
|
178
|
-
throw new Error(`Running the contributed command: '${id}' failed.Illegal argument '${
|
|
179
|
+
throw new Error(`Running the contributed command: '${id}' failed. Illegal argument '${metadata.args[i].name}' - ${metadata.args[i].description}`);
|
|
179
180
|
}
|
|
180
181
|
}
|
|
181
182
|
}
|
|
@@ -242,12 +243,12 @@ let ExtHostCommands = class ExtHostCommands {
|
|
|
242
243
|
return result;
|
|
243
244
|
});
|
|
244
245
|
}
|
|
245
|
-
$
|
|
246
|
+
$getContributedCommandMetadata() {
|
|
246
247
|
const result = Object.create(null);
|
|
247
248
|
for (const [id, command] of this._commands) {
|
|
248
|
-
const {
|
|
249
|
-
if (
|
|
250
|
-
result[id] =
|
|
249
|
+
const { metadata } = command;
|
|
250
|
+
if (metadata) {
|
|
251
|
+
result[id] = metadata;
|
|
251
252
|
}
|
|
252
253
|
}
|
|
253
254
|
return Promise.resolve(result);
|
|
@@ -264,7 +265,7 @@ class CommandsConverter {
|
|
|
264
265
|
this._commands = _commands;
|
|
265
266
|
this._lookupApiCommand = _lookupApiCommand;
|
|
266
267
|
this._logService = _logService;
|
|
267
|
-
this.delegatingCommandId = `__vsc${(
|
|
268
|
+
this.delegatingCommandId = `__vsc${generateUuid()}`;
|
|
268
269
|
this._cache = ( new Map());
|
|
269
270
|
this._cachIdPool = 0;
|
|
270
271
|
this._commands.registerCommand(true, this.delegatingCommandId, this._executeConvertedCommand, this);
|
|
@@ -106,7 +106,7 @@ function createExtHostComments(mainContext, commands, documents) {
|
|
|
106
106
|
this._commentControllersByExtension.set(extension.identifier, commentControllers);
|
|
107
107
|
return commentController.value;
|
|
108
108
|
}
|
|
109
|
-
$createCommentThreadTemplate(commentControllerHandle, uriComponents, range) {
|
|
109
|
+
async $createCommentThreadTemplate(commentControllerHandle, uriComponents, range) {
|
|
110
110
|
const commentController = this._commentControllers.get(commentControllerHandle);
|
|
111
111
|
if (!commentController) {
|
|
112
112
|
return;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
3
|
-
import { MainContext } from './extHost.protocol.js';
|
|
4
|
-
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
2
|
+
import { diffSets } from 'monaco-editor/esm/vs/base/common/collections.js';
|
|
5
3
|
import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
4
|
+
import { assertIsDefined } from 'monaco-editor/esm/vs/base/common/types.js';
|
|
5
|
+
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
6
6
|
import { createDecorator } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
|
|
7
|
-
import {
|
|
7
|
+
import { MainContext } from './extHost.protocol.js';
|
|
8
8
|
import { IExtHostRpcService } from './extHostRpcService.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { ViewColumn } from './extHostTypeConverters.js';
|
|
10
|
+
import { ChatEditorTabInput, InteractiveWindowInput, TerminalEditorTabInput, NotebookDiffEditorTabInput, NotebookEditorTabInput, WebviewEditorTabInput, CustomEditorTabInput, TextMergeTabInput, TextDiffTabInput, TextTabInput } from './extHostTypes.js';
|
|
11
11
|
const IExtHostEditorTabs = ( createDecorator('IExtHostEditorTabs'));
|
|
12
12
|
class ExtHostEditorTab {
|
|
13
13
|
constructor(dto, parentGroup, activeTabIdGetter) {
|
|
@@ -81,6 +81,8 @@ class ExtHostEditorTab {
|
|
|
81
81
|
return ( new TerminalEditorTabInput());
|
|
82
82
|
case 9 :
|
|
83
83
|
return ( new InteractiveWindowInput(URI.revive(this._dto.input.uri), URI.revive(this._dto.input.inputBoxUri)));
|
|
84
|
+
case 10 :
|
|
85
|
+
return ( new ChatEditorTabInput(this._dto.input.providerId));
|
|
84
86
|
default:
|
|
85
87
|
return undefined;
|
|
86
88
|
}
|
|
@@ -891,7 +891,7 @@ class SyncedActivationEventsReader {
|
|
|
891
891
|
this.addActivationEvents(activationEvents);
|
|
892
892
|
}
|
|
893
893
|
readActivationEvents(extensionDescription) {
|
|
894
|
-
return this._map.get(extensionDescription.identifier);
|
|
894
|
+
return this._map.get(extensionDescription.identifier) ?? [];
|
|
895
895
|
}
|
|
896
896
|
addActivationEvents(activationEvents) {
|
|
897
897
|
for (const extensionId of ( Object.keys(activationEvents))) {
|
|
@@ -4,6 +4,7 @@ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
|
4
4
|
import { MainContext } from './extHost.protocol.js';
|
|
5
5
|
import { GlobPattern, WorkspaceEdit as WorkspaceEdit$1 } from './extHostTypeConverters.js';
|
|
6
6
|
import { WorkspaceEdit, Disposable } from './extHostTypes.js';
|
|
7
|
+
import { Lazy } from 'monaco-editor/esm/vs/base/common/lazy.js';
|
|
7
8
|
class FileSystemWatcher {
|
|
8
9
|
get ignoreCreateEvents() {
|
|
9
10
|
return Boolean(this._config & 0b001);
|
|
@@ -14,25 +15,32 @@ class FileSystemWatcher {
|
|
|
14
15
|
get ignoreDeleteEvents() {
|
|
15
16
|
return Boolean(this._config & 0b100);
|
|
16
17
|
}
|
|
17
|
-
constructor(mainContext, workspace, extension, dispatcher, globPattern,
|
|
18
|
+
constructor(mainContext, workspace, extension, dispatcher, globPattern, options) {
|
|
19
|
+
this.session = Math.random();
|
|
18
20
|
this._onDidCreate = ( new Emitter());
|
|
19
21
|
this._onDidChange = ( new Emitter());
|
|
20
22
|
this._onDidDelete = ( new Emitter());
|
|
21
|
-
const watcherDisposable = this.ensureWatching(mainContext, extension, globPattern);
|
|
22
23
|
this._config = 0;
|
|
23
|
-
if (ignoreCreateEvents) {
|
|
24
|
+
if (options?.ignoreCreateEvents) {
|
|
24
25
|
this._config += 0b001;
|
|
25
26
|
}
|
|
26
|
-
if (ignoreChangeEvents) {
|
|
27
|
+
if (options?.ignoreChangeEvents) {
|
|
27
28
|
this._config += 0b010;
|
|
28
29
|
}
|
|
29
|
-
if (ignoreDeleteEvents) {
|
|
30
|
+
if (options?.ignoreDeleteEvents) {
|
|
30
31
|
this._config += 0b100;
|
|
31
32
|
}
|
|
32
33
|
const parsedPattern = parse(globPattern);
|
|
33
34
|
const excludeOutOfWorkspaceEvents = typeof globPattern === 'string';
|
|
35
|
+
const excludeUncorrelatedEvents = options?.correlate;
|
|
34
36
|
const subscription = dispatcher(events => {
|
|
35
|
-
if (
|
|
37
|
+
if (typeof events.session === 'number' && events.session !== this.session) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (excludeUncorrelatedEvents && typeof events.session === 'undefined') {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (!options?.ignoreCreateEvents) {
|
|
36
44
|
for (const created of events.created) {
|
|
37
45
|
const uri = URI.revive(created);
|
|
38
46
|
if (parsedPattern(uri.fsPath) && (!excludeOutOfWorkspaceEvents || workspace.getWorkspaceFolder(uri))) {
|
|
@@ -40,7 +48,7 @@ class FileSystemWatcher {
|
|
|
40
48
|
}
|
|
41
49
|
}
|
|
42
50
|
}
|
|
43
|
-
if (!ignoreChangeEvents) {
|
|
51
|
+
if (!options?.ignoreChangeEvents) {
|
|
44
52
|
for (const changed of events.changed) {
|
|
45
53
|
const uri = URI.revive(changed);
|
|
46
54
|
if (parsedPattern(uri.fsPath) && (!excludeOutOfWorkspaceEvents || workspace.getWorkspaceFolder(uri))) {
|
|
@@ -48,7 +56,7 @@ class FileSystemWatcher {
|
|
|
48
56
|
}
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
|
-
if (!ignoreDeleteEvents) {
|
|
59
|
+
if (!options?.ignoreDeleteEvents) {
|
|
52
60
|
for (const deleted of events.deleted) {
|
|
53
61
|
const uri = URI.revive(deleted);
|
|
54
62
|
if (parsedPattern(uri.fsPath) && (!excludeOutOfWorkspaceEvents || workspace.getWorkspaceFolder(uri))) {
|
|
@@ -57,21 +65,20 @@ class FileSystemWatcher {
|
|
|
57
65
|
}
|
|
58
66
|
}
|
|
59
67
|
});
|
|
60
|
-
this._disposable = Disposable.from(
|
|
68
|
+
this._disposable = Disposable.from(this.ensureWatching(mainContext, extension, globPattern, options, options?.correlate), this._onDidCreate, this._onDidChange, this._onDidDelete, subscription);
|
|
61
69
|
}
|
|
62
|
-
ensureWatching(mainContext, extension, globPattern) {
|
|
70
|
+
ensureWatching(mainContext, extension, globPattern, options, correlate) {
|
|
63
71
|
const disposable = Disposable.from();
|
|
64
72
|
if (typeof globPattern === 'string') {
|
|
65
73
|
return disposable;
|
|
66
74
|
}
|
|
67
|
-
const proxy = ( mainContext.getProxy(MainContext.
|
|
75
|
+
const proxy = ( mainContext.getProxy(MainContext.MainThreadFileSystemEventService));
|
|
68
76
|
let recursive = false;
|
|
69
77
|
if (globPattern.pattern.includes(GLOBSTAR) || globPattern.pattern.includes(GLOB_SPLIT)) {
|
|
70
78
|
recursive = true;
|
|
71
79
|
}
|
|
72
|
-
|
|
73
|
-
proxy.$
|
|
74
|
-
return Disposable.from({ dispose: () => proxy.$unwatch(session) });
|
|
80
|
+
proxy.$watch(extension.identifier.value, this.session, globPattern.baseUri, { recursive, excludes: options?.excludes ?? [] }, Boolean(correlate));
|
|
81
|
+
return Disposable.from({ dispose: () => proxy.$unwatch(this.session) });
|
|
75
82
|
}
|
|
76
83
|
dispose() {
|
|
77
84
|
this._disposable.dispose();
|
|
@@ -86,6 +93,18 @@ class FileSystemWatcher {
|
|
|
86
93
|
return this._onDidDelete.event;
|
|
87
94
|
}
|
|
88
95
|
}
|
|
96
|
+
class LazyRevivedFileSystemEvents {
|
|
97
|
+
constructor(_events) {
|
|
98
|
+
this._events = _events;
|
|
99
|
+
this.session = this._events.session;
|
|
100
|
+
this._created = ( new Lazy(() => ( this._events.created.map(URI.revive))));
|
|
101
|
+
this._changed = ( new Lazy(() => ( this._events.changed.map(URI.revive))));
|
|
102
|
+
this._deleted = ( new Lazy(() => ( this._events.deleted.map(URI.revive))));
|
|
103
|
+
}
|
|
104
|
+
get created() { return this._created.value; }
|
|
105
|
+
get changed() { return this._changed.value; }
|
|
106
|
+
get deleted() { return this._deleted.value; }
|
|
107
|
+
}
|
|
89
108
|
class ExtHostFileSystemEventService {
|
|
90
109
|
constructor(_mainContext, _logService, _extHostDocumentsAndEditors) {
|
|
91
110
|
this._mainContext = _mainContext;
|
|
@@ -102,20 +121,18 @@ class ExtHostFileSystemEventService {
|
|
|
102
121
|
this.onDidCreateFile = this._onDidCreateFile.event;
|
|
103
122
|
this.onDidDeleteFile = this._onDidDeleteFile.event;
|
|
104
123
|
}
|
|
105
|
-
createFileSystemWatcher(workspace, extension, globPattern,
|
|
124
|
+
createFileSystemWatcher(workspace, extension, globPattern, options) {
|
|
106
125
|
return ( new FileSystemWatcher(
|
|
107
126
|
this._mainContext,
|
|
108
127
|
workspace,
|
|
109
128
|
extension,
|
|
110
129
|
this._onFileSystemEvent.event,
|
|
111
130
|
GlobPattern.from(globPattern),
|
|
112
|
-
|
|
113
|
-
ignoreChangeEvents,
|
|
114
|
-
ignoreDeleteEvents
|
|
131
|
+
options
|
|
115
132
|
));
|
|
116
133
|
}
|
|
117
134
|
$onFileEvent(events) {
|
|
118
|
-
this._onFileSystemEvent.fire(events);
|
|
135
|
+
this._onFileSystemEvent.fire(( new LazyRevivedFileSystemEvents(events)));
|
|
119
136
|
}
|
|
120
137
|
$onDidRunFileOperation(operation, files) {
|
|
121
138
|
switch (operation) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
2
2
|
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
3
3
|
import { MainContext } from './extHost.protocol.js';
|
|
4
|
-
import { Range, Selection, Position, MarkdownString, WorkspaceEdit as WorkspaceEdit$1, TextEdit, InteractiveEditorResponseFeedbackKind } from './extHostTypeConverters.js';
|
|
5
|
-
import { WorkspaceEdit } from './extHostTypes.js';
|
|
4
|
+
import { Range, Selection, Position, MarkdownString, WorkspaceEdit as WorkspaceEdit$1, TextEdit, ChatReplyFollowup, InteractiveEditorResponseFeedbackKind } from './extHostTypeConverters.js';
|
|
5
|
+
import { WorkspaceEdit, MarkdownString as MarkdownString$1 } from './extHostTypes.js';
|
|
6
6
|
import { ApiCommand, ApiCommandArgument, ApiCommandResult } from './extHostCommands.js';
|
|
7
|
+
import { raceCancellation } from 'monaco-editor/esm/vs/base/common/async.js';
|
|
7
8
|
class ProviderWrapper {
|
|
8
9
|
static { this._pool = 0; }
|
|
9
10
|
constructor(extension, provider) {
|
|
@@ -48,7 +49,7 @@ class ExtHostInteractiveEditor {
|
|
|
48
49
|
registerProvider(extension, provider, metadata) {
|
|
49
50
|
const wrapper = ( new ProviderWrapper(extension, provider));
|
|
50
51
|
this._inputProvider.set(wrapper.handle, wrapper);
|
|
51
|
-
this._proxy.$registerInteractiveEditorProvider(wrapper.handle, metadata.
|
|
52
|
+
this._proxy.$registerInteractiveEditorProvider(wrapper.handle, metadata?.label ?? extension.displayName ?? extension.name, extension.identifier.value, typeof provider.handleInteractiveEditorResponseFeedback === 'function', typeof provider.provideFollowups === 'function', metadata?.supportReportIssue ?? false);
|
|
52
53
|
return toDisposable(() => {
|
|
53
54
|
this._proxy.$unregisterInteractiveEditorProvider(wrapper.handle);
|
|
54
55
|
this._inputProvider.delete(wrapper.handle);
|
|
@@ -74,6 +75,7 @@ class ExtHostInteractiveEditor {
|
|
|
74
75
|
return {
|
|
75
76
|
id,
|
|
76
77
|
placeholder: session.placeholder,
|
|
78
|
+
input: session.input,
|
|
77
79
|
slashCommands: session.slashCommands?.map(c => ({ command: c.command, detail: c.detail, refer: c.refer, executeImmediately: c.executeImmediately })),
|
|
78
80
|
wholeRange: Range.from(session.wholeRange),
|
|
79
81
|
message: session.message
|
|
@@ -97,57 +99,76 @@ class ExtHostInteractiveEditor {
|
|
|
97
99
|
};
|
|
98
100
|
let done = false;
|
|
99
101
|
const progress = {
|
|
100
|
-
report: value => {
|
|
101
|
-
if (!request.live) {
|
|
102
|
+
report: async (value) => {
|
|
103
|
+
if (!request.live && value.edits?.length) {
|
|
102
104
|
throw new Error('Progress reporting is only supported for live sessions');
|
|
103
105
|
}
|
|
104
106
|
if (done || token.isCancellationRequested) {
|
|
105
107
|
return;
|
|
106
108
|
}
|
|
107
|
-
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
this._proxy.$handleProgressChunk(request.requestId, {
|
|
109
|
+
await this._proxy.$handleProgressChunk(request.requestId, {
|
|
111
110
|
message: value.message,
|
|
112
|
-
edits: value.edits?.map(TextEdit.from)
|
|
111
|
+
edits: value.edits?.map(TextEdit.from),
|
|
112
|
+
editsShouldBeInstant: value.editsShouldBeInstant,
|
|
113
|
+
slashCommand: value.slashCommand?.command,
|
|
114
|
+
markdownFragment: MarkdownString$1.isMarkdownString(value.content) ? value.content.value : value.content
|
|
113
115
|
});
|
|
114
116
|
}
|
|
115
117
|
};
|
|
116
|
-
const task = entry.provider.provideInteractiveEditorResponse(sessionData.session, apiRequest, progress, token);
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const { edits } = res;
|
|
118
|
+
const task = Promise.resolve(entry.provider.provideInteractiveEditorResponse(sessionData.session, apiRequest, progress, token));
|
|
119
|
+
let res;
|
|
120
|
+
try {
|
|
121
|
+
res = await raceCancellation(task, token);
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
done = true;
|
|
125
|
+
}
|
|
126
|
+
if (!res) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
const id = sessionData.responses.push(res) - 1;
|
|
130
|
+
const stub = {
|
|
131
|
+
wholeRange: Range.from(res.wholeRange),
|
|
132
|
+
placeholder: res.placeholder,
|
|
133
|
+
};
|
|
134
|
+
if (ExtHostInteractiveEditor._isEditResponse(res)) {
|
|
135
|
+
const { edits, contents } = res;
|
|
136
|
+
const message = contents !== undefined ? MarkdownString.from(contents) : undefined;
|
|
134
137
|
if (edits instanceof WorkspaceEdit) {
|
|
135
138
|
return {
|
|
136
139
|
...stub,
|
|
137
140
|
id,
|
|
138
141
|
type: "bulkEdit" ,
|
|
139
142
|
edits: WorkspaceEdit$1.from(edits),
|
|
143
|
+
message
|
|
140
144
|
};
|
|
141
145
|
}
|
|
142
|
-
else
|
|
146
|
+
else {
|
|
143
147
|
return {
|
|
144
148
|
...stub,
|
|
145
149
|
id,
|
|
146
150
|
type: "editorEdit" ,
|
|
147
151
|
edits: ( edits.map(TextEdit.from)),
|
|
152
|
+
message
|
|
148
153
|
};
|
|
149
154
|
}
|
|
150
155
|
}
|
|
156
|
+
return {
|
|
157
|
+
...stub,
|
|
158
|
+
id,
|
|
159
|
+
type: "message" ,
|
|
160
|
+
message: MarkdownString.from(res.contents),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
async $provideFollowups(handle, sessionId, responseId, token) {
|
|
164
|
+
const entry = this._inputProvider.get(handle);
|
|
165
|
+
const sessionData = this._inputSessions.get(sessionId);
|
|
166
|
+
const response = sessionData?.responses[responseId];
|
|
167
|
+
if (entry && response && entry.provider.provideFollowups) {
|
|
168
|
+
const task = Promise.resolve(entry.provider.provideFollowups(sessionData.session, response, token));
|
|
169
|
+
const followups = await raceCancellation(task, token);
|
|
170
|
+
return followups?.map(ChatReplyFollowup.from);
|
|
171
|
+
}
|
|
151
172
|
return undefined;
|
|
152
173
|
}
|
|
153
174
|
$handleFeedback(handle, sessionId, responseId, kind) {
|
|
@@ -161,8 +182,8 @@ class ExtHostInteractiveEditor {
|
|
|
161
182
|
}
|
|
162
183
|
$releaseSession(handle, sessionId) {
|
|
163
184
|
}
|
|
164
|
-
static
|
|
165
|
-
return typeof thing === 'object' && typeof thing.
|
|
185
|
+
static _isEditResponse(thing) {
|
|
186
|
+
return typeof thing === 'object' && typeof thing.edits === 'object';
|
|
166
187
|
}
|
|
167
188
|
}
|
|
168
189
|
export { ExtHostInteractiveEditor };
|
|
@@ -3,6 +3,7 @@ import { Disposable } from './extHostTypes.js';
|
|
|
3
3
|
class ExtHostIssueReporter {
|
|
4
4
|
constructor(mainContext) {
|
|
5
5
|
this._IssueUriRequestHandlers = ( new Map());
|
|
6
|
+
this._IssueDataProviders = ( new Map());
|
|
6
7
|
this._proxy = ( mainContext.getProxy(MainContext.MainThreadIssueReporter));
|
|
7
8
|
}
|
|
8
9
|
async $getIssueReporterUri(extensionId, token) {
|
|
@@ -19,6 +20,34 @@ class ExtHostIssueReporter {
|
|
|
19
20
|
}
|
|
20
21
|
return result;
|
|
21
22
|
}
|
|
23
|
+
async $getIssueReporterData(extensionId, token) {
|
|
24
|
+
if (this._IssueDataProviders.size === 0) {
|
|
25
|
+
throw new Error('No issue request handlers registered');
|
|
26
|
+
}
|
|
27
|
+
const provider = this._IssueDataProviders.get(extensionId);
|
|
28
|
+
if (!provider) {
|
|
29
|
+
throw new Error('Issue data provider not found');
|
|
30
|
+
}
|
|
31
|
+
const result = await provider.provideIssueData(token);
|
|
32
|
+
if (!result) {
|
|
33
|
+
throw new Error('Issue data provider returned no result');
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
async $getIssueReporterTemplate(extensionId, token) {
|
|
38
|
+
if (this._IssueDataProviders.size === 0) {
|
|
39
|
+
throw new Error('No issue request handlers registered');
|
|
40
|
+
}
|
|
41
|
+
const provider = this._IssueDataProviders.get(extensionId);
|
|
42
|
+
if (!provider) {
|
|
43
|
+
throw new Error('Issue data provider not found');
|
|
44
|
+
}
|
|
45
|
+
const result = await provider.provideIssueTemplate(token);
|
|
46
|
+
if (!result) {
|
|
47
|
+
throw new Error('Issue template provider returned no result');
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
22
51
|
registerIssueUriRequestHandler(extension, provider) {
|
|
23
52
|
const extensionId = extension.identifier.value;
|
|
24
53
|
this._IssueUriRequestHandlers.set(extensionId, provider);
|
|
@@ -28,5 +57,14 @@ class ExtHostIssueReporter {
|
|
|
28
57
|
this._IssueUriRequestHandlers.delete(extensionId);
|
|
29
58
|
}));
|
|
30
59
|
}
|
|
60
|
+
registerIssueDataProvider(extension, provider) {
|
|
61
|
+
const extensionId = extension.identifier.value;
|
|
62
|
+
this._IssueDataProviders.set(extensionId, provider);
|
|
63
|
+
this._proxy.$registerIssueDataProvider(extensionId);
|
|
64
|
+
return ( new Disposable(() => {
|
|
65
|
+
this._proxy.$unregisterIssueDataProvider(extensionId);
|
|
66
|
+
this._IssueDataProviders.delete(extensionId);
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
31
69
|
}
|
|
32
70
|
export { ExtHostIssueReporter };
|