diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts index bb8b9a01674..70e6e704231 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.document.test.ts @@ -248,67 +248,6 @@ suite('Notebook Document', function () { assert.strictEqual(data.changes[0].items[1], document.cellAt(1)); }); - test('workspace edit API (appendNotebookCellOutput, replaceCellOutput, event)', async function () { - const uri = await utils.createRandomFile(undefined, undefined, '.nbdtest'); - const document = await vscode.notebook.openNotebookDocument(uri); - - const outputChangeEvent = utils.asPromise(vscode.notebook.onDidChangeCellOutputs); - const edit = new vscode.WorkspaceEdit(); - const firstCellOutput = new vscode.NotebookCellOutput([new vscode.NotebookCellOutputItem('foo', 'bar')]); - edit.appendNotebookCellOutput(document.uri, 0, [firstCellOutput]); - const success = await vscode.workspace.applyEdit(edit); - const data = await outputChangeEvent; - - assert.strictEqual(success, true); - assert.strictEqual(document.cellCount, 1); - assert.strictEqual(document.cellAt(0).outputs.length, 1); - assert.deepStrictEqual(document.cellAt(0).outputs, [firstCellOutput]); - - assert.strictEqual(data.document === document, true); - assert.strictEqual(data.cells.length, 1); - assert.strictEqual(data.cells[0].outputs.length, 1); - assert.deepStrictEqual(data.cells[0].outputs, [firstCellOutput]); - - - { - const outputChangeEvent = utils.asPromise(vscode.notebook.onDidChangeCellOutputs); - const edit = new vscode.WorkspaceEdit(); - const secondCellOutput = new vscode.NotebookCellOutput([new vscode.NotebookCellOutputItem('foo', 'baz')]); - edit.appendNotebookCellOutput(document.uri, 0, [secondCellOutput]); - const success = await vscode.workspace.applyEdit(edit); - const data = await outputChangeEvent; - - assert.strictEqual(success, true); - assert.strictEqual(document.cellCount, 1); - assert.strictEqual(document.cellAt(0).outputs.length, 2); - assert.deepStrictEqual(document.cellAt(0).outputs, [firstCellOutput, secondCellOutput]); - - assert.strictEqual(data.document === document, true); - assert.strictEqual(data.cells.length, 1); - assert.strictEqual(data.cells[0].outputs.length, 2); - assert.deepStrictEqual(data.cells[0].outputs, [firstCellOutput, secondCellOutput]); - } - - { - const outputChangeEvent = utils.asPromise(vscode.notebook.onDidChangeCellOutputs); - const edit = new vscode.WorkspaceEdit(); - const thirdOutput = new vscode.NotebookCellOutput([new vscode.NotebookCellOutputItem('foo', 'baz1')]); - edit.replaceNotebookCellOutput(document.uri, 0, [thirdOutput]); - const success = await vscode.workspace.applyEdit(edit); - const data = await outputChangeEvent; - - assert.strictEqual(success, true); - assert.strictEqual(document.cellCount, 1); - assert.strictEqual(document.cellAt(0).outputs.length, 1); - assert.deepStrictEqual(document.cellAt(0).outputs, [thirdOutput]); - - assert.strictEqual(data.document === document, true); - assert.strictEqual(data.cells.length, 1); - assert.strictEqual(data.cells[0].outputs.length, 1); - assert.deepStrictEqual(data.cells[0].outputs, [thirdOutput]); - } - }); - test('document save API', async function () { const uri = await utils.createRandomFile(undefined, undefined, '.nbdtest'); const notebook = await vscode.notebook.openNotebookDocument(uri); @@ -375,45 +314,6 @@ suite('Notebook Document', function () { assert.strictEqual(cellDoc.languageId, 'css'); }); - test('#117273, Add multiple outputs', async function () { - - const resource = await utils.createRandomFile(undefined, undefined, '.nbdtest'); - const document = await vscode.notebook.openNotebookDocument(resource); - - const edit = new vscode.WorkspaceEdit(); - edit.replaceNotebookCellOutput(document.uri, 0, [ - new vscode.NotebookCellOutput( - [new vscode.NotebookCellOutputItem('application/x.notebook.stream', '1', { outputType: 'stream', streamName: 'stdout' })], - { outputType: 'stream', streamName: 'stdout' } - ) - ]); - let success = await vscode.workspace.applyEdit(edit); - - assert.ok(success); - assert.strictEqual(document.cellAt(0).outputs.length, 1); - assert.strictEqual(document.cellAt(0).outputs[0].outputs.length, 1); - assert.deepStrictEqual(document.cellAt(0).outputs[0].metadata, { outputType: 'stream', streamName: 'stdout' }); - assert.deepStrictEqual(document.cellAt(0).outputs[0].outputs[0].metadata, { outputType: 'stream', streamName: 'stdout' }); - - const edit2 = new vscode.WorkspaceEdit(); - edit2.appendNotebookCellOutput(document.uri, 0, [ - new vscode.NotebookCellOutput( - [new vscode.NotebookCellOutputItem('hello', '1', { outputType: 'stream', streamName: 'stderr' })], - { outputType: 'stream', streamName: 'stderr' } - ) - ]); - success = await vscode.workspace.applyEdit(edit2); - assert.ok(success); - - assert.strictEqual(document.cellAt(0).outputs.length, 2); - assert.strictEqual(document.cellAt(0).outputs[0].outputs.length, 1); - assert.strictEqual(document.cellAt(0).outputs[1].outputs.length, 1); - assert.deepStrictEqual(document.cellAt(0).outputs[0].metadata, { outputType: 'stream', streamName: 'stdout' }); - assert.deepStrictEqual(document.cellAt(0).outputs[0].outputs[0].metadata, { outputType: 'stream', streamName: 'stdout' }); - assert.deepStrictEqual(document.cellAt(0).outputs[1].metadata, { outputType: 'stream', streamName: 'stderr' }); - assert.deepStrictEqual(document.cellAt(0).outputs[1].outputs[0].metadata, { outputType: 'stream', streamName: 'stderr' }); - }); - test('dirty state - complex', async function () { const resource = await utils.createRandomFile(undefined, undefined, '.nbdtest'); const document = await vscode.notebook.openNotebookDocument(resource); diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.test.ts index d593df11168..71cf55acee5 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/notebook.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/notebook.test.ts @@ -1169,33 +1169,6 @@ suite('Notebook API tests', function () { await closeAllEditors(); }); - test('#116598, output items change event.', async function () { - - const resource = await createRandomNotebookFile(); - await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest'); - - const edit = new vscode.WorkspaceEdit(); - edit.appendNotebookCellOutput(resource, 0, [new vscode.NotebookCellOutput([ - new vscode.NotebookCellOutputItem('application/foo', 'bar'), - new vscode.NotebookCellOutputItem('application/json', { data: true }, { metadata: true }), - ])]); - await vscode.workspace.applyEdit(edit); - assert.strictEqual(vscode.window.activeNotebookEditor!.document.cellAt(0).outputs.length, 1); - assert.strictEqual(vscode.window.activeNotebookEditor!.document.cellAt(0).outputs[0].outputs.length, 2); - - const appendEdit = new vscode.WorkspaceEdit(); - const newItem = new vscode.NotebookCellOutputItem('text/plain', '1'); - appendEdit.appendNotebookCellOutputItems( - resource, - 0, - vscode.window.activeNotebookEditor!.document.cellAt(0).outputs[0].id, - [newItem] - ); - await vscode.workspace.applyEdit(appendEdit); - assert.strictEqual(vscode.window.activeNotebookEditor!.document.cellAt(0).outputs[0].outputs.length, 3); - assert.deepStrictEqual(vscode.window.activeNotebookEditor!.document.cellAt(0).outputs[0].outputs[2], newItem); - }); - test('#115855 onDidSaveNotebookDocument', async function () { const resource = await createRandomNotebookFile(); const notebook = await vscode.notebook.openNotebookDocument(resource); diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index a3b436bc885..900695a4f13 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -1410,18 +1410,11 @@ declare module 'vscode' { replaceNotebookMetadata(uri: Uri, value: NotebookDocumentMetadata): void; replaceNotebookCells(uri: Uri, range: NotebookRange, cells: NotebookCellData[], metadata?: WorkspaceEditEntryMetadata): void; replaceNotebookCellMetadata(uri: Uri, index: number, cellMetadata: NotebookCellMetadata, metadata?: WorkspaceEditEntryMetadata): void; - - //todo@API remove output modifications? - replaceNotebookCellOutput(uri: Uri, index: number, outputs: NotebookCellOutput[], metadata?: WorkspaceEditEntryMetadata): void; - appendNotebookCellOutput(uri: Uri, index: number, outputs: NotebookCellOutput[], metadata?: WorkspaceEditEntryMetadata): void; - replaceNotebookCellOutputItems(uri: Uri, index: number, outputId: string, items: NotebookCellOutputItem[], metadata?: WorkspaceEditEntryMetadata): void; - appendNotebookCellOutputItems(uri: Uri, index: number, outputId: string, items: NotebookCellOutputItem[], metadata?: WorkspaceEditEntryMetadata): void; } export interface NotebookEditorEdit { replaceMetadata(value: NotebookDocumentMetadata): void; replaceCells(start: number, end: number, cells: NotebookCellData[]): void; - replaceCellOutput(index: number, outputs: NotebookCellOutput[]): void; replaceCellMetadata(index: number, metadata: NotebookCellMetadata): void; } diff --git a/src/vs/workbench/api/common/extHostNotebookEditor.ts b/src/vs/workbench/api/common/extHostNotebookEditor.ts index 24b8b687742..2c1dcaa34b0 100644 --- a/src/vs/workbench/api/common/extHostNotebookEditor.ts +++ b/src/vs/workbench/api/common/extHostNotebookEditor.ts @@ -57,17 +57,6 @@ class NotebookEditorCellEditBuilder implements vscode.NotebookEditorEdit { }); } - replaceCellOutput(index: number, outputs: vscode.NotebookCellOutput[]): void { - this._throwIfFinalized(); - this._collectedEdits.push({ - editType: CellEditType.Output, - index, - outputs: outputs.map(output => { - return extHostConverter.NotebookCellOutput.from(output); - }) - }); - } - replaceCells(from: number, to: number, cells: vscode.NotebookCellData[]): void { this._throwIfFinalized(); if (from === to && cells.length === 0) { diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index 42a6d5c55df..828cc92474f 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -706,30 +706,6 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { } } - replaceNotebookCellOutput(uri: URI, index: number, outputs: vscode.NotebookCellOutput[], metadata?: vscode.WorkspaceEditEntryMetadata): void { - this._editNotebookCellOutput(uri, index, false, outputs, metadata); - } - - appendNotebookCellOutput(uri: URI, index: number, outputs: vscode.NotebookCellOutput[], metadata?: vscode.WorkspaceEditEntryMetadata): void { - this._editNotebookCellOutput(uri, index, true, outputs, metadata); - } - - replaceNotebookCellOutputItems(uri: URI, index: number, outputId: string, items: NotebookCellOutputItem[], metadata?: vscode.WorkspaceEditEntryMetadata): void { - this._editNotebookCellOutputItems(uri, index, outputId, false, items, metadata); - } - - appendNotebookCellOutputItems(uri: URI, index: number, outputId: string, items: NotebookCellOutputItem[], metadata?: vscode.WorkspaceEditEntryMetadata): void { - this._editNotebookCellOutputItems(uri, index, outputId, true, items, metadata); - } - - private _editNotebookCellOutputItems(uri: URI, index: number, id: string, append: boolean, items: vscode.NotebookCellOutputItem[], metadata: vscode.WorkspaceEditEntryMetadata | undefined): void { - this._edits.push({ _type: FileEditType.CellOutputItem, metadata, uri, index, outputId: id, append, newOutputItems: items }); - } - - private _editNotebookCellOutput(uri: URI, index: number, append: boolean, outputs: vscode.NotebookCellOutput[], metadata: vscode.WorkspaceEditEntryMetadata | undefined): void { - this._edits.push({ _type: FileEditType.CellOutput, metadata, uri, index, append, newOutputs: outputs, newMetadata: undefined }); - } - replaceNotebookCellMetadata(uri: URI, index: number, cellMetadata: vscode.NotebookCellMetadata, metadata?: vscode.WorkspaceEditEntryMetadata): void { this._edits.push({ _type: FileEditType.Cell, metadata, uri, edit: { editType: CellEditType.PartialMetadata, index, metadata: cellMetadata } }); }