Refactoring and latex support.

This commit is contained in:
rebornix
2020-02-12 11:01:07 -08:00
parent 2790c0b06e
commit aec1335904
13 changed files with 316 additions and 31 deletions

View File

@@ -10,6 +10,7 @@ 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';
export class MainThreadCell implements ICell {
private _onDidChangeOutputs = new Emitter<void>();
@@ -368,6 +369,10 @@ export class MainThreadNotebookController implements IMainNotebookController {
}
}
async latexRenderer(value: string): Promise<IMarkdownString | undefined> {
return this._proxy.$latexRenderer(this._viewType, value);
}
async destoryNotebookDocument(notebook: INotebook): Promise<void> {
let mainthreadNotebook = this._mapping.get(URI.from(notebook.uri).toString());

View File

@@ -1451,6 +1451,7 @@ 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>;
$latexRenderer(viewType: string, value: string): Promise<IMarkdownString | undefined>;
$createRawCell(viewType: string, uri: URI, index: number, language: string, type: 'markdown' | 'code'): Promise<modes.ICell | undefined>;
$deleteCell(viewType: string, uri: URI, index: number): Promise<boolean>;
$saveNotebook(viewType: string, uri: URI): Promise<boolean>;

View File

@@ -354,6 +354,17 @@ export class ExtHostNotebookController implements ExtHostNotebookShape {
}
}
async $latexRenderer(viewType: string, value: string): Promise<IMarkdownString | undefined> {
let provider = this._notebookProviders.get(viewType);
if (provider && provider.provider.latexRenderer) {
let res = await provider.provider.latexRenderer(value);
return extHostTypeConverter.MarkdownString.from(res);
}
return;
}
async $createRawCell(viewType: string, uri: URI, index: number, language: string, type: 'markdown' | 'code'): Promise<ICell | undefined> {
let provider = this._notebookProviders.get(viewType);