提交 905b76e2 编写于 作者: B Benjamin Pasero

💄

上级 60ec264e
......@@ -19,12 +19,18 @@ export class ResourceEditorModel extends BaseTextEditorModel {
@IModelService modelService: IModelService
) {
super(modelService, modeService, resource);
// TODO@Joao: force this class to dispose the underlying model
this.createdEditorModel = true;
}
isReadonly(): boolean {
return true;
}
dispose(): void {
// TODO@Joao: force this class to dispose the underlying model
if (this.textEditorModelHandle) {
this.modelService.destroyModel(this.textEditorModelHandle);
}
super.dispose();
}
}
\ No newline at end of file
......@@ -15,10 +15,9 @@ import { IDisposable } from 'vs/base/common/lifecycle';
* The base text editor model leverages the code editor model. This class is only intended to be subclassed and not instantiated.
*/
export abstract class BaseTextEditorModel extends EditorModel implements ITextEditorModel {
protected textEditorModelHandle: URI | null;
private createdEditorModel: boolean;
protected createdEditorModel: boolean;
private textEditorModelHandle: URI | null;
private modelDisposeListener: IDisposable | null;
constructor(
......@@ -128,11 +127,11 @@ export abstract class BaseTextEditorModel extends EditorModel implements ITextEd
createSnapshot(this: IResolvedTextEditorModel): ITextSnapshot;
createSnapshot(this: ITextEditorModel): ITextSnapshot | null;
createSnapshot(): ITextSnapshot | null {
if (this.isResolved()) {
return this.textEditorModel.createSnapshot(true /* preserve BOM */);
if (!this.textEditorModel) {
return null;
}
return null;
return this.textEditorModel.createSnapshot(true /* preserve BOM */);
}
isResolved(): this is IResolvedTextEditorModel {
......
......@@ -11,7 +11,7 @@ import { Event, Emitter } from 'vs/base/common/event';
import * as platform from 'vs/base/common/platform';
import { IWindowsService } from 'vs/platform/windows/common/windows';
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
import { IResult, ITextFileOperationResult, ITextFileService, ITextFileStreamContent, IAutoSaveConfiguration, AutoSaveMode, SaveReason, ITextFileEditorModelManager, ITextFileEditorModel, ModelState, ISaveOptions, AutoSaveContext, IWillMoveEvent, ITextFileContent, IResourceEncodings, IReadTextFileOptions, IWriteTextFileOptions, toBufferOrReadable, TextFileOperationError, TextFileOperationResult, isResolvedTextEditorModel } from 'vs/workbench/services/textfile/common/textfiles';
import { IResult, ITextFileOperationResult, ITextFileService, ITextFileStreamContent, IAutoSaveConfiguration, AutoSaveMode, SaveReason, ITextFileEditorModelManager, ITextFileEditorModel, ModelState, ISaveOptions, AutoSaveContext, IWillMoveEvent, ITextFileContent, IResourceEncodings, IReadTextFileOptions, IWriteTextFileOptions, toBufferOrReadable, TextFileOperationError, TextFileOperationResult } from 'vs/workbench/services/textfile/common/textfiles';
import { ConfirmResult, IRevertOptions } from 'vs/workbench/common/editor';
import { ILifecycleService, ShutdownReason, LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
......@@ -854,7 +854,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer
// take over encoding, mode and model value from source model
targetModel.updatePreferredEncoding(sourceModel.getEncoding());
if (isResolvedTextEditorModel(sourceModel) && isResolvedTextEditorModel(targetModel)) {
if (sourceModel.isResolved() && targetModel.isResolved()) {
this.modelService.updateModel(targetModel.textEditorModel, createTextBufferFactoryFromSnapshot(sourceModel.createSnapshot()));
const language = sourceModel.textEditorModel.getLanguageIdentifier();
......
......@@ -9,7 +9,7 @@ import { IDisposable } from 'vs/base/common/lifecycle';
import { IEncodingSupport, ConfirmResult, IRevertOptions } from 'vs/workbench/common/editor';
import { IBaseStatWithMetadata, IFileStatWithMetadata, IReadFileOptions, IWriteFileOptions, FileOperationError, FileOperationResult } from 'vs/platform/files/common/files';
import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { ITextEditorModel, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService';
import { ITextEditorModel } from 'vs/editor/common/services/resolverService';
import { ITextBufferFactory, ITextModel, ITextSnapshot } from 'vs/editor/common/model';
import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
import { VSBuffer, VSBufferReadable } from 'vs/base/common/buffer';
......@@ -476,12 +476,6 @@ export interface IResolvedTextFileEditorModel extends ITextFileEditorModel {
createSnapshot(): ITextSnapshot;
}
export function isResolvedTextEditorModel(model: ITextEditorModel): model is IResolvedTextEditorModel;
export function isResolvedTextEditorModel(model: ITextFileEditorModel): model is IResolvedTextFileEditorModel;
export function isResolvedTextEditorModel(model: ITextEditorModel | ITextFileEditorModel): model is IResolvedTextEditorModel | IResolvedTextFileEditorModel {
return !!model.textEditorModel;
}
export interface IWillMoveEvent {
oldResource: URI;
newResource: URI;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册