Skip to content

Commit 50680d6

Browse files
authored
Fix updating notebook metadata though editor api (microsoft#131681) (microsoft#131934)
`_isDocumentMetadataChangeTransient` currently seems to return true for every metadata object except `{ trusted: boolean }`. This causes all metadata updates to be considered transient, which means that the notebook is never marked dirty This PR deletes the old function so that we use `triggerDirtyChange` to track when the document becomes dirty instead
1 parent 44a4b19 commit 50680d6

File tree

1 file changed

+1
-12
lines changed

1 file changed

+1
-12
lines changed

src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -658,17 +658,6 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
658658
this._notebookSpecificAlternativeId = Number(newAlternativeVersionId.substr(0, newAlternativeVersionId.indexOf('_')));
659659
}
660660

661-
private _isDocumentMetadataChangeTransient(a: NotebookDocumentMetadata, b: NotebookDocumentMetadata) {
662-
const keys = new Set([...Object.keys(a || {}), ...Object.keys(b || {})]);
663-
for (let key of keys) {
664-
if (key !== 'trusted') {
665-
return true;
666-
}
667-
}
668-
669-
return false;
670-
}
671-
672661
private _updateNotebookMetadata(metadata: NotebookDocumentMetadata, computeUndoRedo: boolean) {
673662
const oldMetadata = this.metadata;
674663
const triggerDirtyChange = this._isDocumentMetadataChanged(this.metadata, metadata);
@@ -694,7 +683,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
694683

695684
this.metadata = metadata;
696685
this._pauseableEmitter.fire({
697-
rawEvents: [{ kind: NotebookCellsChangeType.ChangeDocumentMetadata, metadata: this.metadata, transient: this._isDocumentMetadataChangeTransient(oldMetadata, metadata) }],
686+
rawEvents: [{ kind: NotebookCellsChangeType.ChangeDocumentMetadata, metadata: this.metadata, transient: !triggerDirtyChange }],
698687
versionId: this.versionId,
699688
synchronous: true,
700689
endSelectionState: undefined

0 commit comments

Comments
 (0)