add ICellDto, use UriComponents

This commit is contained in:
Johannes Rieken
2020-02-17 15:53:52 +01:00
parent 7e74dc8e13
commit 059527f8d4
3 changed files with 45 additions and 27 deletions

View File

@@ -261,13 +261,13 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
}
}
async $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebook): Promise<void> {
let controller = this._notebookProviders.get(viewType);
// async $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebookDto): Promise<void> {
// 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<number | undefined> {
let handle = await this._proxy.$resolveNotebook(viewType, uri);

View File

@@ -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<boolean>;
}
// export interface INotebookDto {
// handle: number;
// // metadata: IMetadata;
// readonly uri: UriComponents;
// languages: string[];
// cells: ICellDto[];
// renderers: Set<number>;
// }
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<void>;
$unregisterNotebookProvider(viewType: string): Promise<void>;
$registerNotebookRenderer(extension: NotebookExtensionDescription, selectors: INotebookMimeTypeSelector, handle: number, preloads: UriComponents[]): Promise<void>;
$unregisterNotebookRenderer(handle: number): Promise<void>;
$createNotebookDocument(handle: number, viewType: string, resource: UriComponents): Promise<void>;
$updateNotebook(viewType: string, resource: UriComponents, notebook: INotebook): Promise<void>;
$updateNotebookCells(viewType: string, resource: UriComponents, cells: ICell[], renderers: number[]): Promise<void>;
$updateNotebookCell(viewType: string, resource: UriComponents, cell: ICell, renderers: number[]): Promise<void>;
// $updateNotebook(viewType: string, resource: UriComponents, notebook: INotebookDto): Promise<void>;
$updateNotebookCells(viewType: string, resource: UriComponents, cells: ICellDto[], renderers: number[]): Promise<void>;
$updateNotebookCell(viewType: string, resource: UriComponents, cell: ICellDto, renderers: number[]): Promise<void>;
$updateNotebookLanguages(viewType: string, resource: UriComponents, languages: string[]): Promise<void>;
}
@@ -1456,15 +1474,15 @@ export interface ExtHostCommentsShape {
}
export interface ExtHostNotebookShape {
$resolveNotebook(viewType: string, uri: URI): Promise<number | undefined>;
$executeNotebook(viewType: string, uri: URI): Promise<void>;
$executeNotebookCell(viewType: string, uri: URI, cellHandle: number): Promise<void>;
$resolveNotebook(viewType: string, uri: UriComponents): Promise<number | undefined>;
$executeNotebook(viewType: string, uri: UriComponents): Promise<void>;
$executeNotebookCell(viewType: string, uri: UriComponents, cellHandle: number): Promise<void>;
$latexRenderer(viewType: string, value: string): Promise<IMarkdownString | undefined>;
$createRawCell(viewType: string, uri: URI, index: number, language: string, type: 'markdown' | 'code'): Promise<ICell | undefined>;
$deleteCell(viewType: string, uri: URI, index: number): Promise<boolean>;
$saveNotebook(viewType: string, uri: URI): Promise<boolean>;
$updateActiveEditor(viewType: string, uri: URI): Promise<void>;
$destoryNotebookDocument(viewType: string, uri: URI): Promise<boolean>;
$createRawCell(viewType: string, uri: UriComponents, index: number, language: string, type: 'markdown' | 'code'): Promise<ICellDto | undefined>;
$deleteCell(viewType: string, uri: UriComponents, index: number): Promise<boolean>;
$saveNotebook(viewType: string, uri: UriComponents): Promise<boolean>;
$updateActiveEditor(viewType: string, uri: UriComponents): Promise<void>;
$destoryNotebookDocument(viewType: string, uri: UriComponents): Promise<boolean>;
}
export interface ExtHostStorageShape {

View File

@@ -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<number | undefined> {
async $resolveNotebook(viewType: string, uri: UriComponents): Promise<number | undefined> {
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<void> {
async $executeNotebook(viewType: string, uri: UriComponents): Promise<void> {
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<void> {
async $executeNotebookCell(viewType: string, uri: UriComponents, cellHandle: number): Promise<void> {
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<boolean> {
async $deleteCell(viewType: string, uri: UriComponents, index: number): Promise<boolean> {
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<boolean> {
async $saveNotebook(viewType: string, uri: UriComponents): Promise<boolean> {
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<void> {
async $updateActiveEditor(viewType: string, uri: UriComponents): Promise<void> {
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<boolean> {
async $destoryNotebookDocument(viewType: string, uri: UriComponents): Promise<boolean> {
let provider = this._notebookProviders.get(viewType);
if (provider) {