remove kernel provider from core, adopt kernel service, merge kernel2 and kernel interface, extract context keys from kernel manager, make context key manager only for execution/cancellation

This commit is contained in:
Johannes Rieken
2021-04-20 11:30:31 +02:00
parent 11c3ba58af
commit fe7951dd7a
14 changed files with 379 additions and 915 deletions

View File

@@ -11,16 +11,16 @@ import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
import { INotebookEditor } from 'vs/workbench/contrib/notebook/browser/notebookBrowser';
import { INotebookEditorService } from 'vs/workbench/contrib/notebook/browser/notebookEditorService';
import { ICellRange } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import { INotebookKernel2, INotebookKernel2ChangeEvent, INotebookKernelService } from 'vs/workbench/contrib/notebook/common/notebookKernelService';
import { ICellRange, INotebookKernel, INotebookKernelChangeEvent } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import { INotebookKernelService } from 'vs/workbench/contrib/notebook/common/notebookKernelService';
import { NotebookSelector } from 'vs/workbench/contrib/notebook/common/notebookSelector';
import { ExtHostContext, ExtHostNotebookKernelsShape, IExtHostContext, INotebookKernelDto2, MainContext, MainThreadNotebookKernelsShape } from '../common/extHost.protocol';
abstract class MainThreadKernel implements INotebookKernel2 {
abstract class MainThreadKernel implements INotebookKernel {
private readonly _onDidChange = new Emitter<INotebookKernel2ChangeEvent>();
private readonly _onDidChange = new Emitter<INotebookKernelChangeEvent>();
private readonly preloads: { uri: URI, provides: string[] }[];
readonly onDidChange: Event<INotebookKernel2ChangeEvent> = this._onDidChange.event;
readonly onDidChange: Event<INotebookKernelChangeEvent> = this._onDidChange.event;
readonly id: string;
readonly selector: NotebookSelector;
@@ -61,7 +61,8 @@ abstract class MainThreadKernel implements INotebookKernel2 {
update(data: Partial<INotebookKernelDto2>) {
const event: INotebookKernel2ChangeEvent = Object.create(null);
const event: INotebookKernelChangeEvent = Object.create(null);
if (data.label !== undefined) {
this.label = data.label;
event.label = true;
@@ -91,11 +92,6 @@ abstract class MainThreadKernel implements INotebookKernel2 {
abstract executeNotebookCellsRequest(uri: URI, ranges: ICellRange[]): Promise<void>;
abstract cancelNotebookCellExecution(uri: URI, ranges: ICellRange[]): Promise<void>;
// old stuff
readonly resolve = () => Promise.resolve();
get friendlyId() { return this.id; }
get providerHandle() { return undefined; }
}
@extHostNamedCustomer(MainContext.MainThreadNotebookKernels)
@@ -200,9 +196,9 @@ export class MainThreadNotebookKernels implements MainThreadNotebookKernelsShape
const registration = this._notebookKernelService.registerKernel(kernel);
const listener = this._notebookKernelService.onDidChangeNotebookKernelBinding(e => {
if (e.oldKernel === kernel) {
if (e.oldKernel === kernel.id) {
this._proxy.$acceptSelection(handle, e.notebook, false);
} else if (e.newKernel === kernel) {
} else if (e.newKernel === kernel.id) {
this._proxy.$acceptSelection(handle, e.notebook, true);
}
});