mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-03 16:15:28 +01:00
debt - IActiveTextEditorModel => IResolvedTextEditorModel
This commit is contained in:
@@ -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;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user