add preloads to notebook controller, fyi @connor4312 NotebookKernel will go out soon

上级 c079d216
......@@ -1480,9 +1480,10 @@ declare module 'vscode' {
// UI properties (get/set)
label: string;
description: string;
supportedLanguages: string[];
hasExecutionOrder: boolean;
description?: string;
hasExecutionOrder?: boolean;
preloads?: NotebookKernelPreload[];
/**
* The execute handler is invoked when the run gestures in the UI are selected, e.g Run Cell, Run All,
......
......@@ -11,7 +11,7 @@ import { ExtHostNotebookController } from 'vs/workbench/api/common/extHostNotebo
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { URI, UriComponents } from 'vs/base/common/uri';
import { ICellRange } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import { NotebookCellRange } from 'vs/workbench/api/common/extHostTypeConverters';
import * as extHostTypeConverters from 'vs/workbench/api/common/extHostTypeConverters';
import { isNonEmptyArray } from 'vs/base/common/arrays';
type ExecuteHandler = (cells: vscode.NotebookCell[], controller: vscode.NotebookController) => void;
......@@ -105,6 +105,13 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
data.hasExecutionOrder = value;
_update();
},
get preloads() {
return data.preloads && data.preloads.map(extHostTypeConverters.NotebookKernelPreload.to);
},
set preloads(value) {
data.preloads = value && value.map(extHostTypeConverters.NotebookKernelPreload.from);
_update();
},
get executeHandler() {
return _executeHandler;
},
......@@ -118,7 +125,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
},
createNotebookCellExecutionTask(cell) {
if (isDisposed) {
throw new Error('object disposed');
throw new Error('notebook controller is DISPOSED');
}
//todo@jrieken
return that._extHostNotebook.createNotebookCellExecution(cell.notebook.uri, cell.index, data.id)!;
......@@ -166,7 +173,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
const cells: vscode.NotebookCell[] = [];
for (let range of ranges) {
cells.push(...document.notebookDocument.getCells(NotebookCellRange.to(range)));
cells.push(...document.notebookDocument.getCells(extHostTypeConverters.NotebookCellRange.to(range)));
}
try {
......
......@@ -1646,6 +1646,23 @@ export namespace NotebookDocumentContentOptions {
}
}
export namespace NotebookKernelPreload {
export function from(preload: vscode.NotebookKernelPreload): { uri: UriComponents; provides: string[] } {
return {
uri: preload.uri,
provides: typeof preload.provides === 'string'
? [preload.provides]
: preload.provides ?? []
};
}
export function to(preload: { uri: UriComponents; provides: string[] }): vscode.NotebookKernelPreload {
return {
uri: URI.revive(preload.uri),
provides: preload.provides
};
}
}
export namespace TestMessage {
export function from(message: vscode.TestMessage): ITestMessage {
return {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册