Skip to content

Commit 01f9355

Browse files
committed
debt - simplify metadata edit because we now have CellEditType.DocumentMetadata
1 parent 533ca9b commit 01f9355

8 files changed

Lines changed: 17 additions & 42 deletions

File tree

src/vs/workbench/api/browser/mainThreadBulkEdits.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function reviveWorkspaceEditDto2(data: IWorkspaceEditDto | undefined): ResourceE
2121
} else if (edit._type === WorkspaceEditType.Text) {
2222
result.push(new ResourceTextEdit(edit.resource, edit.edit, edit.modelVersionId, edit.metadata));
2323
} else if (edit._type === WorkspaceEditType.Cell) {
24-
result.push(new ResourceNotebookCellEdit(edit.resource, edit.edit, edit.notebookMetadata, edit.notebookVersionId, edit.metadata));
24+
result.push(new ResourceNotebookCellEdit(edit.resource, edit.edit, edit.notebookVersionId, edit.metadata));
2525
}
2626
}
2727
return result;

src/vs/workbench/api/browser/mainThreadEditors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function reviveWorkspaceEditDto2(data: IWorkspaceEditDto | undefined): ResourceE
4444
} else if (edit._type === WorkspaceEditType.Text) {
4545
result.push(new ResourceTextEdit(edit.resource, edit.edit, edit.modelVersionId, edit.metadata));
4646
} else if (edit._type === WorkspaceEditType.Cell) {
47-
result.push(new ResourceNotebookCellEdit(edit.resource, edit.edit, edit.notebookMetadata, edit.notebookVersionId, edit.metadata));
47+
result.push(new ResourceNotebookCellEdit(edit.resource, edit.edit, edit.notebookVersionId, edit.metadata));
4848
}
4949
}
5050
return result;

