Path: blob/main/src/vs/workbench/common/editor/diffEditorModel.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { EditorModel } from './editorModel.js';6import { IResolvableEditorModel } from '../../../platform/editor/common/editor.js';78/**9* The base editor model for the diff editor. It is made up of two editor models, the original version10* and the modified version.11*/12export class DiffEditorModel extends EditorModel {1314protected readonly _originalModel: IResolvableEditorModel | undefined;15get originalModel(): IResolvableEditorModel | undefined { return this._originalModel; }1617protected readonly _modifiedModel: IResolvableEditorModel | undefined;18get modifiedModel(): IResolvableEditorModel | undefined { return this._modifiedModel; }1920constructor(originalModel: IResolvableEditorModel | undefined, modifiedModel: IResolvableEditorModel | undefined) {21super();2223this._originalModel = originalModel;24this._modifiedModel = modifiedModel;25}2627override async resolve(): Promise<void> {28await Promise.all([29this._originalModel?.resolve(),30this._modifiedModel?.resolve()31]);32}3334override isResolved(): boolean {35return !!(this._originalModel?.isResolved() && this._modifiedModel?.isResolved());36}3738override dispose(): void {3940// Do not propagate the dispose() call to the two models inside. We never created the two models41// (original and modified) so we can not dispose them without sideeffects. Rather rely on the42// models getting disposed when their related inputs get disposed from the diffEditorInput.4344super.dispose();45}46}474849