debt - IActiveTextEditorModel => IResolvedTextEditorModel

This commit is contained in:
Benjamin Pasero
2019-03-05 10:33:31 +01:00
parent 3d3450cc95
commit 3d9d4e18c3
5 changed files with 19 additions and 15 deletions
@@ -18,7 +18,7 @@ export interface ITextModelService {
* Provided a resource URI, it will return a model reference
* which should be disposed once not needed anymore.
*/
createModelReference(resource: URI): Promise<IReference<IActiveTextEditorModel>>;
createModelReference(resource: URI): Promise<IReference<IResolvedTextEditorModel>>;
/**
* Registers a specific `scheme` content provider.
@@ -49,6 +49,10 @@ export interface ITextEditorModel extends IEditorModel {
isReadonly(): boolean;
}
export interface IActiveTextEditorModel extends ITextEditorModel {
export interface IResolvedTextEditorModel extends ITextEditorModel {
/**
* Same as ITextEditorModel#textEditorModel, but never null.
*/
readonly textEditorModel: ITextModel;
}
@@ -22,7 +22,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon';
import { ITextModel } from 'vs/editor/common/model';
import { TextEdit, WorkspaceEdit, isResourceTextEdit } from 'vs/editor/common/modes';
import { IModelService } from 'vs/editor/common/services/modelService';
import { IActiveTextEditorModel, ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService';
import { IResolvedTextEditorModel, ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService';
import { ITextResourceConfigurationService, ITextResourcePropertiesService } from 'vs/editor/common/services/resourceConfiguration';
import { CommandsRegistry, ICommand, ICommandEvent, ICommandHandler, ICommandService } from 'vs/platform/commands/common/commands';
import { IConfigurationChangeEvent, IConfigurationData, IConfigurationOverrides, IConfigurationService } from 'vs/platform/configuration/common/configuration';
@@ -44,7 +44,7 @@ import { IWorkspace, IWorkspaceContextService, IWorkspaceFolder, IWorkspaceFolde
import { ISingleFolderWorkspaceIdentifier, IWorkspaceIdentifier } from 'vs/platform/workspaces/common/workspaces';
import { IAccessibilityService, AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';
export class SimpleModel implements IActiveTextEditorModel {
export class SimpleModel implements IResolvedTextEditorModel {
private model: ITextModel;
private readonly _onDispose: Emitter<void>;
@@ -98,7 +98,7 @@ export class SimpleEditorModelResolverService implements ITextModelService {
this.editor = editor;
}
public createModelReference(resource: URI): Promise<IReference<IActiveTextEditorModel>> {
public createModelReference(resource: URI): Promise<IReference<IResolvedTextEditorModel>> {
let model: ITextModel | null = withTypedEditor(this.editor,
(editor) => this.findModel(editor, resource),
(diffEditor) => this.findModel(diffEditor.getOriginalEditor(), resource) || this.findModel(diffEditor.getModifiedEditor(), resource)
@@ -6,7 +6,7 @@
import { ITextModel, ITextBufferFactory } from 'vs/editor/common/model';
import { EditorModel } from 'vs/workbench/common/editor';
import { URI } from 'vs/base/common/uri';
import { ITextEditorModel, IActiveTextEditorModel } from 'vs/editor/common/services/resolverService';
import { ITextEditorModel, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService';
import { IModeService, ILanguageSelection } from 'vs/editor/common/services/modeService';
import { IModelService } from 'vs/editor/common/services/modelService';
import { IDisposable } from 'vs/base/common/lifecycle';
@@ -135,7 +135,7 @@ export abstract class BaseTextEditorModel extends EditorModel implements ITextEd
return null;
}
isResolved(): this is IActiveTextEditorModel {
isResolved(): this is IResolvedTextEditorModel {
return !!this.textEditorModelHandle;
}
@@ -13,7 +13,7 @@ import { Range } from 'vs/editor/common/core/range';
import { EndOfLineSequence, IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model';
import { isResourceFileEdit, isResourceTextEdit, ResourceFileEdit, ResourceTextEdit, WorkspaceEdit } from 'vs/editor/common/modes';
import { IModelService } from 'vs/editor/common/services/modelService';
import { ITextModelService, IActiveTextEditorModel } from 'vs/editor/common/services/resolverService';
import { ITextModelService, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService';
import { localize } from 'vs/nls';
import { IFileService } from 'vs/platform/files/common/files';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
@@ -53,7 +53,7 @@ class ModelEditTask implements IDisposable {
private _expectedModelVersionId: number | undefined;
protected _newEol: EndOfLineSequence;
constructor(private readonly _modelReference: IReference<IActiveTextEditorModel>) {
constructor(private readonly _modelReference: IReference<IResolvedTextEditorModel>) {
this._model = this._modelReference.object.textEditorModel;
this._edits = [];
}
@@ -115,7 +115,7 @@ class EditorEditTask extends ModelEditTask {
private _editor: ICodeEditor;
constructor(modelReference: IReference<IActiveTextEditorModel>, editor: ICodeEditor) {
constructor(modelReference: IReference<IResolvedTextEditorModel>, editor: ICodeEditor) {
super(modelReference);
this._editor = editor;
}
@@ -17,7 +17,7 @@ import { Range } from 'vs/editor/common/core/range';
import { Selection } from 'vs/editor/common/core/selection';
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
import { IFileService } from 'vs/platform/files/common/files';
import { ITextModelService, IActiveTextEditorModel } from 'vs/editor/common/services/resolverService';
import { ITextModelService, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService';
import { IJSONEditingService, IJSONValue, JSONEditingError, JSONEditingErrorCode } from 'vs/workbench/services/configuration/common/jsonEditing';
import { ITextModel } from 'vs/editor/common/model';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
@@ -84,7 +84,7 @@ export class JSONEditingService implements IJSONEditingService {
return setProperty(model.getValue(), [key], value, { tabSize, insertSpaces, eol });
}
private async resolveModelReference(resource: URI): Promise<IReference<IActiveTextEditorModel>> {
private async resolveModelReference(resource: URI): Promise<IReference<IResolvedTextEditorModel>> {
const exists = await this.fileService.existsFile(resource);
if (!exists) {
await this.fileService.updateContent(resource, '{}', { encoding: encoding.UTF8 });
@@ -98,18 +98,18 @@ export class JSONEditingService implements IJSONEditingService {
return parseErrors.length > 0;
}
private resolveAndValidate(resource: URI, checkDirty: boolean): Promise<IReference<IActiveTextEditorModel>> {
private resolveAndValidate(resource: URI, checkDirty: boolean): Promise<IReference<IResolvedTextEditorModel>> {
return this.resolveModelReference(resource)
.then(reference => {
const model = reference.object.textEditorModel;
if (this.hasParseErrors(model)) {
return this.reject<IReference<IActiveTextEditorModel>>(JSONEditingErrorCode.ERROR_INVALID_FILE);
return this.reject<IReference<IResolvedTextEditorModel>>(JSONEditingErrorCode.ERROR_INVALID_FILE);
}
// Target cannot be dirty if not writing into buffer
if (checkDirty && this.textFileService.isDirty(resource)) {
return this.reject<IReference<IActiveTextEditorModel>>(JSONEditingErrorCode.ERROR_FILE_DIRTY);
return this.reject<IReference<IResolvedTextEditorModel>>(JSONEditingErrorCode.ERROR_FILE_DIRTY);
}
return reference;
});