Skip to content

Commit 9c91f67

Browse files
authored
Merge pull request microsoft#185811 from microsoft/aamunger/revertUntitledNotebook
dispose editor input if an untitled model is reverted
2 parents 6f130e6 + d9ea96c commit 9c91f67

File tree

4 files changed

+6
-2
lines changed

4 files changed

+6
-2
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,7 @@ export interface INotebookEditorModel extends IEditorModel {
792792
readonly onDidSave: Event<IWorkingCopySaveEvent>;
793793
readonly onDidChangeOrphaned: Event<void>;
794794
readonly onDidChangeReadonly: Event<void>;
795+
readonly onDidRevertUntitled: Event<void>;
795796
readonly resource: URI;
796797
readonly viewType: string;
797798
readonly notebook: INotebookTextModel | undefined;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ export class NotebookEditorInput extends AbstractResourceEditorInput {
290290
}
291291
this._register(this._editorModelReference.object.onDidChangeDirty(() => this._onDidChangeDirty.fire()));
292292
this._register(this._editorModelReference.object.onDidChangeReadonly(() => this._onDidChangeCapabilities.fire()));
293+
this._register(this._editorModelReference.object.onDidRevertUntitled(() => this.dispose()));
293294
if (this._editorModelReference.object.isDirty()) {
294295
this._onDidChangeDirty.fire();
295296
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/no
1919
import { ICellDto2, INotebookEditorModel, INotebookLoadOptions, IResolvedNotebookEditorModel, NotebookCellsChangeType, NotebookData } from 'vs/workbench/contrib/notebook/common/notebookCommon';
2020
import { INotebookSerializer, INotebookService, SimpleNotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookService';
2121
import { IFilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService';
22-
import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle';
2322
import { IFileWorkingCopyManager } from 'vs/workbench/services/workingCopy/common/fileWorkingCopyManager';
2423
import { IStoredFileWorkingCopy, IStoredFileWorkingCopyModel, IStoredFileWorkingCopyModelContentChangedEvent, IStoredFileWorkingCopyModelFactory, IStoredFileWorkingCopySaveEvent, StoredFileWorkingCopyState } from 'vs/workbench/services/workingCopy/common/storedFileWorkingCopy';
2524
import { IUntitledFileWorkingCopy, IUntitledFileWorkingCopyModel, IUntitledFileWorkingCopyModelContentChangedEvent, IUntitledFileWorkingCopyModelFactory } from 'vs/workbench/services/workingCopy/common/untitledFileWorkingCopy';
@@ -33,11 +32,13 @@ export class SimpleNotebookEditorModel extends EditorModel implements INotebookE
3332
private readonly _onDidSave = this._register(new Emitter<IStoredFileWorkingCopySaveEvent>());
3433
private readonly _onDidChangeOrphaned = this._register(new Emitter<void>());
3534
private readonly _onDidChangeReadonly = this._register(new Emitter<void>());
35+
private readonly _onDidRevertUntitled = this._register(new Emitter<void>());
3636

3737
readonly onDidChangeDirty: Event<void> = this._onDidChangeDirty.event;
3838
readonly onDidSave: Event<IStoredFileWorkingCopySaveEvent> = this._onDidSave.event;
3939
readonly onDidChangeOrphaned: Event<void> = this._onDidChangeOrphaned.event;
4040
readonly onDidChangeReadonly: Event<void> = this._onDidChangeReadonly.event;
41+
readonly onDidRevertUntitled: Event<void> = this._onDidRevertUntitled.event;
4142

4243
private _workingCopy?: IStoredFileWorkingCopy<NotebookFileWorkingCopyModel> | IUntitledFileWorkingCopy<NotebookFileWorkingCopyModel>;
4344
private readonly _workingCopyListeners = this._register(new DisposableStore());
@@ -48,7 +49,6 @@ export class SimpleNotebookEditorModel extends EditorModel implements INotebookE
4849
private readonly _hasAssociatedFilePath: boolean,
4950
readonly viewType: string,
5051
private readonly _workingCopyManager: IFileWorkingCopyManager<NotebookFileWorkingCopyModel, NotebookFileWorkingCopyModel>,
51-
@ILifecycleService lifecycleService: ILifecycleService,
5252
@IFilesConfigurationService private readonly _filesConfigurationService: IFilesConfigurationService
5353
) {
5454
super();
@@ -119,6 +119,7 @@ export class SimpleNotebookEditorModel extends EditorModel implements INotebookE
119119
} else {
120120
this._workingCopy = await this._workingCopyManager.resolve({ untitledResource: this.resource, isScratchpad: this.scratchPad });
121121
}
122+
this._workingCopy.onDidRevert(() => this._onDidRevertUntitled.fire());
122123
} else {
123124
this._workingCopy = await this._workingCopyManager.resolve(this.resource, options?.forceReadFromFile ? { reload: { async: false, force: true } } : undefined);
124125
this._workingCopyListeners.add(this._workingCopy.onDidSave(e => this._onDidSave.fire(e)));

src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export class NotebookEditorTestModel extends EditorModel implements INotebookEdi
8787

8888
readonly onDidChangeOrphaned = Event.None;
8989
readonly onDidChangeReadonly = Event.None;
90+
readonly onDidRevertUntitled = Event.None;
9091

9192
private readonly _onDidChangeContent = this._register(new Emitter<void>());
9293
readonly onDidChangeContent: Event<void> = this._onDidChangeContent.event;

0 commit comments

Comments
 (0)