mirror of
https://github.com/microsoft/vscode-extension-samples.git
synced 2026-06-13 07:10:26 +08:00
Rename to "-sample"
This commit is contained in:
51
notebook-serializer-sample/src/controller.ts
Normal file
51
notebook-serializer-sample/src/controller.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
export class SampleKernel {
|
||||
private readonly _id = 'test-notebook-serializer-kernel';
|
||||
private readonly _label = 'Sample Notebook Kernel';
|
||||
private readonly _supportedLanguages = ['json'];
|
||||
|
||||
private _executionOrder = 0;
|
||||
private readonly _controller: vscode.NotebookController;
|
||||
|
||||
constructor() {
|
||||
|
||||
this._controller = vscode.notebooks.createNotebookController(this._id,
|
||||
'test-notebook-serializer',
|
||||
this._label);
|
||||
|
||||
this._controller.supportedLanguages = this._supportedLanguages;
|
||||
this._controller.supportsExecutionOrder = true;
|
||||
this._controller.executeHandler = this._executeAll.bind(this);
|
||||
}
|
||||
|
||||
dispose(): void {
|
||||
this._controller.dispose();
|
||||
}
|
||||
|
||||
private _executeAll(cells: vscode.NotebookCell[], _notebook: vscode.NotebookDocument, _controller: vscode.NotebookController): void {
|
||||
for (const cell of cells) {
|
||||
this._doExecution(cell);
|
||||
}
|
||||
}
|
||||
|
||||
private async _doExecution(cell: vscode.NotebookCell): Promise<void> {
|
||||
const execution = this._controller.createNotebookCellExecution(cell);
|
||||
|
||||
execution.executionOrder = ++this._executionOrder;
|
||||
execution.start(Date.now());
|
||||
|
||||
try {
|
||||
execution.replaceOutput([new vscode.NotebookCellOutput([
|
||||
vscode.NotebookCellOutputItem.json(JSON.parse(cell.document.getText()))
|
||||
])]);
|
||||
|
||||
execution.end(true, Date.now());
|
||||
} catch (err) {
|
||||
execution.replaceOutput([new vscode.NotebookCellOutput([
|
||||
vscode.NotebookCellOutputItem.error(err as Error)
|
||||
])]);
|
||||
execution.end(false, Date.now());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user