Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/common/editor/diffEditorModel.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { EditorModel } from './editorModel.js';
7
import { IResolvableEditorModel } from '../../../platform/editor/common/editor.js';
8
9
/**
10
* The base editor model for the diff editor. It is made up of two editor models, the original version
11
* and the modified version.
12
*/
13
export class DiffEditorModel extends EditorModel {
14
15
protected readonly _originalModel: IResolvableEditorModel | undefined;
16
get originalModel(): IResolvableEditorModel | undefined { return this._originalModel; }
17
18
protected readonly _modifiedModel: IResolvableEditorModel | undefined;
19
get modifiedModel(): IResolvableEditorModel | undefined { return this._modifiedModel; }
20
21
constructor(originalModel: IResolvableEditorModel | undefined, modifiedModel: IResolvableEditorModel | undefined) {
22
super();
23
24
this._originalModel = originalModel;
25
this._modifiedModel = modifiedModel;
26
}
27
28
override async resolve(): Promise<void> {
29
await Promise.all([
30
this._originalModel?.resolve(),
31
this._modifiedModel?.resolve()
32
]);
33
}
34
35
override isResolved(): boolean {
36
return !!(this._originalModel?.isResolved() && this._modifiedModel?.isResolved());
37
}
38
39
override dispose(): void {
40
41
// Do not propagate the dispose() call to the two models inside. We never created the two models
42
// (original and modified) so we can not dispose them without sideeffects. Rather rely on the
43
// models getting disposed when their related inputs get disposed from the diffEditorInput.
44
45
super.dispose();
46
}
47
}
48
49