@@ -263,14 +263,25 @@ const apiTestContentProvider: vscode.NotebookContentProvider = {
263
263
const editor = await vscode . window . showNotebookDocument ( notebook ) ;
264
264
265
265
const notebookChangeEvent = asPromise < vscode . NotebookDocumentChangeEvent > ( vscode . workspace . onDidChangeNotebookDocument ) ;
266
- const version = editor . document . version ;
267
- await editor . edit ( editBuilder => {
268
- editBuilder . replaceCells ( 1 , 0 , [ { kind : vscode . NotebookCellKind . Code , languageId : 'javascript' , value : 'test 2' , outputs : [ ] , metadata : undefined } ] ) ;
269
- editBuilder . replaceCellMetadata ( 0 , { inputCollapsed : false } ) ;
270
- } ) ;
271
-
266
+ const version = editor . notebook . version ;
267
+ const edit = new vscode . WorkspaceEdit ( ) ;
268
+ const cellEdit = vscode . NotebookEdit . replaceCells ( new vscode . NotebookRange ( 1 , 0 ) , [ { kind : vscode . NotebookCellKind . Code , languageId : 'javascript' , value : 'test 2' , outputs : [ ] , metadata : undefined } ] ) ;
269
+ const metdataEdit = vscode . NotebookEdit . updateNotebookMetadata ( { ... notebook . metadata , custom : { ... ( notebook . metadata . custom || { } ) , extraNotebookMetadata : true } } ) ;
270
+ edit . set ( notebook . uri , [ cellEdit , metdataEdit ] ) ;
271
+ await vscode . workspace . applyEdit ( edit ) ;
272
272
await notebookChangeEvent ;
273
- assert . strictEqual ( version + 1 , editor . document . version ) ;
273
+
274
+ const notebookChangeEvent2 = asPromise < vscode . NotebookDocumentChangeEvent > ( vscode . workspace . onDidChangeNotebookDocument ) ;
275
+ const edit2 = new vscode . WorkspaceEdit ( ) ;
276
+ const cellMetadataEdit = vscode . NotebookEdit . updateCellMetadata ( 0 , { extraCellMetadata : true } ) ;
277
+ edit2 . set ( notebook . uri , [ cellMetadataEdit ] ) ;
278
+ await vscode . workspace . applyEdit ( edit2 ) ;
279
+ await notebookChangeEvent2 ;
280
+
281
+ assert . strictEqual ( version + 2 , editor . notebook . version ) ;
282
+ const cell = editor . notebook . cellAt ( 0 ) ;
283
+ assert . ok ( editor . notebook . metadata . custom . extraNotebookMetadata , `Test metadata not found` ) ;
284
+ assert . ok ( cell . metadata . extraCellMetadata , `Test cell metdata not found` ) ;
274
285
} ) ;
275
286
276
287
test ( 'edit API batch edits undo/redo' , async function ( ) {
0 commit comments