diff --git a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts index ce21dc1f67a..2de44d23702 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts @@ -82,7 +82,7 @@ abstract class MainThreadKernel implements INotebookKernel2 { this._onDidChange.fire(event); } - abstract setSelected(value: boolean): void; + abstract setSelected(uri: URI, value: boolean): void; abstract executeCells(uri: URI, ranges: ICellRange[]): void; abstract cancelCells(uri: URI, ranges: ICellRange[]): void; } @@ -109,8 +109,8 @@ export class MainThreadNotebookKernels implements MainThreadNotebookKernelsShape $addKernel(handle: number, data: INotebookKernelDto2): void { const that = this; const kernel = new class extends MainThreadKernel { - setSelected(value: boolean): void { - that._proxy.$acceptSelection(handle, value); + setSelected(uri: URI, value: boolean): void { + that._proxy.$acceptSelection(handle, uri, value); } executeCells(uri: URI, ranges: ICellRange[]): void { that._proxy.$executeCells(handle, uri, ranges); diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index 3c70a7a439c..205489c27e5 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -1061,10 +1061,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I checkProposedApiEnabled(extension); return extHostNotebook.registerNotebookSerializer(extension, viewType, serializer, options); }, - registerNotebookContentProvider: (viewType: string, provider: vscode.NotebookContentProvider, options?: { - transientOutputs: boolean; - transientMetadata: { [K in keyof vscode.NotebookCellMetadata]?: boolean } - }) => { + registerNotebookContentProvider: (viewType, provider, options) => { checkProposedApiEnabled(extension); return extHostNotebook.registerNotebookContentProvider(extension, viewType, provider, options); }, diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 5a47b9a2e08..dc5fa8b6354 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -1952,7 +1952,7 @@ export interface ExtHostNotebookEditorsShape { } export interface ExtHostNotebookKernelsShape { - $acceptSelection(handle: number, value: boolean): void; + $acceptSelection(handle: number, uri: UriComponents, value: boolean): void; $executeCells(handle: number, uri: UriComponents, ranges: ICellRange[]): void; $cancelCells(handle: number, uri: UriComponents, ranges: ICellRange[]): void; } diff --git a/src/vs/workbench/api/common/extHostNotebook.ts b/src/vs/workbench/api/common/extHostNotebook.ts index 3a803429e29..1c0a96837df 100644 --- a/src/vs/workbench/api/common/extHostNotebook.ts +++ b/src/vs/workbench/api/common/extHostNotebook.ts @@ -17,7 +17,7 @@ import { IExtensionStoragePaths } from 'vs/workbench/api/common/extHostStoragePa import * as typeConverters from 'vs/workbench/api/common/extHostTypeConverters'; import * as extHostTypes from 'vs/workbench/api/common/extHostTypes'; import { asWebviewUri, WebviewInitData } from 'vs/workbench/api/common/shared/webview'; -import { CellEditType, CellStatusbarAlignment, CellUri, ICellRange, INotebookCellStatusBarEntry, INotebookExclusiveDocumentFilter, NotebookCellMetadata, NotebookCellExecutionState, NotebookCellsChangedEventDto, NotebookCellsChangeType, NotebookDataDto, NullablePartialNotebookCellMetadata, IImmediateCellEditOperation } from 'vs/workbench/contrib/notebook/common/notebookCommon'; +import { CellEditType, CellStatusbarAlignment, CellUri, ICellRange, INotebookCellStatusBarEntry, INotebookExclusiveDocumentFilter, NotebookCellExecutionState, NotebookCellsChangedEventDto, NotebookCellsChangeType, NotebookDataDto, NullablePartialNotebookCellMetadata, IImmediateCellEditOperation } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import * as vscode from 'vscode'; import { ResourceMap } from 'vs/base/common/map'; import { ExtHostCell, ExtHostNotebookDocument } from './extHostNotebookDocument'; @@ -324,9 +324,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape { extension: IExtensionDescription, viewType: string, provider: vscode.NotebookContentProvider, - options?: { - transientOutputs: boolean; - transientMetadata: { [K in keyof NotebookCellMetadata]?: boolean }; + options?: vscode.NotebookDocumentContentOptions & { viewOptions?: { displayName: string; filenamePattern: (vscode.GlobPattern | { include: vscode.GlobPattern; exclude: vscode.GlobPattern })[]; diff --git a/src/vs/workbench/api/common/extHostNotebookKernels.ts b/src/vs/workbench/api/common/extHostNotebookKernels.ts index e6bc31120e6..7225a8d1170 100644 --- a/src/vs/workbench/api/common/extHostNotebookKernels.ts +++ b/src/vs/workbench/api/common/extHostNotebookKernels.ts @@ -21,7 +21,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape { private readonly _proxy: MainThreadNotebookKernelsShape; - private readonly _kernelData = new Map }>(); + private readonly _kernelData = new Map }>(); private _handlePool: number = 0; constructor( @@ -39,8 +39,8 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape { let isDisposed = false; const commandDisposables = new DisposableStore(); - const emitter = new Emitter(); - this._kernelData.set(handle, { id: options.id, executeHandler: options.executeHandler, selected: false, onDidChangeSelection: emitter }); + const emitter = new Emitter<{ selected: boolean, uri: URI }>(); + this._kernelData.set(handle, { id: options.id, executeHandler: options.executeHandler, onDidChangeSelection: emitter }); const data: INotebookKernelDto2 = { id: options.id, @@ -73,7 +73,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape { return { get id() { return data.id; }, get selector() { return data.selector; }, - // get selected() { return that._kernelData.get(handle)?.selected ?? false; }, + // onDidChangeSelection: emitter.event, get label() { return data.label; @@ -128,11 +128,13 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape { }; } - $acceptSelection(handle: number, value: boolean): void { + $acceptSelection(handle: number, uri: UriComponents, value: boolean): void { const obj = this._kernelData.get(handle); if (obj) { - obj.selected = value; - obj.onDidChangeSelection.fire(value); + obj.onDidChangeSelection.fire({ + selected: value, + uri: URI.revive(uri) + }); } } diff --git a/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts b/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts index a2af27b9137..e8a516f8a24 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts @@ -365,7 +365,7 @@ export interface INotebookEditor extends ICommonNotebookEditor { */ readonly onDidChangeModel: Event; readonly onDidFocusEditorWidget: Event; - readonly activeKernel: INotebookKernel | undefined; + activeKernel: INotebookKernel | undefined; readonly availableKernelCount: number; readonly onDidScroll: Event; readonly onDidChangeAvailableKernels: Event; diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts index bdebb17e7e8..e1a85e5ba18 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts @@ -278,6 +278,10 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor return this._kernelManger.activeKernel; } + set activeKernel(value) { + this._kernelManger.activeKernel = value; + } + private _currentKernelTokenSource: CancellationTokenSource | undefined = undefined; get availableKernelCount() { diff --git a/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts b/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts index 14643d8cc97..0f8b832c56c 100644 --- a/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts +++ b/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts @@ -40,7 +40,7 @@ export interface INotebookKernel2 { preloadUris: URI[]; preloadProvides: string[]; - setSelected(value: boolean): void; + setSelected(uri: URI, value: boolean): void; executeCells(uri: URI, ranges: ICellRange[]): void; cancelCells(uri: URI, ranges: ICellRange[]): void }