@@ -22,7 +22,7 @@ import { ICommandActionTitle } from 'vs/platform/action/common/action';
22
22
import { DEFAULT_EDITOR_ASSOCIATION } from 'vs/workbench/common/editor' ;
23
23
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry' ;
24
24
import { KeyCode , KeyMod } from 'vs/base/common/keyCodes' ;
25
- import { CellEditType , NOTEBOOK_DIFF_EDITOR_ID } from 'vs/workbench/contrib/notebook/common/notebookCommon' ;
25
+ import { CellEditType , ICellEditOperation , NOTEBOOK_DIFF_EDITOR_ID } from 'vs/workbench/contrib/notebook/common/notebookCommon' ;
26
26
import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration' ;
27
27
import { NotebookMultiTextDiffEditor } from 'vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor' ;
28
28
import { Codicon } from 'vs/base/common/codicons' ;
@@ -307,14 +307,24 @@ registerAction2(class extends Action2 {
307
307
return ;
308
308
}
309
309
310
+ if ( ! ( context . cell instanceof SideBySideDiffElementViewModel ) ) {
311
+ return ;
312
+ }
313
+
310
314
const original = context . cell . original ;
311
315
const modified = context . cell . modified ;
312
316
313
- if ( ! original || ! modified ) {
317
+ const modifiedCellIndex = context . cell . mainDocumentTextModel . cells . indexOf ( modified . textModel ) ;
318
+ if ( modifiedCellIndex === - 1 ) {
314
319
return ;
315
320
}
316
321
317
- modified . textModel . metadata = original . metadata ;
322
+ const rawEdits : ICellEditOperation [ ] = [ { editType : CellEditType . Metadata , index : modifiedCellIndex , metadata : original . metadata } ] ;
323
+ if ( context . cell . original . language && context . cell . modified . language !== context . cell . original . language ) {
324
+ rawEdits . push ( { editType : CellEditType . CellLanguage , index : modifiedCellIndex , language : context . cell . original . language } ) ;
325
+ }
326
+
327
+ context . cell . modifiedDocument . applyEdits ( rawEdits , true , undefined , ( ) => undefined , undefined , true ) ;
318
328
}
319
329
} ) ;
320
330
0 commit comments