src/vs/workbench/api/browser/mainThreadNotebook.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { INotebookEditor } from 'vs/workbench/contrib/notebook/browser/notebookB
1818
import { NotebookCellTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookCellTextModel';
1919
import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookTextModel';
2020
import { INotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/common/notebookCellStatusBarService';
21-
import { ACCESSIBLE_NOTEBOOK_DISPLAY_ORDER, CellEditType, DisplayOrderKey, ICellEditOperation, ICellRange, IEditor, IMainCellDto, INotebookDocumentFilter, NotebookCellOutputsSplice, NotebookCellsChangeType, NotebookDocumentMetadata, NOTEBOOK_DISPLAY_ORDER, TransientMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon';
21+
import { ACCESSIBLE_NOTEBOOK_DISPLAY_ORDER, CellEditType, DisplayOrderKey, ICellEditOperation, ICellRange, IEditor, IMainCellDto, INotebookDocumentFilter, NotebookCellOutputsSplice, NotebookCellsChangeType, NOTEBOOK_DISPLAY_ORDER, TransientMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon';
2222
import { IMainNotebookController, INotebookService } from 'vs/workbench/contrib/notebook/common/notebookService';
2323
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
2424
import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
@@ -156,20 +156,12 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
156156
this.registerListeners();
157157
}
158158

159-
async $tryApplyEdits(_viewType: string, resource: UriComponents, modelVersionId: number, cellEdits: ICellEditOperation[], newMetadata: NotebookDocumentMetadata | undefined): Promise<boolean> {
159+
async $tryApplyEdits(_viewType: string, resource: UriComponents, modelVersionId: number, cellEdits: ICellEditOperation[]): Promise<boolean> {
160160
const textModel = this._notebookService.getNotebookTextModel(URI.from(resource));
161161
if (!textModel) {
162162
return false;
163163
}
164164
this._notebookService.transformEditsOutputs(textModel, cellEdits);
165-
if (newMetadata) {
166-
textModel.applyEdit(textModel.versionId, [
167-
{
168-
editType: CellEditType.DocumentMetadata,
169-
metadata: newMetadata
170-
}
171-
], true);
172-
}
173165
return textModel.applyEdit(modelVersionId, cellEdits, true);
174166
}
175167

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ export interface MainThreadNotebookShape extends IDisposable {
741741
$registerNotebookKernelProvider(extension: NotebookExtensionDescription, handle: number, documentFilter: INotebookDocumentFilter): Promise<void>;
742742
$unregisterNotebookKernelProvider(handle: number): Promise<void>;
743743
$onNotebookKernelChange(handle: number, uri: UriComponents | undefined): void;
744-
$tryApplyEdits(viewType: string, resource: UriComponents, modelVersionId: number, edits: ICellEditOperation[], metadata: NotebookDocumentMetadata | undefined): Promise<boolean>;
744+
$tryApplyEdits(viewType: string, resource: UriComponents, modelVersionId: number, edits: ICellEditOperation[]): Promise<boolean>;
745745
$updateNotebookLanguages(viewType: string, resource: UriComponents, languages: string[]): Promise<void>;
746746
$spliceNotebookCellOutputs(viewType: string, resource: UriComponents, cellHandle: number, splices: NotebookCellOutputsSplice[]): Promise<void>;
747747
$postMessage(editorId: string, forRendererId: string | undefined, value: any): Promise<boolean>;
@@ -1275,8 +1275,7 @@ export interface IWorkspaceTextEditDto {
12751275
export interface IWorkspaceCellEditDto {
12761276
_type: WorkspaceEditType.Cell;
12771277
resource: UriComponents;
1278-
edit?: ICellEditOperation;
1279-
notebookMetadata?: NotebookDocumentMetadata;
1278+
edit: ICellEditOperation;
12801279
notebookVersionId?: number;
12811280
metadata?: IWorkspaceEditEntryMetadataDto;
12821281
}

src/vs/workbench/api/common/extHostNotebookDocument.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ export class ExtHostNotebookDocument extends Disposable {
277277
const edit: IWorkspaceCellEditDto = {
278278
_type: WorkspaceEditType.Cell,
279279
metadata: undefined,
280-
notebookMetadata: this._metadata,
280+
edit: { editType: CellEditType.DocumentMetadata, metadata: this._metadata },
281281
resource: this.uri,
282282
notebookVersionId: this.notebookDocument.version,
283283
};

src/vs/workbench/api/common/extHostNotebookEditor.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Emitter, Event } from 'vs/base/common/event';
88
import { Disposable } from 'vs/base/common/lifecycle';
99
import { CellKind, MainThreadNotebookShape } from 'vs/workbench/api/common/extHost.protocol';
1010
import * as extHostTypes from 'vs/workbench/api/common/extHostTypes';
11-
import { addIdToOutput, CellEditType, ICellEditOperation, ICellReplaceEdit, INotebookEditData, NotebookDocumentMetadata, notebookDocumentMetadataDefaults } from 'vs/workbench/contrib/notebook/common/notebookCommon';
11+
import { addIdToOutput, CellEditType, ICellEditOperation, ICellReplaceEdit, INotebookEditData, notebookDocumentMetadataDefaults } from 'vs/workbench/contrib/notebook/common/notebookCommon';
1212
import * as vscode from 'vscode';
1313
import { ExtHostNotebookDocument } from './extHostNotebookDocument';
1414

@@ -18,7 +18,6 @@ class NotebookEditorCellEditBuilder implements vscode.NotebookEditorEdit {
1818

1919
private _finalized: boolean = false;
2020
private _collectedEdits: ICellEditOperation[] = [];
21-
private _newNotebookDocumentMetadata?: NotebookDocumentMetadata;
2221

2322
constructor(documentVersionId: number) {
2423
this._documentVersionId = documentVersionId;
@@ -28,8 +27,7 @@ class NotebookEditorCellEditBuilder implements vscode.NotebookEditorEdit {
2827
this._finalized = true;
2928
return {
3029
documentVersionId: this._documentVersionId,
31-
cellEdits: this._collectedEdits,
32-
newMetadata: this._newNotebookDocumentMetadata
30+
cellEdits: this._collectedEdits
3331
};
3432
}
3533

@@ -41,7 +39,10 @@ class NotebookEditorCellEditBuilder implements vscode.NotebookEditorEdit {
4139

4240
replaceNotebookMetadata(value: vscode.NotebookDocumentMetadata): void {
4341
this._throwIfFinalized();
44-
this._newNotebookDocumentMetadata = { ...notebookDocumentMetadataDefaults, ...value };
42+
this._collectedEdits.push({
43+
editType: CellEditType.DocumentMetadata,
44+
metadata: { ...notebookDocumentMetadataDefaults, ...value }
45+
});
4546
}
4647

4748
replaceCellMetadata(index: number, metadata: vscode.NotebookCellMetadata): void {
@@ -235,7 +236,7 @@ export class ExtHostNotebookEditor extends Disposable implements vscode.Notebook
235236
compressedEditsIndex++;
236237
}
237238

238-
return this._proxy.$tryApplyEdits(this._viewType, this.document.uri, editData.documentVersionId, compressedEdits, editData.newMetadata);
239+
return this._proxy.$tryApplyEdits(this._viewType, this.document.uri, editData.documentVersionId, compressedEdits);
239240
}
240241

241242
revealRange(range: vscode.NotebookCellRange, revealType?: extHostTypes.NotebookEditorRevealType) {

src/vs/workbench/contrib/bulkEdit/browser/bulkCellEdits.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@ import { URI } from 'vs/base/common/uri';
99
import { ResourceEdit } from 'vs/editor/browser/services/bulkEditService';
1010
import { WorkspaceEditMetadata } from 'vs/editor/common/modes';
1111
import { IProgress } from 'vs/platform/progress/common/progress';
12-
import { CellEditType, ICellEditOperation, NotebookDocumentMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon';
12+
import { ICellEditOperation } from 'vs/workbench/contrib/notebook/common/notebookCommon';
1313
import { INotebookEditorModelResolverService } from 'vs/workbench/contrib/notebook/common/notebookEditorModelResolverService';
1414
import { INotebookService } from 'vs/workbench/contrib/notebook/common/notebookService';
1515

1616
export class ResourceNotebookCellEdit extends ResourceEdit {
1717

1818
constructor(
1919
readonly resource: URI,
20-
readonly cellEdit?: ICellEditOperation,
21-
readonly notebookMetadata?: NotebookDocumentMetadata,
20+
readonly cellEdit: ICellEditOperation,
2221
readonly versionId?: number,
2322
readonly metadata?: WorkspaceEditMetadata
2423
) {
@@ -49,23 +48,8 @@ export class BulkCellEdits {
4948
// throw new Error(`Notebook '${first.resource}' has changed in the meantime`);
5049
// }
5150

52-
const edits: ICellEditOperation[] = [];
53-
let newMetadata: NotebookDocumentMetadata | undefined;
54-
for (let edit of group) {
55-
if (edit.cellEdit) {
56-
edits.push(edit.cellEdit);
57-
}
58-
newMetadata = edit.notebookMetadata ?? newMetadata;
59-
}
60-
61-
// set metadata
62-
if (newMetadata) {
63-
edits.push({
64-
editType: CellEditType.DocumentMetadata,
65-
metadata: newMetadata
66-
});
67-
}
6851
// apply edits
52+
const edits = group.map(entry => entry.cellEdit);
6953
this._notebookService.transformEditsOutputs(ref.object.notebook, edits);
7054
ref.object.notebook.applyEdit(ref.object.notebook.versionId, edits, true);
7155
ref.dispose();

src/vs/workbench/contrib/notebook/common/notebookCommon.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,6 @@ export type ICellEditOperation = ICellReplaceEdit | ICellOutputEdit | ICellMetad
466466
export interface INotebookEditData {
467467
documentVersionId: number;
468468
cellEdits: ICellEditOperation[];
469-
newMetadata?: NotebookDocumentMetadata;
470469
}
471470

472471
export interface NotebookDataDto {

0 commit comments

Comments
 (0)