mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-23 01:58:53 +01:00
Move typings to common.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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>;
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user