diff --git a/src/vs/workbench/api/browser/mainThreadNotebook.ts b/src/vs/workbench/api/browser/mainThreadNotebook.ts index 6ac60370279..171e4a2d217 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebook.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebook.ts @@ -261,13 +261,13 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo } } - async $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebook): Promise { - let controller = this._notebookProviders.get(viewType); + // async $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebookDto): Promise { + // let controller = this._notebookProviders.get(viewType); - if (controller) { - controller.updateNotebook(resource, notebook); - } - } + // if (controller) { + // controller.updateNotebook(resource, notebook); + // } + // } async resolveNotebook(viewType: string, uri: URI): Promise { let handle = await this._proxy.$resolveNotebook(viewType, uri); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 61e20103834..f17e62c19ce 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -50,7 +50,7 @@ import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtens import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService'; import { TunnelOptions } from 'vs/platform/remote/common/tunnel'; import { TimelineItem, TimelineProviderDescriptor, TimelineChangeEvent, TimelineItemWithSource } from 'vs/workbench/contrib/timeline/common/timeline'; -import { INotebook, ICell, INotebookMimeTypeSelector } from 'vs/workbench/contrib/notebook/common/notebookCommon'; +import { INotebookMimeTypeSelector, IOutput } from 'vs/workbench/contrib/notebook/common/notebookCommon'; export interface IEnvironment { isExtensionDevelopmentDebug: boolean; @@ -625,15 +625,33 @@ export interface ExtHostWebviewsShape { $backup(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise; } +// export interface INotebookDto { +// handle: number; +// // metadata: IMetadata; +// readonly uri: UriComponents; +// languages: string[]; +// cells: ICellDto[]; +// renderers: Set; +// } + +export interface ICellDto { + handle: number; + source: string[]; + language: string; + cell_type: 'markdown' | 'code'; + outputs: IOutput[]; + isDirty: boolean; +} + export interface MainThreadNotebookShape extends IDisposable { $registerNotebookProvider(extension: NotebookExtensionDescription, viewType: string): Promise; $unregisterNotebookProvider(viewType: string): Promise; $registerNotebookRenderer(extension: NotebookExtensionDescription, selectors: INotebookMimeTypeSelector, handle: number, preloads: UriComponents[]): Promise; $unregisterNotebookRenderer(handle: number): Promise; $createNotebookDocument(handle: number, viewType: string, resource: UriComponents): Promise; - $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebook): Promise; - $updateNotebookCells(viewType: string, resource: UriComponents, cells: ICell[], renderers: number[]): Promise; - $updateNotebookCell(viewType: string, resource: UriComponents, cell: ICell, renderers: number[]): Promise; + // $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebookDto): Promise; + $updateNotebookCells(viewType: string, resource: UriComponents, cells: ICellDto[], renderers: number[]): Promise; + $updateNotebookCell(viewType: string, resource: UriComponents, cell: ICellDto, renderers: number[]): Promise; $updateNotebookLanguages(viewType: string, resource: UriComponents, languages: string[]): Promise; } @@ -1456,15 +1474,15 @@ export interface ExtHostCommentsShape { } export interface ExtHostNotebookShape { - $resolveNotebook(viewType: string, uri: URI): Promise; - $executeNotebook(viewType: string, uri: URI): Promise; - $executeNotebookCell(viewType: string, uri: URI, cellHandle: number): Promise; + $resolveNotebook(viewType: string, uri: UriComponents): Promise; + $executeNotebook(viewType: string, uri: UriComponents): Promise; + $executeNotebookCell(viewType: string, uri: UriComponents, cellHandle: number): Promise; $latexRenderer(viewType: string, value: string): Promise; - $createRawCell(viewType: string, uri: URI, index: number, language: string, type: 'markdown' | 'code'): Promise; - $deleteCell(viewType: string, uri: URI, index: number): Promise; - $saveNotebook(viewType: string, uri: URI): Promise; - $updateActiveEditor(viewType: string, uri: URI): Promise; - $destoryNotebookDocument(viewType: string, uri: URI): Promise; + $createRawCell(viewType: string, uri: UriComponents, index: number, language: string, type: 'markdown' | 'code'): Promise; + $deleteCell(viewType: string, uri: UriComponents, index: number): Promise; + $saveNotebook(viewType: string, uri: UriComponents): Promise; + $updateActiveEditor(viewType: string, uri: UriComponents): Promise; + $destoryNotebookDocument(viewType: string, uri: UriComponents): Promise; } export interface ExtHostStorageShape { diff --git a/src/vs/workbench/api/common/extHostNotebook.ts b/src/vs/workbench/api/common/extHostNotebook.ts index f994acea406..6e02eda25e7 100644 --- a/src/vs/workbench/api/common/extHostNotebook.ts +++ b/src/vs/workbench/api/common/extHostNotebook.ts @@ -7,7 +7,7 @@ import * as vscode from 'vscode'; import { ExtHostNotebookShape, IMainContext, MainThreadNotebookShape, MainContext } from 'vs/workbench/api/common/extHost.protocol'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { Disposable as VSCodeDisposable } from './extHostTypes'; -import { URI } from 'vs/base/common/uri'; +import { URI, UriComponents } from 'vs/base/common/uri'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { readonly } from 'vs/base/common/errors'; import { Emitter, Event } from 'vs/base/common/event'; @@ -431,7 +431,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN }); } - async $resolveNotebook(viewType: string, uri: URI): Promise { + async $resolveNotebook(viewType: string, uri: UriComponents): Promise { let provider = this._notebookProviders.get(viewType); if (provider) { @@ -450,7 +450,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN viewType, // this._proxy, `${ExtHostNotebookController._handlePool++}`, - uri, + URI.revive(uri), this._documents.get(URI.revive(uri).toString())!, // this._documentsProxy, this._documentsAndEditors @@ -465,7 +465,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN return Promise.resolve(undefined); } - async $executeNotebook(viewType: string, uri: URI): Promise { + async $executeNotebook(viewType: string, uri: UriComponents): Promise { let provider = this._notebookProviders.get(viewType); if (provider) { @@ -475,7 +475,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN } } - async $executeNotebookCell(viewType: string, uri: URI, cellHandle: number): Promise { + async $executeNotebookCell(viewType: string, uri: UriComponents, cellHandle: number): Promise { let provider = this._notebookProviders.get(viewType); if (provider) { @@ -521,7 +521,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN return; } - async $deleteCell(viewType: string, uri: URI, index: number): Promise { + async $deleteCell(viewType: string, uri: UriComponents, index: number): Promise { let provider = this._notebookProviders.get(viewType); if (provider) { @@ -537,7 +537,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN return false; } - async $saveNotebook(viewType: string, uri: URI): Promise { + async $saveNotebook(viewType: string, uri: UriComponents): Promise { let provider = this._notebookProviders.get(viewType); let document = this._documents.get(URI.revive(uri).toString()); @@ -548,7 +548,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN return false; } - async $updateActiveEditor(viewType: string, uri: URI): Promise { + async $updateActiveEditor(viewType: string, uri: UriComponents): Promise { let document = this._documents.get(URI.revive(uri).toString()); if (document) { @@ -558,7 +558,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN } } - async $destoryNotebookDocument(viewType: string, uri: URI): Promise { + async $destoryNotebookDocument(viewType: string, uri: UriComponents): Promise { let provider = this._notebookProviders.get(viewType); if (provider) {