Move typings to common.

This commit is contained in:
rebornix
2020-02-13 14:32:43 -08:00
parent 7d12ce5519
commit 298a5d074e
18 changed files with 173 additions and 137 deletions

View File

@@ -8,9 +8,9 @@ import { MainContext, MainThreadNotebookShape, NotebookExtensionDescription, IEx
import { Disposable, IDisposable } from 'vs/base/common/lifecycle';
import { URI, UriComponents } from 'vs/base/common/uri';
import { INotebookService, IMainNotebookController } from 'vs/workbench/contrib/notebook/browser/notebookService';
import { INotebook, ICell, IOutput } from 'vs/editor/common/modes';
import { Emitter, Event } from 'vs/base/common/event';
import { IMarkdownString } from 'vs/base/common/htmlContent';
import { ICell, IOutput, INotebook, INotebookMimeTypeSelector } from 'vs/workbench/contrib/notebook/common/notebook';
export class MainThreadCell implements ICell {
private _onDidChangeOutputs = new Emitter<void>();
@@ -183,6 +183,7 @@ 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(
@@ -196,6 +197,14 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
}));
}
$registerNotebookRenderer(extension: NotebookExtensionDescription, selectors: INotebookMimeTypeSelector, handle: number): Promise<void> {
throw new Error('Method not implemented.');
}
$unregisterNotebookRenderer(handle: number): Promise<void> {
throw new Error('Method not implemented.');
}
async $registerNotebookProvider(extension: NotebookExtensionDescription, viewType: string): Promise<void> {
let controller = new MainThreadNotebookController(this._proxy, this, viewType);
this._notebookProviders.set(viewType, controller);

View File

@@ -50,6 +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/notebook';
export interface IEnvironment {
isExtensionDevelopmentDebug: boolean;
@@ -627,10 +628,12 @@ export interface ExtHostWebviewsShape {
export interface MainThreadNotebookShape extends IDisposable {
$registerNotebookProvider(extension: NotebookExtensionDescription, viewType: string): Promise<void>;
$unregisterNotebookProvider(viewType: string): Promise<void>;
$registerNotebookRenderer(extension: NotebookExtensionDescription, selectors: INotebookMimeTypeSelector, handle: number): Promise<void>;
$unregisterNotebookRenderer(handle: number): Promise<void>;
$createNotebookDocument(handle: number, viewType: string, resource: UriComponents): Promise<void>;
$updateNotebook(viewType: string, resource: UriComponents, notebook: modes.INotebook): Promise<void>;
$updateNotebookCells(viewType: string, resource: UriComponents, cells: modes.ICell[]): Promise<void>;
$updateNotebookCell(viewType: string, resource: UriComponents, cell: modes.ICell): Promise<void>;
$updateNotebook(viewType: string, resource: UriComponents, notebook: INotebook): Promise<void>;
$updateNotebookCells(viewType: string, resource: UriComponents, cells: ICell[]): Promise<void>;
$updateNotebookCell(viewType: string, resource: UriComponents, cell: ICell): Promise<void>;
$updateNotebookLanguages(viewType: string, resource: UriComponents, languages: string[]): Promise<void>;
}
@@ -1457,7 +1460,7 @@ export interface ExtHostNotebookShape {
$executeNotebook(viewType: string, uri: URI): Promise<void>;
$executeNotebookCell(viewType: string, uri: URI, 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<modes.ICell | 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>;

View File

@@ -12,10 +12,9 @@ import { DisposableStore } from 'vs/base/common/lifecycle';
import { readonly } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/common/extHostDocumentsAndEditors';
import { ICell } from 'vs/editor/common/modes';
// import { ExtHostDocumentData } from 'vs/workbench/api/common/extHostDocumentData';
import * as extHostTypeConverter from 'vs/workbench/api/common/extHostTypeConverters';
import { IMarkdownString } from 'vs/base/common/htmlContent';
import { ICell } from 'vs/workbench/contrib/notebook/common/notebook';
export class ExtHostCell implements vscode.NotebookCell {
@@ -101,7 +100,7 @@ export class ExtHostNotebookDocument implements vscode.NotebookDocument {
} else {
return output;
}
})
});
}
this._proxy.$updateNotebookCell(this.viewType, this.uri, {
@@ -152,7 +151,7 @@ export class ExtHostNotebookDocument implements vscode.NotebookDocument {
} else {
return output;
}
})
});
}
return {
@@ -162,9 +161,9 @@ export class ExtHostNotebookDocument implements vscode.NotebookDocument {
cell_type: cell.cell_type,
outputs: outputs,
isDirty: false
}
};
}
));
));
}
insertRawCell(index: number, cell: ExtHostCell) {
@@ -187,7 +186,7 @@ export class ExtHostNotebookDocument implements vscode.NotebookDocument {
} else {
return output;
}
})
});
}
this._proxy.$updateNotebookCell(this.viewType, this.uri, {
@@ -302,6 +301,9 @@ export class ExtHostNotebookEditor implements vscode.NotebookEditor {
}
export class ExtHostNotebookOutputRenderer {
private static _handlePool: number = 0;
readonly handle = ExtHostNotebookOutputRenderer._handlePool++;
constructor(
private filter: vscode.NotebookOutputSelector,
private renderer: vscode.NotebookOutputRenderer
@@ -332,7 +334,7 @@ export class ExtHostNotebookOutputRenderer {
}
render(document: ExtHostNotebookDocument, cell: ExtHostCell, output: vscode.CellOutput): vscode.CellDisplayOutput {
let html = this.renderer.render(document ,cell, output);
let html = this.renderer.render(document, cell, output);
return {
output_type: 'display_data',
@@ -357,7 +359,7 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
private readonly _notebookProviders = new Map<string, { readonly provider: vscode.NotebookProvider, readonly extension: IExtensionDescription }>();
private readonly _documents = new Map<string, ExtHostNotebookDocument>();
private readonly _editors = new Map<string, ExtHostNotebookEditor>();
private readonly _notebookOutputRenderers: ExtHostNotebookOutputRenderer[] = [];
private readonly _notebookOutputRenderers = new Map<number, ExtHostNotebookOutputRenderer>();
constructor(mainContext: IMainContext, private _documentsAndEditors: ExtHostDocumentsAndEditors) {
@@ -377,16 +379,19 @@ export class ExtHostNotebookController implements ExtHostNotebookShape, ExtHostN
filter: vscode.NotebookOutputSelector,
renderer: vscode.NotebookOutputRenderer
): vscode.Disposable {
this._notebookOutputRenderers.push(new ExtHostNotebookOutputRenderer(filter, renderer));
let extHostRenderer = new ExtHostNotebookOutputRenderer(filter, renderer);
this._notebookOutputRenderers.set(extHostRenderer.handle, extHostRenderer);
this._proxy.$registerNotebookRenderer({ id: extension.identifier, location: extension.extensionLocation }, filter, extHostRenderer.handle);
return new VSCodeDisposable(() => {
})
this._notebookOutputRenderers.delete(extHostRenderer.handle);
this._proxy.$unregisterNotebookRenderer(extHostRenderer.handle);
});
}
findBestMatchedRenderer(output: vscode.CellOutput): ExtHostNotebookOutputRenderer | undefined {
for (let i = 0; i < this._notebookOutputRenderers.length; i++) {
if (this._notebookOutputRenderers[i].matches(output)) {
return this._notebookOutputRenderers[i];
for (let renderer of this._notebookOutputRenderers) {
if (renderer[1].matches(output)) {
return renderer[1];
}
}