Update preload scripts for notebook renderer

This commit is contained in:
rebornix
2020-02-13 16:00:13 -08:00
parent 298a5d074e
commit 20f4cbf4b6
16 changed files with 749 additions and 448 deletions

View File

@@ -68,6 +68,7 @@ export class MainThreadNotebookDocument extends Disposable implements INotebook
public cells: MainThreadCell[];
public activeCell: MainThreadCell | undefined;
public languages: string[] = [];
public renderers = new Set<number>();
private _isDirty: boolean = false;
@@ -94,6 +95,12 @@ export class MainThreadNotebookDocument extends Disposable implements INotebook
this.languages = languages;
}
updateRenderers(renderers: number[]) {
renderers.forEach(render => {
this.renderers.add(render);
});
}
updateCell(cell: ICell) {
let mcell = this._mapping.get(cell.handle);
@@ -183,7 +190,6 @@ export class MainThreadNotebookDocument extends Disposable implements INotebook
@extHostNamedCustomer(MainContext.MainThreadNotebook)
export class MainThreadNotebooks extends Disposable implements MainThreadNotebookShape {
private readonly _notebookProviders = new Map<string, MainThreadNotebookController>();
private readonly _renderers = new Map<number, MainThreadNotebookController>();
private readonly _proxy: ExtHostNotebookShape;
constructor(
@@ -197,12 +203,12 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
}));
}
$registerNotebookRenderer(extension: NotebookExtensionDescription, selectors: INotebookMimeTypeSelector, handle: number): Promise<void> {
throw new Error('Method not implemented.');
async $registerNotebookRenderer(extension: NotebookExtensionDescription, selectors: INotebookMimeTypeSelector, handle: number, preloads: UriComponents[]): Promise<void> {
this._notebookService.registerNotebookRenderer(handle, extension, selectors, preloads.map(uri => URI.revive(uri)));
}
$unregisterNotebookRenderer(handle: number): Promise<void> {
throw new Error('Method not implemented.');
async $unregisterNotebookRenderer(handle: number): Promise<void> {
this._notebookService.unregisterNotebookRenderer(handle);
}
async $registerNotebookProvider(extension: NotebookExtensionDescription, viewType: string): Promise<void> {
@@ -230,19 +236,19 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
return;
}
async $updateNotebookCells(viewType: string, resource: UriComponents, cells: ICell[]): Promise<void> {
async $updateNotebookCells(viewType: string, resource: UriComponents, cells: ICell[], renderers: number[]): Promise<void> {
let controller = this._notebookProviders.get(viewType);
if (controller) {
controller.updateNotebookCells(resource, cells);
controller.updateNotebookCells(resource, cells, renderers);
}
}
async $updateNotebookCell(viewType: string, resource: UriComponents, cell: ICell): Promise<void> {
async $updateNotebookCell(viewType: string, resource: UriComponents, cell: ICell, renderers: number[]): Promise<void> {
let controller = this._notebookProviders.get(viewType);
if (controller) {
controller.updateNotebookCell(resource, cell);
controller.updateNotebookCell(resource, cell, renderers);
}
}
@@ -326,22 +332,32 @@ export class MainThreadNotebookController implements IMainNotebookController {
}
}
updateNotebookCells(resource: UriComponents, cells: ICell[]): void {
updateNotebookCells(resource: UriComponents, cells: ICell[], renderers: number[]): void {
let document = this._mapping.get(URI.from(resource).toString());
if (document) {
document.updateRenderers(renderers);
document.updateCells(cells);
}
}
updateNotebookCell(resource: UriComponents, cell: ICell): void {
updateNotebookCell(resource: UriComponents, cell: ICell, renderers: number[]): void {
let document = this._mapping.get(URI.from(resource).toString());
if (document) {
document.updateRenderers(renderers);
document.updateCell(cell);
}
}
updateNotebookRenderers(resource: UriComponents, renderers: number[]): void {
let document = this._mapping.get(URI.from(resource).toString());
if (document) {
document.updateRenderers(renderers);
}
}
updateNotebookActiveCell(uri: URI, cellHandle: number): void {
let mainthreadNotebook = this._mapping.get(URI.from(uri).toString());