From ddf5399b62490de438a7f88b756dc0511b87ad8a Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 15 Mar 2023 12:48:37 +0100 Subject: [PATCH] joh/warm pig (#177206) * move into workbench/contrib, integrate with view * always preview workspace edits --- build/lib/i18n.resources.json | 4 ++ src/vs/editor/editor.all.ts | 1 - .../browser/mainThreadInteractiveEditor.ts | 4 +- .../workbench/api/common/extHost.protocol.ts | 2 +- .../api/common/extHostInteractiveEditor.ts | 4 +- .../browser/interactiveEditor.contribution.ts | 8 ++-- .../browser/interactiveEditor.css | 0 .../browser/interactiveEditorActions.ts | 4 +- .../browser/interactiveEditorWidget.ts | 47 +++++++++++++++---- .../common/interactiveEditor.ts | 5 +- .../common/interactiveEditorServiceImpl.ts | 4 +- .../actions/interactiveSessionActions.ts | 2 +- .../browser/interactiveSessionWidget.ts | 2 +- src/vs/workbench/workbench.common.main.ts | 1 + 14 files changed, 61 insertions(+), 27 deletions(-) rename src/vs/{editor/contrib/interactive => workbench/contrib/interactiveEditor}/browser/interactiveEditor.contribution.ts (78%) rename src/vs/{editor/contrib/interactive => workbench/contrib/interactiveEditor}/browser/interactiveEditor.css (100%) rename src/vs/{editor/contrib/interactive => workbench/contrib/interactiveEditor}/browser/interactiveEditorActions.ts (98%) rename src/vs/{editor/contrib/interactive => workbench/contrib/interactiveEditor}/browser/interactiveEditorWidget.ts (94%) rename src/vs/{editor/contrib/interactive => workbench/contrib/interactiveEditor}/common/interactiveEditor.ts (97%) rename src/vs/{editor/contrib/interactive => workbench/contrib/interactiveEditor}/common/interactiveEditorServiceImpl.ts (93%) diff --git a/build/lib/i18n.resources.json b/build/lib/i18n.resources.json index 152051a7ebf..35538d67cf5 100644 --- a/build/lib/i18n.resources.json +++ b/build/lib/i18n.resources.json @@ -154,6 +154,10 @@ "name": "vs/workbench/contrib/notebook", "project": "vscode-workbench" }, + { + "name": "vs/workbench/contrib/interactiveEditor", + "project": "vscode-workbench" + }, { "name": "vs/workbench/contrib/interactiveSession", "project": "vscode-workbench" diff --git a/src/vs/editor/editor.all.ts b/src/vs/editor/editor.all.ts index 4d0773dc17f..38a7a98a345 100644 --- a/src/vs/editor/editor.all.ts +++ b/src/vs/editor/editor.all.ts @@ -57,7 +57,6 @@ import 'vs/editor/contrib/wordHighlighter/browser/wordHighlighter'; import 'vs/editor/contrib/wordOperations/browser/wordOperations'; import 'vs/editor/contrib/wordPartOperations/browser/wordPartOperations'; import 'vs/editor/contrib/readOnlyMessage/browser/contribution'; -import 'vs/editor/contrib/interactive/browser/interactiveEditor.contribution'; // Load up these strings even in VSCode, even if they are not used // in order to get them translated diff --git a/src/vs/workbench/api/browser/mainThreadInteractiveEditor.ts b/src/vs/workbench/api/browser/mainThreadInteractiveEditor.ts index e9fb26283c3..5cd037ec9c4 100644 --- a/src/vs/workbench/api/browser/mainThreadInteractiveEditor.ts +++ b/src/vs/workbench/api/browser/mainThreadInteractiveEditor.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { DisposableMap } from 'vs/base/common/lifecycle'; -import { IInteractiveEditorResponse, IInteractiveEditorService } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { IInteractiveEditorResponse, IInteractiveEditorService } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; import { reviveWorkspaceEditDto } from 'vs/workbench/api/browser/mainThreadBulkEdits'; import { ExtHostContext, ExtHostInteractiveEditorShape, MainContext, MainThreadInteractiveEditorShape } from 'vs/workbench/api/common/extHost.protocol'; @@ -29,7 +29,7 @@ export class MainThreadInteractiveEditor implements MainThreadInteractiveEditorS } async $registerInteractiveEditorProvider(handle: number, debugName: string): Promise { - const unreg = this._interactiveEditorService.add({ + const unreg = this._interactiveEditorService.addProvider({ debugName, prepareInteractiveEditorSession: async (model, range, token) => { const session = await this._proxy.$prepareInteractiveSession(handle, model.uri, range, token); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index b1d83c31c06..a1a33c11b04 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -26,7 +26,7 @@ import * as languages from 'vs/editor/common/languages'; import { CharacterPair, CommentRule, EnterAction } from 'vs/editor/common/languages/languageConfiguration'; import { EndOfLineSequence } from 'vs/editor/common/model'; import { IModelChangedEvent } from 'vs/editor/common/model/mirrorTextModel'; -import { IInteractiveEditorRequest, IInteractiveEditorResponse, IInteractiveEditorSession } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { IInteractiveEditorRequest, IInteractiveEditorResponse, IInteractiveEditorSession } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { IAccessibilityInformation } from 'vs/platform/accessibility/common/accessibility'; import { ConfigurationTarget, IConfigurationChange, IConfigurationData, IConfigurationOverrides } from 'vs/platform/configuration/common/configuration'; import { ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; diff --git a/src/vs/workbench/api/common/extHostInteractiveEditor.ts b/src/vs/workbench/api/common/extHostInteractiveEditor.ts index 7c9a72c6cd4..a1a9b378284 100644 --- a/src/vs/workbench/api/common/extHostInteractiveEditor.ts +++ b/src/vs/workbench/api/common/extHostInteractiveEditor.ts @@ -7,7 +7,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { toDisposable } from 'vs/base/common/lifecycle'; import { URI, UriComponents } from 'vs/base/common/uri'; import { ISelection } from 'vs/editor/common/core/selection'; -import { IInteractiveEditorSession, IInteractiveEditorRequest } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { IInteractiveEditorSession, IInteractiveEditorRequest } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { IRelaxedExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ILogService } from 'vs/platform/log/common/log'; import { ExtHostInteractiveEditorShape, IInteractiveEditorResponseDto, IMainContext, MainContext, MainThreadInteractiveEditorShape } from 'vs/workbench/api/common/extHost.protocol'; @@ -128,6 +128,6 @@ export class ExtHostInteractiveEditor implements ExtHostInteractiveEditorShape { } private static _isMessageResponse(thing: any): thing is vscode.InteractiveEditorMessageResponse { - return typeof thing === 'object' && thing.message; + return typeof thing === 'object' && typeof (thing).contents === 'object'; } } diff --git a/src/vs/editor/contrib/interactive/browser/interactiveEditor.contribution.ts b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.contribution.ts similarity index 78% rename from src/vs/editor/contrib/interactive/browser/interactiveEditor.contribution.ts rename to src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.contribution.ts index 52484ac2920..abbc67dbef6 100644 --- a/src/vs/editor/contrib/interactive/browser/interactiveEditor.contribution.ts +++ b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.contribution.ts @@ -5,11 +5,11 @@ import { registerAction2 } from 'vs/platform/actions/common/actions'; import { EditorContributionInstantiation, registerEditorContribution } from 'vs/editor/browser/editorExtensions'; -import { InteractiveEditorController } from 'vs/editor/contrib/interactive/browser/interactiveEditorWidget'; -import * as interactiveEditorActions from 'vs/editor/contrib/interactive/browser/interactiveEditorActions'; -import { IInteractiveEditorService } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { InteractiveEditorController } from 'vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget'; +import * as interactiveEditorActions from 'vs/workbench/contrib/interactiveEditor/browser/interactiveEditorActions'; +import { IInteractiveEditorService } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { InteractiveEditorServiceImpl } from 'vs/editor/contrib/interactive/common/interactiveEditorServiceImpl'; +import { InteractiveEditorServiceImpl } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditorServiceImpl'; registerSingleton(IInteractiveEditorService, InteractiveEditorServiceImpl, InstantiationType.Delayed); diff --git a/src/vs/editor/contrib/interactive/browser/interactiveEditor.css b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.css similarity index 100% rename from src/vs/editor/contrib/interactive/browser/interactiveEditor.css rename to src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.css diff --git a/src/vs/editor/contrib/interactive/browser/interactiveEditorActions.ts b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorActions.ts similarity index 98% rename from src/vs/editor/contrib/interactive/browser/interactiveEditorActions.ts rename to src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorActions.ts index 0c0c288e4d0..fc4d4c79a39 100644 --- a/src/vs/editor/contrib/interactive/browser/interactiveEditorActions.ts +++ b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorActions.ts @@ -9,8 +9,8 @@ import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction2 } from 'vs/editor/browser/editorExtensions'; import { EmbeddedCodeEditorWidget } from 'vs/editor/browser/widget/embeddedCodeEditorWidget'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; -import { InteractiveEditorController, Recording } from 'vs/editor/contrib/interactive/browser/interactiveEditorWidget'; -import { CTX_INTERACTIVE_EDITOR_FOCUSED, CTX_INTERACTIVE_EDITOR_HAS_ACTIVE_REQUEST, CTX_INTERACTIVE_EDITOR_HAS_PROVIDER, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_FIRST, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_LAST, CTX_INTERACTIVE_EDITOR_EMPTY, CTX_INTERACTIVE_EDITOR_OUTER_CURSOR_POSITION, CTX_INTERACTIVE_EDITOR_PREVIEW, CTX_INTERACTIVE_EDITOR_VISIBLE, MENU_INTERACTIVE_EDITOR_WIDGET, CTX_INTERACTIVE_EDITOR_HISTORY_VISIBLE, CTX_INTERACTIVE_EDITOR_HISTORY_POSSIBLE } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { InteractiveEditorController, Recording } from 'vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget'; +import { CTX_INTERACTIVE_EDITOR_FOCUSED, CTX_INTERACTIVE_EDITOR_HAS_ACTIVE_REQUEST, CTX_INTERACTIVE_EDITOR_HAS_PROVIDER, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_FIRST, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_LAST, CTX_INTERACTIVE_EDITOR_EMPTY, CTX_INTERACTIVE_EDITOR_OUTER_CURSOR_POSITION, CTX_INTERACTIVE_EDITOR_PREVIEW, CTX_INTERACTIVE_EDITOR_VISIBLE, MENU_INTERACTIVE_EDITOR_WIDGET, CTX_INTERACTIVE_EDITOR_HISTORY_VISIBLE, CTX_INTERACTIVE_EDITOR_HISTORY_POSSIBLE } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { localize } from 'vs/nls'; import { IAction2Options } from 'vs/platform/actions/common/actions'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; diff --git a/src/vs/editor/contrib/interactive/browser/interactiveEditorWidget.ts b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts similarity index 94% rename from src/vs/editor/contrib/interactive/browser/interactiveEditorWidget.ts rename to src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts index 42a28482f74..a33c1c54802 100644 --- a/src/vs/editor/contrib/interactive/browser/interactiveEditorWidget.ts +++ b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts @@ -12,10 +12,10 @@ import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { localize } from 'vs/nls'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { ZoneWidget } from 'vs/editor/contrib/zoneWidget/browser/zoneWidget'; import { assertType } from 'vs/base/common/types'; -import { IInteractiveEditorResponse, IInteractiveEditorService, CTX_INTERACTIVE_EDITOR_FOCUSED, CTX_INTERACTIVE_EDITOR_HAS_ACTIVE_REQUEST, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_FIRST, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_LAST, CTX_INTERACTIVE_EDITOR_EMPTY, CTX_INTERACTIVE_EDITOR_OUTER_CURSOR_POSITION, CTX_INTERACTIVE_EDITOR_PREVIEW, CTX_INTERACTIVE_EDITOR_VISIBLE, MENU_INTERACTIVE_EDITOR_WIDGET, CTX_INTERACTIVE_EDITOR_HISTORY_VISIBLE, IInteractiveEditorRequest, IInteractiveEditorSession, CTX_INTERACTIVE_EDITOR_HISTORY_POSSIBLE } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { IInteractiveEditorResponse, IInteractiveEditorService, CTX_INTERACTIVE_EDITOR_FOCUSED, CTX_INTERACTIVE_EDITOR_HAS_ACTIVE_REQUEST, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_FIRST, CTX_INTERACTIVE_EDITOR_INNER_CURSOR_LAST, CTX_INTERACTIVE_EDITOR_EMPTY, CTX_INTERACTIVE_EDITOR_OUTER_CURSOR_POSITION, CTX_INTERACTIVE_EDITOR_PREVIEW, CTX_INTERACTIVE_EDITOR_VISIBLE, MENU_INTERACTIVE_EDITOR_WIDGET, CTX_INTERACTIVE_EDITOR_HISTORY_VISIBLE, IInteractiveEditorRequest, IInteractiveEditorSession, CTX_INTERACTIVE_EDITOR_HISTORY_POSSIBLE } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { EditOperation } from 'vs/editor/common/core/editOperation'; import { Iterable } from 'vs/base/common/iterator'; import { ICursorStateComputer, IModelDeltaDecoration, ITextModel, IValidEditOperation } from 'vs/editor/common/model'; @@ -47,6 +47,10 @@ import { LRUCache } from 'vs/base/common/map'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IBulkEditService } from 'vs/editor/browser/services/bulkEditService'; import { toErrorMessage } from 'vs/base/common/errorMessage'; +import { IInteractiveSessionWidgetService } from 'vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget'; +import { IViewsService } from 'vs/workbench/common/views'; +import { IInteractiveSessionContributionService } from 'vs/workbench/contrib/interactiveSession/common/interactiveSessionContributionService'; +import { InteractiveSessionViewPane } from 'vs/workbench/contrib/interactiveSession/browser/interactiveSessionSidebar'; interface IHistoryEntry { @@ -604,7 +608,7 @@ export class InteractiveEditorController implements IEditorContribution { constructor( private readonly _editor: ICodeEditor, - @IInstantiationService instaService: IInstantiationService, + @IInstantiationService private readonly _instaService: IInstantiationService, @IContextKeyService contextKeyService: IContextKeyService, @IInteractiveEditorService private readonly _interactiveEditorService: IInteractiveEditorService, @IBulkEditService private readonly _bulkEditService: IBulkEditService, @@ -612,7 +616,7 @@ export class InteractiveEditorController implements IEditorContribution { @ILogService private readonly _logService: ILogService, @ITelemetryService private readonly _telemetryService: ITelemetryService ) { - this._zone = this._store.add(instaService.createInstance(InteractiveEditorZoneWidget, this._editor)); + this._zone = this._store.add(_instaService.createInstance(InteractiveEditorZoneWidget, this._editor)); this._ctxShowPreview = CTX_INTERACTIVE_EDITOR_PREVIEW.bindTo(contextKeyService); this._ctxHasActiveRequest = CTX_INTERACTIVE_EDITOR_HAS_ACTIVE_REQUEST.bindTo(contextKeyService); } @@ -635,7 +639,7 @@ export class InteractiveEditorController implements IEditorContribution { return; } - const provider = Iterable.first(this._interactiveEditorService.getAll()); + const provider = Iterable.first(this._interactiveEditorService.getAllProvider()); if (!provider) { this._logService.trace('[IE] NO provider found'); return; @@ -806,7 +810,7 @@ export class InteractiveEditorController implements IEditorContribution { if (reply.type === 'bulkEdit') { this._logService.info('[IE] performaing a BULK EDIT, exiting interactive editor', provider.debugName); - this._bulkEditService.apply(reply.edits, { editor: this._editor, label: localize('ie', "{0}", input.value) }); + this._bulkEditService.apply(reply.edits, { editor: this._editor, label: localize('ie', "{0}", input.value), showPreview: true }); // todo@jrieken preview bulk edit? // todo@jrieken keep interactive editor? break; @@ -814,9 +818,8 @@ export class InteractiveEditorController implements IEditorContribution { if (reply.type === 'message') { this._logService.info('[IE] received a MESSAGE, exiting interactive editor', provider.debugName); - // todo@jrieken show message in context - // todo@jrieken keep interactive editor? - break; + this._instaService.invokeFunction(showMessageResponse, request.prompt); + continue; } // make edits more minimal @@ -967,3 +970,29 @@ export class InteractiveEditorController implements IEditorContribution { return this._recorder.getAll(); } } + + +async function showMessageResponse(accessor: ServicesAccessor, query: string) { + + + const widgetService = accessor.get(IInteractiveSessionWidgetService); + const viewsService = accessor.get(IViewsService); + const interactiveSessionContributionService = accessor.get(IInteractiveSessionContributionService); + + if (widgetService.lastFocusedWidget && widgetService.lastFocusedWidget.viewId) { + // option 1 - take the most recent view + viewsService.openView(widgetService.lastFocusedWidget.viewId, true); + widgetService.lastFocusedWidget.acceptInput(query); + + } else { + // fallback - take the first view that's openable + for (const { id } of interactiveSessionContributionService.registeredProviders) { + const viewId = interactiveSessionContributionService.getViewIdForProvider(id); + const view = await viewsService.openView(viewId, true); + if (view) { + view.acceptInput(query); + break; + } + } + } +} diff --git a/src/vs/editor/contrib/interactive/common/interactiveEditor.ts b/src/vs/workbench/contrib/interactiveEditor/common/interactiveEditor.ts similarity index 97% rename from src/vs/editor/contrib/interactive/common/interactiveEditor.ts rename to src/vs/workbench/contrib/interactiveEditor/common/interactiveEditor.ts index 587ec2ea4bb..f67bb8c2fc4 100644 --- a/src/vs/editor/contrib/interactive/common/interactiveEditor.ts +++ b/src/vs/workbench/contrib/interactiveEditor/common/interactiveEditor.ts @@ -60,8 +60,9 @@ export const IInteractiveEditorService = createDecorator; + + addProvider(provider: IInteractiveEditorSessionProvider): IDisposable; + getAllProvider(): Iterable; } export const MENU_INTERACTIVE_EDITOR_WIDGET = MenuId.for('interactiveEditorWidget'); diff --git a/src/vs/editor/contrib/interactive/common/interactiveEditorServiceImpl.ts b/src/vs/workbench/contrib/interactiveEditor/common/interactiveEditorServiceImpl.ts similarity index 93% rename from src/vs/editor/contrib/interactive/common/interactiveEditorServiceImpl.ts rename to src/vs/workbench/contrib/interactiveEditor/common/interactiveEditorServiceImpl.ts index 2b5c9a8cdfe..e181d8b6a50 100644 --- a/src/vs/editor/contrib/interactive/common/interactiveEditorServiceImpl.ts +++ b/src/vs/workbench/contrib/interactiveEditor/common/interactiveEditorServiceImpl.ts @@ -20,7 +20,7 @@ export class InteractiveEditorServiceImpl implements IInteractiveEditorService { this._ctxHasProvider = CTX_INTERACTIVE_EDITOR_HAS_PROVIDER.bindTo(contextKeyService); } - add(provider: IInteractiveEditorSessionProvider): IDisposable { + addProvider(provider: IInteractiveEditorSessionProvider): IDisposable { const rm = this._entries.push(provider); this._ctxHasProvider.set(true); @@ -31,7 +31,7 @@ export class InteractiveEditorServiceImpl implements IInteractiveEditorService { }); } - getAll() { + getAllProvider() { return [...this._entries]; } } diff --git a/src/vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionActions.ts b/src/vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionActions.ts index 9a540d21aee..f0a7c076b4f 100644 --- a/src/vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionActions.ts +++ b/src/vs/workbench/contrib/interactiveSession/browser/actions/interactiveSessionActions.ts @@ -8,7 +8,7 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction, ServicesAccessor, registerEditorAction } from 'vs/editor/browser/editorExtensions'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; -import { CTX_INTERACTIVE_EDITOR_VISIBLE, MENU_INTERACTIVE_EDITOR_WIDGET } from 'vs/editor/contrib/interactive/common/interactiveEditor'; +import { CTX_INTERACTIVE_EDITOR_VISIBLE, MENU_INTERACTIVE_EDITOR_WIDGET } from 'vs/workbench/contrib/interactiveEditor/common/interactiveEditor'; import { localize } from 'vs/nls'; import { Action2, IAction2Options, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; diff --git a/src/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.ts b/src/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.ts index 93575484410..2029c9f12c2 100644 --- a/src/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.ts +++ b/src/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.ts @@ -128,7 +128,7 @@ export class InteractiveSessionWidget extends Disposable implements IInteractive constructor( private readonly providerId: string, - private readonly viewId: string | undefined, + readonly viewId: string | undefined, private readonly listBackgroundColorDelegate: () => string, private readonly inputEditorBackgroundColorDelegate: () => string, private readonly resultEditorBackgroundColorDelegate: () => string, diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts index 4c5b07e667d..d1945cb9b23 100644 --- a/src/vs/workbench/workbench.common.main.ts +++ b/src/vs/workbench/workbench.common.main.ts @@ -169,6 +169,7 @@ import 'vs/workbench/contrib/contextmenu/browser/contextmenu.contribution'; import 'vs/workbench/contrib/notebook/browser/notebook.contribution'; import 'vs/workbench/contrib/interactiveSession/browser/interactiveSession.contribution'; +import 'vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.contribution'; // Interactive import 'vs/workbench/contrib/interactive/browser/interactive.contribution';