From 98ce5b35487780682c381908e3a9a9d68f2a1694 Mon Sep 17 00:00:00 2001 From: Peng Lyu Date: Wed, 3 Apr 2024 17:18:32 -0700 Subject: [PATCH] Convert Workspace Cell Edit dto to renderer types (#209498) --- .../api/browser/mainThreadBulkEdits.ts | 21 ++++++++++++++++++- .../contrib/notebook/common/notebookCommon.ts | 7 +++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/api/browser/mainThreadBulkEdits.ts b/src/vs/workbench/api/browser/mainThreadBulkEdits.ts index a34257bb79261..dfd425729a340 100644 --- a/src/vs/workbench/api/browser/mainThreadBulkEdits.ts +++ b/src/vs/workbench/api/browser/mainThreadBulkEdits.ts @@ -9,8 +9,9 @@ import { IBulkEditService, ResourceFileEdit, ResourceTextEdit } from 'vs/editor/ import { WorkspaceEdit } from 'vs/editor/common/languages'; import { ILogService } from 'vs/platform/log/common/log'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; -import { IWorkspaceEditDto, IWorkspaceFileEditDto, MainContext, MainThreadBulkEditsShape } from 'vs/workbench/api/common/extHost.protocol'; +import { IWorkspaceCellEditDto, IWorkspaceEditDto, IWorkspaceFileEditDto, MainContext, MainThreadBulkEditsShape } from 'vs/workbench/api/common/extHost.protocol'; import { ResourceNotebookCellEdit } from 'vs/workbench/contrib/bulkEdit/browser/bulkCellEdits'; +import { CellEditType } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { IExtHostContext, extHostNamedCustomer } from 'vs/workbench/services/extensions/common/extHostCustomers'; import { SerializableObjectWithBuffers } from 'vs/workbench/services/extensions/common/proxyIdentifier'; @@ -67,6 +68,24 @@ export function reviveWorkspaceEditDto(data: IWorkspaceEditDto | undefined, uriI } if (ResourceNotebookCellEdit.is(edit)) { edit.resource = uriIdentityService.asCanonicalUri(edit.resource); + const cellEdit = (edit as IWorkspaceCellEditDto).cellEdit; + if (cellEdit.editType === CellEditType.Replace) { + edit.cellEdit = { + ...cellEdit, + cells: cellEdit.cells.map(cell => ({ + ...cell, + outputs: cell.outputs.map(output => ({ + ...output, + outputs: output.items.map(item => { + return { + mime: item.mime, + data: item.valueBytes + }; + }) + })) + })) + }; + } } } return data; diff --git a/src/vs/workbench/contrib/notebook/common/notebookCommon.ts b/src/vs/workbench/contrib/notebook/common/notebookCommon.ts index 8e51f48689d5a..a85eadd2feaae 100644 --- a/src/vs/workbench/contrib/notebook/common/notebookCommon.ts +++ b/src/vs/workbench/contrib/notebook/common/notebookCommon.ts @@ -533,6 +533,13 @@ export interface IWorkspaceNotebookCellEdit { cellEdit: ICellPartialMetadataEdit | IDocumentMetadataEdit | ICellReplaceEdit; } +export interface IWorkspaceNotebookCellEditDto { + metadata?: WorkspaceEditMetadata; + resource: URI; + notebookVersionId: number | undefined; + cellEdit: ICellPartialMetadataEdit | IDocumentMetadataEdit | ICellReplaceEdit; +} + export interface NotebookData { readonly cells: ICellDto2[]; readonly metadata: NotebookDocumentMetadata;