Skip to content

Commit b2693bb

Browse files
committed
remove legacy kernel on content provider
1 parent 95f0ea4 commit b2693bb

8 files changed

Lines changed: 23 additions & 197 deletions

File tree

src/vs/workbench/api/browser/mainThreadNotebook.ts

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
1717
import { INotebookEditor } from 'vs/workbench/contrib/notebook/browser/notebookBrowser';
1818
import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookTextModel';
1919
import { INotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/common/notebookCellStatusBarService';
20-
import { ACCESSIBLE_NOTEBOOK_DISPLAY_ORDER, CellEditType, CellKind, DisplayOrderKey, ICellEditOperation, IEditor, INotebookDocumentFilter, INotebookKernelInfo, INotebookKernelInfoDto, NotebookCellMetadata, NotebookCellOutputsSplice, NotebookDocumentMetadata, NOTEBOOK_DISPLAY_ORDER, TransientMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon';
20+
import { ACCESSIBLE_NOTEBOOK_DISPLAY_ORDER, CellEditType, CellKind, DisplayOrderKey, ICellEditOperation, IEditor, INotebookDocumentFilter, INotebookKernelInfo, NotebookCellMetadata, NotebookCellOutputsSplice, NotebookDocumentMetadata, NOTEBOOK_DISPLAY_ORDER, TransientMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon';
2121
import { IMainNotebookController, INotebookService } from 'vs/workbench/contrib/notebook/common/notebookService';
2222
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
2323
import { ExtHostContext, ExtHostNotebookShape, IExtHostContext, INotebookCellStatusBarEntryDto, INotebookDocumentsAndEditorsDelta, MainContext, MainThreadNotebookShape, NotebookExtensionDescription } from '../common/extHost.protocol';
@@ -376,9 +376,8 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
376376
// }
377377
}
378378

379-
async $registerNotebookProvider(_extension: NotebookExtensionDescription, _viewType: string, _supportBackup: boolean, _kernel: INotebookKernelInfoDto | undefined, options: { transientOutputs: boolean; transientMetadata: TransientMetadata }): Promise<void> {
379+
async $registerNotebookProvider(_extension: NotebookExtensionDescription, _viewType: string, _supportBackup: boolean, options: { transientOutputs: boolean; transientMetadata: TransientMetadata }): Promise<void> {
380380
const controller: IMainNotebookController = {
381-
kernel: _kernel,
382381
supportBackup: _supportBackup,
383382
options: options,
384383
reloadNotebook: async (mainthreadTextModel: NotebookTextModel) => {
@@ -427,24 +426,12 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
427426
resolveNotebookEditor: async (viewType: string, uri: URI, editorId: string) => {
428427
await this._proxy.$resolveNotebookEditor(viewType, uri, editorId);
429428
},
430-
executeNotebookByAttachedKernel: async (viewType: string, uri: URI) => {
431-
return this.executeNotebookByAttachedKernel(viewType, uri, undefined);
432-
},
433-
cancelNotebookByAttachedKernel: async (viewType: string, uri: URI) => {
434-
return this.cancelNotebookByAttachedKernel(viewType, uri, undefined);
435-
},
436429
onDidReceiveMessage: (editorId: string, rendererType: string | undefined, message: unknown) => {
437430
this._proxy.$onDidReceiveMessage(editorId, rendererType, message);
438431
},
439432
removeNotebookDocument: async (uri: URI) => {
440433
return this.removeNotebookTextModel(uri);
441434
},
442-
executeNotebookCell: async (uri: URI, handle: number) => {
443-
return this.executeNotebookByAttachedKernel(_viewType, uri, handle);
444-
},
445-
cancelNotebookCell: async (uri: URI, handle: number) => {
446-
return this.cancelNotebookByAttachedKernel(_viewType, uri, handle);
447-
},
448435
save: async (uri: URI, token: CancellationToken) => {
449436
return this._proxy.$saveNotebook(_viewType, uri, token);
450437
},
@@ -567,16 +554,6 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
567554
}
568555
}
569556

570-
async executeNotebookByAttachedKernel(viewType: string, uri: URI, handle: number | undefined): Promise<void> {
571-
this.logService.debug('MainthreadNotebooks#executeNotebookByAttachedKernel', uri.path, handle);
572-
return this._proxy.$executeNotebookByAttachedKernel(viewType, uri, handle);
573-
}
574-
575-
async cancelNotebookByAttachedKernel(viewType: string, uri: URI, handle: number | undefined): Promise<void> {
576-
this.logService.debug('MainthreadNotebooks#cancelNotebookByAttachedKernel', uri.path, handle);
577-
return this._proxy.$cancelNotebookByAttachedKernel(viewType, uri, handle);
578-
}
579-
580557
async $postMessage(editorId: string, forRendererId: string | undefined, value: any): Promise<boolean> {
581558
const editor = this._notebookService.getNotebookEditor(editorId) as INotebookEditor | undefined;
582559
if (editor?.isNotebookEditor) {

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService';
5151
import { TunnelOptions } from 'vs/platform/remote/common/tunnel';
5252
import { Timeline, TimelineChangeEvent, TimelineOptions, TimelineProviderDescriptor, InternalTimelineOptions } from 'vs/workbench/contrib/timeline/common/timeline';
5353
import { revive } from 'vs/base/common/marshalling';
54-
import { IProcessedOutput, INotebookDisplayOrder, NotebookCellMetadata, NotebookDocumentMetadata, ICellEditOperation, NotebookCellsChangedEvent, NotebookDataDto, INotebookKernelInfoDto, IMainCellDto, INotebookDocumentFilter, INotebookKernelInfoDto2, TransientMetadata, INotebookCellStatusBarEntry } from 'vs/workbench/contrib/notebook/common/notebookCommon';
54+
import { IProcessedOutput, INotebookDisplayOrder, NotebookCellMetadata, NotebookDocumentMetadata, ICellEditOperation, NotebookCellsChangedEvent, NotebookDataDto, IMainCellDto, INotebookDocumentFilter, INotebookKernelInfoDto2, TransientMetadata, INotebookCellStatusBarEntry } from 'vs/workbench/contrib/notebook/common/notebookCommon';
5555
import { CallHierarchyItem } from 'vs/workbench/contrib/callHierarchy/common/callHierarchy';
5656
import { Dto } from 'vs/base/common/types';
5757
import { ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable';
@@ -722,7 +722,7 @@ export type NotebookCellOutputsSplice = [
722722
export type INotebookCellStatusBarEntryDto = Dto<INotebookCellStatusBarEntry>;
723723

724724
export interface MainThreadNotebookShape extends IDisposable {
725-
$registerNotebookProvider(extension: NotebookExtensionDescription, viewType: string, supportBackup: boolean, kernelInfoDto: INotebookKernelInfoDto | undefined, options: { transientOutputs: boolean; transientMetadata: TransientMetadata }): Promise<void>;
725+
$registerNotebookProvider(extension: NotebookExtensionDescription, viewType: string, supportBackup: boolean, options: { transientOutputs: boolean; transientMetadata: TransientMetadata }): Promise<void>;
726726
$onNotebookChange(viewType: string, resource: UriComponents): Promise<void>;
727727
$unregisterNotebookProvider(viewType: string): Promise<void>;
728728
$registerNotebookKernel(extension: NotebookExtensionDescription, id: string, label: string, selectors: (string | IRelativePattern)[], preloads: UriComponents[]): Promise<void>;
@@ -1658,8 +1658,6 @@ export interface ExtHostNotebookShape {
16581658
$resolveNotebookEditor(viewType: string, uri: UriComponents, editorId: string): Promise<void>;
16591659
$provideNotebookKernels(handle: number, uri: UriComponents, token: CancellationToken): Promise<INotebookKernelInfoDto2[]>;
16601660
$resolveNotebookKernel(handle: number, editorId: string, uri: UriComponents, kernelId: string, token: CancellationToken): Promise<void>;
1661-
$executeNotebookByAttachedKernel(viewType: string, uri: UriComponents, cellHandle: number | undefined): Promise<void>;
1662-
$cancelNotebookByAttachedKernel(viewType: string, uri: UriComponents, cellHandle: number | undefined): Promise<void>;
16631661
$executeNotebookKernelFromProvider(handle: number, uri: UriComponents, kernelId: string, cellHandle: number | undefined): Promise<void>;
16641662
$cancelNotebookKernelFromProvider(handle: number, uri: UriComponents, kernelId: string, cellHandle: number | undefined): Promise<void>;
16651663
$executeNotebook2(kernelId: string, viewType: string, uri: UriComponents, cellHandle: number | undefined): Promise<void>;

src/vs/workbench/api/common/extHostNotebook.ts

Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
862862
private static _notebookKernelProviderHandlePool: number = 0;
863863

864864
private readonly _proxy: MainThreadNotebookShape;
865-
private readonly _notebookContentProviders = new Map<string, { readonly provider: vscode.NotebookContentProvider & { kernel?: vscode.NotebookKernel }, readonly extension: IExtensionDescription; }>();
865+
private readonly _notebookContentProviders = new Map<string, { readonly provider: vscode.NotebookContentProvider, readonly extension: IExtensionDescription; }>();
866866
private readonly _notebookKernels = new Map<string, { readonly kernel: vscode.NotebookKernel, readonly extension: IExtensionDescription; }>();
867867
private readonly _notebookKernelProviders = new Map<number, ExtHostNotebookKernelProviderAdapter>();
868868
private readonly _documents = new ResourceMap<ExtHostNotebookDocument>();
@@ -948,7 +948,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
948948
registerNotebookContentProvider(
949949
extension: IExtensionDescription,
950950
viewType: string,
951-
provider: vscode.NotebookContentProvider & { kernel?: vscode.NotebookKernel },
951+
provider: vscode.NotebookContentProvider,
952952
options?: {
953953
transientOutputs: boolean;
954954
transientMetadata: { [K in keyof NotebookCellMetadata]?: boolean };
@@ -959,10 +959,6 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
959959
throw new Error(`Notebook provider for '${viewType}' already registered`);
960960
}
961961

962-
// if ((<any>provider).executeCell) {
963-
// throw new Error('NotebookContentKernel.executeCell is removed, please use vscode.notebook.registerNotebookKernel instead.');
964-
// }
965-
966962
this._notebookContentProviders.set(viewType, { extension, provider });
967963

968964
const listener = provider.onDidChangeNotebook
@@ -984,7 +980,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
984980

985981
const supportBackup = !!provider.backupNotebook;
986982

987-
this._proxy.$registerNotebookProvider({ id: extension.identifier, location: extension.extensionLocation, description: extension.description }, viewType, supportBackup, provider.kernel ? { id: viewType, label: provider.kernel.label, extensionLocation: extension.extensionLocation, preloads: provider.kernel.preloads } : undefined, { transientOutputs: options?.transientOutputs || false, transientMetadata: options?.transientMetadata || {} });
983+
this._proxy.$registerNotebookProvider({ id: extension.identifier, location: extension.extensionLocation, description: extension.description }, viewType, supportBackup, { transientOutputs: options?.transientOutputs || false, transientMetadata: options?.transientMetadata || {} });
988984

989985
return new extHostTypes.Disposable(() => {
990986
listener.dispose();
@@ -1123,48 +1119,6 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
11231119
await provider.provider.resolveNotebook(document.notebookDocument, webComm.contentProviderComm);
11241120
}
11251121

1126-
async $executeNotebookByAttachedKernel(viewType: string, uri: UriComponents, cellHandle: number | undefined): Promise<void> {
1127-
const document = this._documents.get(URI.revive(uri));
1128-
1129-
if (!document) {
1130-
return;
1131-
}
1132-
1133-
if (this._notebookContentProviders.has(viewType)) {
1134-
const cell = cellHandle !== undefined ? document.getCell(cellHandle) : undefined;
1135-
const provider = this._notebookContentProviders.get(viewType)!.provider;
1136-
1137-
if (provider.kernel) {
1138-
if (cell) {
1139-
return withToken(token => (provider.kernel!.executeCell as any)(document, cell, token));
1140-
} else {
1141-
return withToken(token => (provider.kernel!.executeAllCells as any)(document, token));
1142-
}
1143-
}
1144-
}
1145-
}
1146-
1147-
async $cancelNotebookByAttachedKernel(viewType: string, uri: UriComponents, cellHandle: number | undefined): Promise<void> {
1148-
const document = this._documents.get(URI.revive(uri));
1149-
1150-
if (!document) {
1151-
return;
1152-
}
1153-
1154-
if (this._notebookContentProviders.has(viewType)) {
1155-
const cell = cellHandle !== undefined ? document.getCell(cellHandle) : undefined;
1156-
const provider = this._notebookContentProviders.get(viewType)!.provider;
1157-
1158-
if (provider.kernel) {
1159-
if (cell) {
1160-
return provider.kernel.cancelCellExecution(document.notebookDocument, cell.cell);
1161-
} else {
1162-
return provider.kernel.cancelAllCellsExecution(document.notebookDocument);
1163-
}
1164-
}
1165-
}
1166-
}
1167-
11681122
async $executeNotebookKernelFromProvider(handle: number, uri: UriComponents, kernelId: string, cellHandle: number | undefined): Promise<void> {
11691123
await this._withAdapter(handle, uri, async (adapter, document) => {
11701124
const cell = cellHandle !== undefined ? document.getCell(cellHandle) : undefined;

src/vs/workbench/contrib/notebook/browser/contrib/status/editorStatus.ts

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -76,27 +76,6 @@ registerAction2(class extends Action2 {
7676
};
7777
});
7878

79-
const provider = notebookService.getContributedNotebookProviders(editor.viewModel!.uri)[0];
80-
81-
if (provider.kernel) {
82-
picks.unshift({
83-
id: provider.id,
84-
label: provider.displayName,
85-
picked: !activeKernel, // no active kernel, the builtin kernel of the provider is used
86-
description: activeKernel === undefined
87-
? nls.localize('currentActiveBuiltinKernel', " (Currently Active)")
88-
: '',
89-
kernelProviderId: provider.providerExtensionId,
90-
run: () => {
91-
editor.activeKernel = undefined;
92-
},
93-
buttons: [{
94-
iconClass: 'codicon-settings-gear',
95-
tooltip: nls.localize('notebook.promptKernel.setDefaultTooltip', "Set as default kernel provider for '{0}'", editor.viewModel!.viewType)
96-
}]
97-
});
98-
}
99-
10079
const picker = quickInputService.createQuickPick<(IQuickPickItem & { run(): void; kernelProviderId?: string })>();
10180
picker.items = picks;
10281
picker.activeItems = picks.filter(pick => (pick as IQuickPickItem).picked) as (IQuickPickItem & { run(): void; kernelProviderId?: string; })[];

src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts

Lines changed: 15 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ import { IListContextMenuEvent } from 'vs/base/browser/ui/list/list';
5656
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
5757
import { IMenuService, MenuId } from 'vs/platform/actions/common/actions';
5858
import { IAction, Separator } from 'vs/base/common/actions';
59-
import { isMacintosh, isNative } from 'vs/base/common/platform';
60-
import { getTitleBarStyle } from 'vs/platform/windows/common/windows';
61-
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
6259
import { CellDragAndDropController } from 'vs/workbench/contrib/notebook/browser/view/renderers/dnd';
6360

6461
const $ = DOM.$;
@@ -222,7 +219,6 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
222219
@IStorageService storageService: IStorageService,
223220
@INotebookService private notebookService: INotebookService,
224221
@IConfigurationService private readonly configurationService: IConfigurationService,
225-
@IEnvironmentService private readonly environmentService: IEnvironmentService,
226222
@IContextKeyService readonly contextKeyService: IContextKeyService,
227223
@ILayoutService private readonly layoutService: ILayoutService,
228224
@IContextMenuService private readonly contextMenuService: IContextMenuService,
@@ -704,25 +700,14 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
704700
return;
705701
}
706702

707-
if (provider.kernel && (availableKernels.length + availableKernels2.length) > 0) {
708-
this._notebookHasMultipleKernels!.set(true);
709-
this.multipleKernelsAvailable = true;
710-
} else if ((availableKernels.length + availableKernels2.length) > 1) {
703+
if ((availableKernels.length + availableKernels2.length) > 1) {
711704
this._notebookHasMultipleKernels!.set(true);
712705
this.multipleKernelsAvailable = true;
713706
} else {
714707
this._notebookHasMultipleKernels!.set(false);
715708
this.multipleKernelsAvailable = false;
716709
}
717710

718-
// @deprecated
719-
if (provider && provider.kernel) {
720-
// it has a builtin kernel, don't automatically choose a kernel
721-
await this._loadKernelPreloads(provider.providerExtensionLocation, provider.kernel);
722-
tokenSource.dispose();
723-
return;
724-
}
725-
726711
const activeKernelStillExist = [...availableKernels2, ...availableKernels].find(kernel => kernel.id === this.activeKernel?.id && this.activeKernel?.id !== undefined);
727712

728713
if (activeKernelStillExist) {
@@ -1429,15 +1414,8 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
14291414

14301415
private async _cancelNotebookExecution(): Promise<void> {
14311416
const provider = this.notebookService.getContributedNotebookProviders(this.viewModel!.uri)[0];
1432-
if (provider) {
1433-
const viewType = provider.id;
1434-
const notebookUri = this._notebookViewModel!.uri;
1435-
1436-
if (this._activeKernel) {
1437-
await (this._activeKernel as INotebookKernelInfo2).cancelNotebookCell!(this._notebookViewModel!.uri, undefined);
1438-
} else if (provider.kernel) {
1439-
return await this.notebookService.cancelNotebook(viewType, notebookUri);
1440-
}
1417+
if (provider && this._activeKernel) {
1418+
await (this._activeKernel as INotebookKernelInfo2).cancelNotebookCell!(this._notebookViewModel!.uri, undefined);
14411419
}
14421420
}
14431421

@@ -1451,23 +1429,16 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
14511429

14521430
private async _executeNotebook(): Promise<void> {
14531431
const provider = this.notebookService.getContributedNotebookProviders(this.viewModel!.uri)[0];
1454-
if (provider) {
1455-
const viewType = provider.id;
1456-
const notebookUri = this._notebookViewModel!.uri;
1457-
1458-
if (this._activeKernel) {
1459-
// TODO@rebornix temp any cast, should be removed once we remove legacy kernel support
1460-
if ((this._activeKernel as INotebookKernelInfo2).executeNotebookCell) {
1461-
if (this._activeKernelResolvePromise) {
1462-
await this._activeKernelResolvePromise;
1463-
}
1464-
1465-
await (this._activeKernel as INotebookKernelInfo2).executeNotebookCell!(this._notebookViewModel!.uri, undefined);
1466-
} else {
1467-
await this.notebookService.executeNotebook2(this._notebookViewModel!.viewType, this._notebookViewModel!.uri, this._activeKernel.id);
1432+
if (provider && this._activeKernel) {
1433+
// TODO@rebornix temp any cast, should be removed once we remove legacy kernel support
1434+
if ((this._activeKernel as INotebookKernelInfo2).executeNotebookCell) {
1435+
if (this._activeKernelResolvePromise) {
1436+
await this._activeKernelResolvePromise;
14681437
}
1469-
} else if (provider.kernel) {
1470-
return await this.notebookService.executeNotebook(viewType, notebookUri);
1438+
1439+
await (this._activeKernel as INotebookKernelInfo2).executeNotebookCell!(this._notebookViewModel!.uri, undefined);
1440+
} else {
1441+
await this.notebookService.executeNotebook2(this._notebookViewModel!.viewType, this._notebookViewModel!.uri, this._activeKernel.id);
14711442
}
14721443
}
14731444
}
@@ -1491,15 +1462,8 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
14911462

14921463
private async _cancelNotebookCell(cell: ICellViewModel): Promise<void> {
14931464
const provider = this.notebookService.getContributedNotebookProviders(this.viewModel!.uri)[0];
1494-
if (provider) {
1495-
const viewType = provider.id;
1496-
const notebookUri = this._notebookViewModel!.uri;
1497-
1498-
if (this._activeKernel) {
1499-
return await (this._activeKernel as INotebookKernelInfo2).cancelNotebookCell!(this._notebookViewModel!.uri, cell.handle);
1500-
} else if (provider.kernel) {
1501-
return await this.notebookService.cancelNotebookCell(viewType, notebookUri, cell.handle);
1502-
}
1465+
if (provider && this._activeKernel) {
1466+
return await (this._activeKernel as INotebookKernelInfo2).cancelNotebookCell!(this._notebookViewModel!.uri, cell.handle);
15031467
}
15041468
}
15051469

@@ -1530,9 +1494,8 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
15301494

15311495
return await this.notebookService.executeNotebookCell2(viewType, notebookUri, cell.handle, this._activeKernel.id);
15321496
}
1533-
} else if (provider.kernel) {
1534-
return await this.notebookService.executeNotebookCell(viewType, notebookUri, cell.handle);
15351497
}
1498+
15361499
}
15371500
}
15381501

0 commit comments

Comments
 (0)