add new output to workspace edit

This commit is contained in:
Johannes Rieken
2020-09-28 09:17:05 +02:00
parent 6a9500f040
commit 0065a650b5
4 changed files with 21 additions and 10 deletions

View File

@@ -7,7 +7,7 @@ import { readonly } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { Disposable } from 'vs/base/common/lifecycle';
import { MainThreadNotebookShape } from 'vs/workbench/api/common/extHost.protocol';
import { NotebookCellOutputList } from 'vs/workbench/api/common/extHostTypeConverters';
import { NotebookCellOutput } from 'vs/workbench/api/common/extHostTypeConverters';
import * as extHostTypes from 'vs/workbench/api/common/extHostTypes';
import { addIdToOutput, CellEditType, ICellEditOperation, ICellReplaceEdit, INotebookEditData, notebookDocumentMetadataDefaults } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import * as vscode from 'vscode';
@@ -61,8 +61,8 @@ class NotebookEditorCellEditBuilder implements vscode.NotebookEditorEdit {
editType: CellEditType.Output,
index,
outputs: outputs.map(output => {
if (extHostTypes.NotebookCellOutput.isNotebookCellOutputList(output)) {
return addIdToOutput(NotebookCellOutputList.from(output));
if (extHostTypes.NotebookCellOutput.isNotebookCellOutput(output)) {
return addIdToOutput(NotebookCellOutput.from(output));
} else {
return addIdToOutput(output);
}

View File

@@ -1297,7 +1297,7 @@ export namespace LogLevel {
}
}
export namespace NotebookCellOutputList {
export namespace NotebookCellOutput {
export function from(output: types.NotebookCellOutput): IDisplayOutput {
let data: { [key: string]: unknown; } = {};
@@ -1319,7 +1319,7 @@ export namespace NotebookCellOutputList {
}
}
export namespace NotebookCellOutput {
export namespace NotebookCellOutputItem {
export function from(output: types.NotebookCellOutputItem): IDisplayOutput {
return {
outputKind: CellOutputKind.Rich,

View File

@@ -14,6 +14,7 @@ import { URI } from 'vs/base/common/uri';
import { generateUuid } from 'vs/base/common/uuid';
import { FileSystemProviderErrorCode, markAsFileSystemProviderError } from 'vs/platform/files/common/files';
import { RemoteAuthorityResolverErrorCode } from 'vs/platform/remote/common/remoteAuthorityResolver';
import * as extHostTypeConverters from 'vs/workbench/api/common/extHostTypeConverters';
import { addIdToOutput, CellEditType, ICellEditOperation } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import type * as vscode from 'vscode';
@@ -641,8 +642,18 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit {
}
}
replaceNotebookCellOutput(uri: URI, index: number, outputs: vscode.CellOutput[], metadata?: vscode.WorkspaceEditEntryMetadata): void {
this._edits.push({ _type: FileEditType.Cell, metadata, uri, edit: { editType: CellEditType.Output, index, outputs: outputs.map(output => addIdToOutput(output)) } });
replaceNotebookCellOutput(uri: URI, index: number, outputs: (vscode.NotebookCellOutput | vscode.CellOutput)[], metadata?: vscode.WorkspaceEditEntryMetadata): void {
this._edits.push({
_type: FileEditType.Cell, metadata, uri, edit: {
editType: CellEditType.Output, index, outputs: outputs.map(output => {
if (NotebookCellOutput.isNotebookCellOutput(output)) {
return addIdToOutput(extHostTypeConverters.NotebookCellOutput.from(output));
} else {
return addIdToOutput(output);
}
})
}
});
}
replaceNotebookCellMetadata(uri: URI, index: number, cellMetadata: vscode.NotebookCellMetadata, metadata?: vscode.WorkspaceEditEntryMetadata): void {
@@ -2774,7 +2785,7 @@ export enum ColorThemeKind {
export class NotebookCellOutputItem {
static isNotebookCellOutput(obj: unknown): obj is vscode.NotebookCellOutputItem {
static isNotebookCellOutputItem(obj: unknown): obj is vscode.NotebookCellOutputItem {
return obj instanceof NotebookCellOutputItem;
}
@@ -2787,7 +2798,7 @@ export class NotebookCellOutputItem {
export class NotebookCellOutput {
static isNotebookCellOutputList(obj: unknown): obj is vscode.NotebookCellOutput {
static isNotebookCellOutput(obj: unknown): obj is vscode.NotebookCellOutput {
return obj instanceof NotebookCellOutput;
}