Add API for setting kernelspec in ipynb files (#131219)

* Add API for setting kernelspec in ipynb files

Fixes #130602

This adds a new API to the built-in ipynb extension that lets other extension set the kernelspec metadata on a notebook file

* Temporarily skip the notebook editor tests

We need the new webview content to be published before these can run

* Use `custom`  instead of top level property
This commit is contained in:
Matt Bierner 2021-08-24 18:06:53 -07:00 committed by GitHub
parent d152e72606
commit d082058d44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View file

@ -21,7 +21,23 @@ export function activate(context: vscode.ExtensionContext) {
return {
exportNotebook: (notebook: vscode.NotebookData): string => {
return exportNotebook(notebook, serializer);
}
},
setKernelSpec: async (resource: vscode.Uri, kernelspec: unknown): Promise<boolean> => {
const document = vscode.workspace.notebookDocuments.find(doc => doc.uri.toString() === resource.toString());
if (!document) {
return false;
}
const edit = new vscode.WorkspaceEdit();
edit.replaceNotebookMetadata(resource, {
...document.metadata,
custom: {
...(document.metadata.custom ?? {}),
kernelspec: kernelspec
}
});
return vscode.workspace.applyEdit(edit);
},
};
}

View file

@ -7,7 +7,7 @@ import * as assert from 'assert';
import * as vscode from 'vscode';
import * as utils from '../utils';
suite('Notebook Editor', function () {
suite.skip('Notebook Editor', function () {
const contentSerializer = new class implements vscode.NotebookSerializer {
deserializeNotebook() {