From 41eabcfcd694895aab9b8f87cf3159485db3cfba Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 16 Jan 2020 12:47:46 +0100 Subject: [PATCH] text files - rename models => files --- .../api/browser/mainThreadDocuments.ts | 4 +-- src/vs/workbench/browser/dnd.ts | 2 +- .../browser/parts/editor/editorStatus.ts | 2 +- .../electron-browser/backupOnShutdown.test.ts | 12 ++++---- .../electron-browser/backupRestorer.test.ts | 6 ++-- .../electron-browser/backupTracker.test.ts | 4 +-- .../experiments/common/experimentService.ts | 2 +- .../browser/editors/fileEditorTracker.ts | 10 +++---- .../editors/textFileSaveErrorHandler.ts | 4 +-- .../contrib/files/browser/fileCommands.ts | 2 +- .../files/common/editors/fileEditorInput.ts | 28 +++++++++---------- .../files/test/browser/editorAutoSave.test.ts | 4 +-- .../test/browser/fileEditorTracker.test.ts | 8 +++--- .../contrib/search/browser/replaceService.ts | 2 +- .../browser/languageSurveys.contribution.ts | 2 +- .../browser/telemetry.contribution.ts | 4 +-- .../browser/browserTextFileService.ts | 2 +- .../textfile/browser/textFileService.ts | 18 ++++++------ .../services/textfile/common/textfiles.ts | 2 +- .../textfile/test/textFileEditorModel.test.ts | 2 +- .../textfile/test/textFileService.io.test.ts | 2 +- .../textfile/test/textFileService.test.ts | 22 +++++++-------- .../common/textModelResolverService.ts | 4 +-- .../test/textModelResolverService.test.ts | 4 +-- .../api/mainThreadDocumentsAndEditors.test.ts | 2 +- .../api/mainThreadEditors.test.ts | 2 +- .../api/mainThreadSaveParticipant.test.ts | 2 +- 27 files changed, 79 insertions(+), 79 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadDocuments.ts b/src/vs/workbench/api/browser/mainThreadDocuments.ts index dd345661531..32c716d6282 100644 --- a/src/vs/workbench/api/browser/mainThreadDocuments.ts +++ b/src/vs/workbench/api/browser/mainThreadDocuments.ts @@ -98,12 +98,12 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { this._toDispose.add(this._modelReferenceCollection); this._toDispose.add(modelService.onModelModeChanged(this._onModelModeChanged, this)); - this._toDispose.add(textFileService.models.onDidSave(e => { + this._toDispose.add(textFileService.files.onDidSave(e => { if (this._shouldHandleFileEvent(e.model.resource)) { this._proxy.$acceptModelSaved(e.model.resource); } })); - this._toDispose.add(textFileService.models.onDidChangeDirty(m => { + this._toDispose.add(textFileService.files.onDidChangeDirty(m => { if (this._shouldHandleFileEvent(m.resource)) { this._proxy.$acceptDirtyStateChanged(m.resource, m.isDirty()); } diff --git a/src/vs/workbench/browser/dnd.ts b/src/vs/workbench/browser/dnd.ts index 0597360f5ec..f8714d2deab 100644 --- a/src/vs/workbench/browser/dnd.ts +++ b/src/vs/workbench/browser/dnd.ts @@ -377,7 +377,7 @@ export function fillResourceDataTransfers(accessor: ServicesAccessor, resources: encoding = model.getEncoding(); mode = model.getMode(); } else { - const model = textFileService.models.get(file.resource); + const model = textFileService.files.get(file.resource); if (model) { encoding = model.getEncoding(); mode = model.getMode(); diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 341267a99bf..b78813379e3 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -312,7 +312,7 @@ export class EditorStatus extends Disposable implements IWorkbenchContribution { private registerListeners(): void { this._register(this.editorService.onDidActiveEditorChange(() => this.updateStatusBar())); this._register(this.textFileService.untitled.onDidChangeEncoding(r => this.onResourceEncodingChange(r))); - this._register(this.textFileService.models.onDidChangeEncoding(m => this.onResourceEncodingChange((m.resource)))); + this._register(this.textFileService.files.onDidChangeEncoding(m => this.onResourceEncodingChange((m.resource)))); this._register(TabFocus.onDidChangeTabFocus(e => this.onTabFocusModeChange())); } diff --git a/src/vs/workbench/contrib/backup/test/electron-browser/backupOnShutdown.test.ts b/src/vs/workbench/contrib/backup/test/electron-browser/backupOnShutdown.test.ts index c9ce22aebb8..fcc34430570 100644 --- a/src/vs/workbench/contrib/backup/test/electron-browser/backupOnShutdown.test.ts +++ b/src/vs/workbench/contrib/backup/test/electron-browser/backupOnShutdown.test.ts @@ -66,13 +66,13 @@ suite('BackupOnShutdown', () => { if (model) { model.dispose(); } - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); backupOnShutdown.dispose(); }); test('confirm onWillShutdown - no veto', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); const event = new BeforeShutdownEventImpl(); accessor.lifecycleService.fireWillShutdown(event); @@ -87,7 +87,7 @@ suite('BackupOnShutdown', () => { test('confirm onWillShutdown - veto if user cancels', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); accessor.fileDialogService.setConfirmResult(ConfirmResult.CANCEL); @@ -102,7 +102,7 @@ suite('BackupOnShutdown', () => { test('confirm onWillShutdown - no veto and backups cleaned up if user does not want to save (hot.exit: off)', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); accessor.fileDialogService.setConfirmResult(ConfirmResult.DONT_SAVE); accessor.filesConfigurationService.onFilesConfigurationChange({ files: { hotExit: 'off' } }); @@ -127,7 +127,7 @@ suite('BackupOnShutdown', () => { test('confirm onWillShutdown - save (hot.exit: off)', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); accessor.fileDialogService.setConfirmResult(ConfirmResult.SAVE); accessor.filesConfigurationService.onFilesConfigurationChange({ files: { hotExit: 'off' } }); @@ -248,7 +248,7 @@ suite('BackupOnShutdown', () => { async function hotExitTest(this: any, setting: string, shutdownReason: ShutdownReason, multipleWindows: boolean, workspace: boolean, shouldVeto: boolean): Promise { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); // Set hot exit config accessor.filesConfigurationService.onFilesConfigurationChange({ files: { hotExit: setting } }); diff --git a/src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts b/src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts index f665b1d7c5e..601d4a4dcf0 100644 --- a/src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts +++ b/src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts @@ -84,7 +84,7 @@ suite('BackupRestorer', () => { dispose(disposables); disposables = []; - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); return pfs.rimraf(backupHome, pfs.RimRafMode.MOVE); }); @@ -137,11 +137,11 @@ suite('BackupRestorer', () => { model.dispose(); counter++; } else if (isEqual(resource, fooFile)) { - const model = await accessor.textFileService.models.get(resource!)?.load(); + const model = await accessor.textFileService.files.get(resource!)?.load(); assert.equal(model?.textEditorModel?.getValue(), 'fooFile'); counter++; } else { - const model = await accessor.textFileService.models.get(resource!)?.load(); + const model = await accessor.textFileService.files.get(resource!)?.load(); assert.equal(model?.textEditorModel?.getValue(), 'barFile'); counter++; } diff --git a/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts b/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts index 248401f1f72..2a2c6cafe24 100644 --- a/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts +++ b/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts @@ -90,7 +90,7 @@ suite('BackupTracker', () => { dispose(disposables); disposables = []; - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); return pfs.rimraf(backupHome, pfs.RimRafMode.MOVE); }); @@ -151,7 +151,7 @@ suite('BackupTracker', () => { const resource = toResource.call(this, '/path/index.txt'); await accessor.editorService.openEditor({ resource, options: { pinned: true } }); - const fileModel = accessor.textFileService.models.get(resource); + const fileModel = accessor.textFileService.files.get(resource); fileModel?.textEditorModel?.setValue('Super Good'); await accessor.backupFileService.joinBackupResource(); diff --git a/src/vs/workbench/contrib/experiments/common/experimentService.ts b/src/vs/workbench/contrib/experiments/common/experimentService.ts index 226b389f3f5..a1320015292 100644 --- a/src/vs/workbench/contrib/experiments/common/experimentService.ts +++ b/src/vs/workbench/contrib/experiments/common/experimentService.ts @@ -448,7 +448,7 @@ export class ExperimentService extends Disposable implements IExperimentService } }, 250)); - const onSaveHandler = this._register(this.textFileService.models.onDidSave(e => onModelsSavedWorker.work(e.model))); + const onSaveHandler = this._register(this.textFileService.files.onDidSave(e => onModelsSavedWorker.work(e.model))); return ExperimentState.Evaluating; }); } diff --git a/src/vs/workbench/contrib/files/browser/editors/fileEditorTracker.ts b/src/vs/workbench/contrib/files/browser/editors/fileEditorTracker.ts index 20b7a62eddc..29a108fb292 100644 --- a/src/vs/workbench/contrib/files/browser/editors/fileEditorTracker.ts +++ b/src/vs/workbench/contrib/files/browser/editors/fileEditorTracker.ts @@ -58,8 +58,8 @@ export class FileEditorTracker extends Disposable implements IWorkbenchContribut this._register(this.fileService.onFileChanges(e => this.onFileChanges(e))); // Ensure dirty text file and untitled models are always opened as editors - this._register(this.textFileService.models.onDidChangeDirty(m => this.ensureDirtyFilesAreOpenedWorker.work(m.resource))); - this._register(this.textFileService.models.onDidSaveError(m => this.ensureDirtyFilesAreOpenedWorker.work(m.resource))); + this._register(this.textFileService.files.onDidChangeDirty(m => this.ensureDirtyFilesAreOpenedWorker.work(m.resource))); + this._register(this.textFileService.files.onDidSaveError(m => this.ensureDirtyFilesAreOpenedWorker.work(m.resource))); this._register(this.textFileService.untitled.onDidChangeDirty(r => this.ensureDirtyFilesAreOpenedWorker.work(r))); // Out of workspace file watchers @@ -112,7 +112,7 @@ export class FileEditorTracker extends Disposable implements IWorkbenchContribut } let encoding: string | undefined = undefined; - const model = this.textFileService.models.get(resource); + const model = this.textFileService.files.get(resource); if (model) { encoding = model.getEncoding(); } @@ -283,7 +283,7 @@ export class FileEditorTracker extends Disposable implements IWorkbenchContribut return false; // resource must be dirty } - const model = this.textFileService.models.get(resource); + const model = this.textFileService.files.get(resource); if (model?.hasState(ModelState.PENDING_SAVE)) { return false; // resource must not be pending to save } @@ -362,7 +362,7 @@ export class FileEditorTracker extends Disposable implements IWorkbenchContribut return undefined; } - const model = this.textFileService.models.get(resource); + const model = this.textFileService.files.get(resource); if (!model) { return undefined; } diff --git a/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.ts b/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.ts index 02b32c67006..24c02a54156 100644 --- a/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.ts +++ b/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.ts @@ -71,8 +71,8 @@ export class TextFileSaveErrorHandler extends Disposable implements ISaveErrorHa } private registerListeners(): void { - this._register(this.textFileService.models.onDidSave(e => this.onFileSavedOrReverted(e.model.resource))); - this._register(this.textFileService.models.onDidRevert(m => this.onFileSavedOrReverted(m.resource))); + this._register(this.textFileService.files.onDidSave(e => this.onFileSavedOrReverted(e.model.resource))); + this._register(this.textFileService.files.onDidRevert(m => this.onFileSavedOrReverted(m.resource))); this._register(this.editorService.onDidActiveEditorChange(() => this.onActiveEditorChanged())); } diff --git a/src/vs/workbench/contrib/files/browser/fileCommands.ts b/src/vs/workbench/contrib/files/browser/fileCommands.ts index cf6c906c91d..210b8ef30a4 100644 --- a/src/vs/workbench/contrib/files/browser/fileCommands.ts +++ b/src/vs/workbench/contrib/files/browser/fileCommands.ts @@ -358,7 +358,7 @@ async function saveSelectedEditors(accessor: ServicesAccessor, options?: ISaveEd // Check that the resource of the model was not saved already if (resource && !editors.some(({ editor }) => isEqual(toResource(editor, { supportSideBySide: SideBySideEditor.MASTER }), resource))) { - const model = textFileService.models.get(resource); + const model = textFileService.files.get(resource); if (!model?.isReadonly()) { await textFileService.save(resource, options); } diff --git a/src/vs/workbench/contrib/files/common/editors/fileEditorInput.ts b/src/vs/workbench/contrib/files/common/editors/fileEditorInput.ts index e21bfa9fec3..7855e0f4382 100644 --- a/src/vs/workbench/contrib/files/common/editors/fileEditorInput.ts +++ b/src/vs/workbench/contrib/files/common/editors/fileEditorInput.ts @@ -70,15 +70,15 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput private registerListeners(): void { // Dirty changes - this._register(this.textFileService.models.onDidChangeDirty(m => this.onDirtyStateChange(m))); - this._register(this.textFileService.models.onDidSaveError(m => this.onDirtyStateChange(m))); - this._register(this.textFileService.models.onDidSave(e => this.onDirtyStateChange(e.model))); - this._register(this.textFileService.models.onDidRevert(m => this.onDirtyStateChange(m))); + this._register(this.textFileService.files.onDidChangeDirty(m => this.onDirtyStateChange(m))); + this._register(this.textFileService.files.onDidSaveError(m => this.onDirtyStateChange(m))); + this._register(this.textFileService.files.onDidSave(e => this.onDirtyStateChange(e.model))); + this._register(this.textFileService.files.onDidRevert(m => this.onDirtyStateChange(m))); // Label changes this._register(this.labelService.onDidChangeFormatters(() => FileEditorInput.MEMOIZER.clear())); this._register(this.fileService.onDidChangeFileSystemProviderRegistrations(() => FileEditorInput.MEMOIZER.clear())); - this._register(this.textFileService.models.onDidChangeOrphaned(model => this.onModelOrphanedChanged(model))); + this._register(this.textFileService.files.onDidChangeOrphaned(model => this.onModelOrphanedChanged(model))); } private onDirtyStateChange(model: ITextFileEditorModel): void { @@ -95,7 +95,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput } getEncoding(): string | undefined { - const textModel = this.textFileService.models.get(this.resource); + const textModel = this.textFileService.files.get(this.resource); if (textModel) { return textModel.getEncoding(); } @@ -110,7 +110,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput setEncoding(encoding: string, mode: EncodingMode): void { this.setPreferredEncoding(encoding); - const textModel = this.textFileService.models.get(this.resource); + const textModel = this.textFileService.files.get(this.resource); if (textModel) { textModel.setEncoding(encoding, mode); } @@ -128,7 +128,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput setMode(mode: string): void { this.setPreferredMode(mode); - const textModel = this.textFileService.models.get(this.resource); + const textModel = this.textFileService.files.get(this.resource); if (textModel) { textModel.setMode(mode); } @@ -212,7 +212,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput } private decorateLabel(label: string): string { - const model = this.textFileService.models.get(this.resource); + const model = this.textFileService.files.get(this.resource); if (model?.hasState(ModelState.ORPHAN)) { return localize('orphanedFile', "{0} (deleted)", label); @@ -226,13 +226,13 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput } isReadonly(): boolean { - const model = this.textFileService.models.get(this.resource); + const model = this.textFileService.files.get(this.resource); return model?.isReadonly() || this.fileService.hasCapability(this.resource, FileSystemProviderCapabilities.Readonly); } isDirty(): boolean { - const model = this.textFileService.models.get(this.resource); + const model = this.textFileService.files.get(this.resource); if (!model) { return false; } @@ -241,7 +241,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput } isSaving(): boolean { - const model = this.textFileService.models.get(this.resource); + const model = this.textFileService.files.get(this.resource); if (!model) { return false; } @@ -285,7 +285,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput // Resolve as text try { - await this.textFileService.models.loadOrCreate(this.resource, { + await this.textFileService.files.loadOrCreate(this.resource, { mode: this.preferredMode, encoding: this.preferredEncoding, reload: { async: true }, // trigger a reload of the model if it exists already but do not wait to show the model @@ -324,7 +324,7 @@ export class FileEditorInput extends TextEditorInput implements IFileEditorInput } isResolved(): boolean { - return !!this.textFileService.models.get(this.resource); + return !!this.textFileService.files.get(this.resource); } dispose(): void { diff --git a/src/vs/workbench/contrib/files/test/browser/editorAutoSave.test.ts b/src/vs/workbench/contrib/files/test/browser/editorAutoSave.test.ts index cf8f9e0ed82..63057f06a59 100644 --- a/src/vs/workbench/contrib/files/test/browser/editorAutoSave.test.ts +++ b/src/vs/workbench/contrib/files/test/browser/editorAutoSave.test.ts @@ -87,7 +87,7 @@ suite('EditorAutoSave', () => { const resource = toResource.call(this, '/path/index.txt'); - const model = await accessor.textFileService.models.loadOrCreate(resource) as IResolvedTextFileEditorModel; + const model = await accessor.textFileService.files.loadOrCreate(resource) as IResolvedTextFileEditorModel; model.textEditorModel.setValue('Super Good'); @@ -99,7 +99,7 @@ suite('EditorAutoSave', () => { part.dispose(); editorAutoSave.dispose(); - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); }); function awaitModelSaved(model: ITextFileEditorModel): Promise { diff --git a/src/vs/workbench/contrib/files/test/browser/fileEditorTracker.test.ts b/src/vs/workbench/contrib/files/test/browser/fileEditorTracker.test.ts index 9197c258b81..9c8046394a0 100644 --- a/src/vs/workbench/contrib/files/test/browser/fileEditorTracker.test.ts +++ b/src/vs/workbench/contrib/files/test/browser/fileEditorTracker.test.ts @@ -62,7 +62,7 @@ suite('Files - FileEditorTracker', () => { const resource = toResource.call(this, '/path/index.txt'); - const model = await accessor.textFileService.models.loadOrCreate(resource) as IResolvedTextFileEditorModel; + const model = await accessor.textFileService.files.loadOrCreate(resource) as IResolvedTextFileEditorModel; model.textEditorModel.setValue('Super Good'); assert.equal(snapshotToString(model.createSnapshot()!), 'Super Good'); @@ -77,7 +77,7 @@ suite('Files - FileEditorTracker', () => { assert.equal(snapshotToString(model.createSnapshot()!), 'Hello Html'); tracker.dispose(); - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); }); async function createTracker(): Promise<[EditorPart, ServiceAccessor, FileEditorTracker]> { @@ -108,7 +108,7 @@ suite('Files - FileEditorTracker', () => { assert.ok(!accessor.editorService.isOpen({ resource })); - const model = await accessor.textFileService.models.loadOrCreate(resource) as IResolvedTextFileEditorModel; + const model = await accessor.textFileService.files.loadOrCreate(resource) as IResolvedTextFileEditorModel; model.textEditorModel.setValue('Super Good'); @@ -117,7 +117,7 @@ suite('Files - FileEditorTracker', () => { part.dispose(); tracker.dispose(); - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); }); test('dirty untitled text file model opens as editor', async function () { diff --git a/src/vs/workbench/contrib/search/browser/replaceService.ts b/src/vs/workbench/contrib/search/browser/replaceService.ts index 8cab5f81de8..13a49276378 100644 --- a/src/vs/workbench/contrib/search/browser/replaceService.ts +++ b/src/vs/workbench/contrib/search/browser/replaceService.ts @@ -105,7 +105,7 @@ export class ReplaceService implements IReplaceService { await this.bulkEditorService.apply({ edits }, { progress }); return Promise.all(edits.map(e => { - const model = this.textFileService.models.get(e.resource); + const model = this.textFileService.files.get(e.resource); if (model) { return model.save(); } diff --git a/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts b/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts index e196f2c4ecd..08f28124a04 100644 --- a/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts +++ b/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts @@ -62,7 +62,7 @@ class LanguageSurvey extends Disposable { }); }, 250)); - this._register(textFileService.models.onDidSave(e => onModelsSavedWorker.work(e.model))); + this._register(textFileService.files.onDidSave(e => onModelsSavedWorker.work(e.model))); } const lastSessionDate = storageService.get(LAST_SESSION_DATE_KEY, StorageScope.GLOBAL, new Date(0).toDateString()); diff --git a/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts b/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts index a01ba225296..6f94e27d1a6 100644 --- a/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts +++ b/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts @@ -124,8 +124,8 @@ export class TelemetryContribution extends Disposable implements IWorkbenchContr this._register(configurationTelemetry(telemetryService, configurationService)); // Files Telemetry - this._register(textFileService.models.onDidLoad(e => this.onTextFileModelLoaded(e))); - this._register(textFileService.models.onDidSave(e => this.onTextFileModelSaved(e))); + this._register(textFileService.files.onDidLoad(e => this.onTextFileModelLoaded(e))); + this._register(textFileService.files.onDidSave(e => this.onTextFileModelSaved(e))); // Lifecycle this._register(lifecycleService.onShutdown(() => this.dispose())); diff --git a/src/vs/workbench/services/textfile/browser/browserTextFileService.ts b/src/vs/workbench/services/textfile/browser/browserTextFileService.ts index 3e64ab18e6e..c671d0dc643 100644 --- a/src/vs/workbench/services/textfile/browser/browserTextFileService.ts +++ b/src/vs/workbench/services/textfile/browser/browserTextFileService.ts @@ -24,7 +24,7 @@ export class BrowserTextFileService extends AbstractTextFileService { } protected onBeforeShutdown(reason: ShutdownReason): boolean { - if (this.models.getAll().some(model => model.hasState(ModelState.PENDING_SAVE))) { + if (this.files.getAll().some(model => model.hasState(ModelState.PENDING_SAVE))) { console.warn('Unload prevented: pending file saves'); return true; // files are pending to be saved: veto diff --git a/src/vs/workbench/services/textfile/browser/textFileService.ts b/src/vs/workbench/services/textfile/browser/textFileService.ts index 69b05c812e4..3102d410f66 100644 --- a/src/vs/workbench/services/textfile/browser/textFileService.ts +++ b/src/vs/workbench/services/textfile/browser/textFileService.ts @@ -54,7 +54,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex //#endregion - readonly models = this._register(this.instantiationService.createInstance(TextFileEditorModelManager)); + readonly files = this._register(this.instantiationService.createInstance(TextFileEditorModelManager)); private _untitled: IUntitledTextEditorModelManager; get untitled(): IUntitledTextEditorModelManager { @@ -159,7 +159,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex // it again to make sure it is up to date with the contents // we just wrote into the underlying resource by calling // revert() - const existingModel = this.models.get(resource); + const existingModel = this.files.get(resource); if (existingModel && !existingModel.isDisposed()) { await existingModel.revert(); } @@ -275,7 +275,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex // we know the file has changed on disk after the move and the // model might have still existed with the previous state. this // ensures we are not tracking a stale state. - const restoredModel = await this.models.loadOrCreate(modelToRestore.resource, { reload: { async: false }, encoding: modelToRestore.encoding, mode: modelToRestore.mode }); + const restoredModel = await this.files.loadOrCreate(modelToRestore.resource, { reload: { async: false }, encoding: modelToRestore.encoding, mode: modelToRestore.mode }); // restore previous dirty content if any and ensure to mark // the model as dirty @@ -324,7 +324,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex // File else { - const model = this.models.get(resource); + const model = this.files.get(resource); if (model) { // Save with options @@ -408,7 +408,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex return models; } - return this.models.getAll(arg1); + return this.files.getAll(arg1); } private getDirtyFileModels(resources?: URI | URI[]): ITextFileEditorModel[] { @@ -447,7 +447,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex // If the source is an existing text file model, we can directly // use that model to copy the contents to the target destination - const textFileModel = this.models.get(source); + const textFileModel = this.files.get(source); if (textFileModel && textFileModel.isResolved()) { success = await this.doSaveAsTextFile(textFileModel, source, target, options); } @@ -498,7 +498,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex // Prefer an existing model if it is already loaded for the given target resource let targetExists: boolean = false; - let targetModel = this.models.get(target); + let targetModel = this.files.get(target); if (targetModel?.isResolved()) { targetExists = true; } @@ -522,7 +522,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex } try { - targetModel = await this.models.loadOrCreate(target, { encoding: sourceModelEncoding, mode }); + targetModel = await this.files.loadOrCreate(target, { encoding: sourceModelEncoding, mode }); } catch (error) { // if the target already exists and was not created by us, it is possible // that we cannot load the target as text model if it is binary or too @@ -680,7 +680,7 @@ export abstract class AbstractTextFileService extends Disposable implements ITex isDirty(resource: URI): boolean { // Check for dirty file - if (this.models.getAll(resource).some(model => model.isDirty())) { + if (this.files.getAll(resource).some(model => model.isDirty())) { return true; } diff --git a/src/vs/workbench/services/textfile/common/textfiles.ts b/src/vs/workbench/services/textfile/common/textfiles.ts index 60d82cc654c..7d3516ec79d 100644 --- a/src/vs/workbench/services/textfile/common/textfiles.ts +++ b/src/vs/workbench/services/textfile/common/textfiles.ts @@ -37,7 +37,7 @@ export interface ITextFileService extends IDisposable { * Access to the manager of text file editor models providing further * methods to work with them. */ - readonly models: ITextFileEditorModelManager; + readonly files: ITextFileEditorModelManager; /** * Access to the manager of untitled text editor models providing further diff --git a/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts index 45c9082978b..2b62a47fe05 100644 --- a/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts @@ -47,7 +47,7 @@ suite('Files - TextFileEditorModel', () => { }); teardown(() => { - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); TextFileEditorModel.setSaveParticipant(null); // reset any set participant accessor.fileService.setContent(content); }); diff --git a/src/vs/workbench/services/textfile/test/textFileService.io.test.ts b/src/vs/workbench/services/textfile/test/textFileService.io.test.ts index a09cc6b3f8c..03402b14bf7 100644 --- a/src/vs/workbench/services/textfile/test/textFileService.io.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileService.io.test.ts @@ -92,7 +92,7 @@ suite('Files - TextFileService i/o', () => { }); teardown(async () => { - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); disposables.clear(); diff --git a/src/vs/workbench/services/textfile/test/textFileService.test.ts b/src/vs/workbench/services/textfile/test/textFileService.test.ts index c7af5c2b3c4..08acc95d9d0 100644 --- a/src/vs/workbench/services/textfile/test/textFileService.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileService.test.ts @@ -50,12 +50,12 @@ suite('Files - TextFileService', () => { if (model) { model.dispose(); } - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); }); test('isDirty/getDirty - files and untitled', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); await model.load(); @@ -77,7 +77,7 @@ suite('Files - TextFileService', () => { test('save - file', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); await model.load(); model.textEditorModel!.setValue('foo'); @@ -91,11 +91,11 @@ suite('Files - TextFileService', () => { test('save - UNC path', async function () { const untitledUncUri = URI.from({ scheme: 'untitled', authority: 'server', path: '/share/path/file.txt' }); model = instantiationService.createInstance(TextFileEditorModel, untitledUncUri, 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); const mockedFileUri = untitledUncUri.with({ scheme: Schemas.file }); const mockedEditorInput = instantiationService.createInstance(TextFileEditorModel, mockedFileUri, 'utf8', undefined); - const loadOrCreateStub = sinon.stub(accessor.textFileService.models, 'loadOrCreate', () => Promise.resolve(mockedEditorInput)); + const loadOrCreateStub = sinon.stub(accessor.textFileService.files, 'loadOrCreate', () => Promise.resolve(mockedEditorInput)); sinon.stub(accessor.textFileService.untitled, 'exists', () => true); sinon.stub(accessor.textFileService.untitled, 'hasAssociatedFilePath', () => true); @@ -111,7 +111,7 @@ suite('Files - TextFileService', () => { test('saveAll - file', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); await model.load(); model.textEditorModel!.setValue('foo'); @@ -124,7 +124,7 @@ suite('Files - TextFileService', () => { test('saveAs - file', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); accessor.textFileService.setPromptPath(model.resource); await model.load(); @@ -138,7 +138,7 @@ suite('Files - TextFileService', () => { test('revert - file', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); accessor.textFileService.setPromptPath(model.resource); await model.load(); @@ -152,7 +152,7 @@ suite('Files - TextFileService', () => { test('delete - dirty file', async function () { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(model.resource, model); + (accessor.textFileService.files).add(model.resource, model); await model.load(); model!.textEditorModel!.setValue('foo'); @@ -173,8 +173,8 @@ suite('Files - TextFileService', () => { async function testMove(source: URI, target: URI, targetDirty?: boolean): Promise { let sourceModel: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, source, 'utf8', undefined); let targetModel: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, target, 'utf8', undefined); - (accessor.textFileService.models).add(sourceModel.resource, sourceModel); - (accessor.textFileService.models).add(targetModel.resource, targetModel); + (accessor.textFileService.files).add(sourceModel.resource, sourceModel); + (accessor.textFileService.files).add(targetModel.resource, targetModel); await sourceModel.load(); sourceModel.textEditorModel!.setValue('foo'); diff --git a/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts b/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts index be9f2a32793..9923ae6b376 100644 --- a/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts +++ b/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts @@ -38,7 +38,7 @@ class ResourceModelCollection extends ReferenceCollection { if (this.modelsToDispose.has(key)) { if (model instanceof TextFileEditorModel) { - this.textFileService.models.disposeModel(model); + this.textFileService.files.disposeModel(model); } else { model.dispose(); } diff --git a/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts b/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts index 4a1f56df05c..9308b23524d 100644 --- a/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts +++ b/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts @@ -48,7 +48,7 @@ suite('Workbench - TextModelResolverService', () => { model.dispose(); model = (undefined)!; } - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); }); test('resolve resource', async () => { @@ -86,7 +86,7 @@ suite('Workbench - TextModelResolverService', () => { test('resolve file', async function () { const textModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file_resolver.txt'), 'utf8', undefined); - (accessor.textFileService.models).add(textModel.resource, textModel); + (accessor.textFileService.files).add(textModel.resource, textModel); await textModel.load(); diff --git a/src/vs/workbench/test/electron-browser/api/mainThreadDocumentsAndEditors.test.ts b/src/vs/workbench/test/electron-browser/api/mainThreadDocumentsAndEditors.test.ts index 1eea992bc81..b4d4ea7e610 100644 --- a/src/vs/workbench/test/electron-browser/api/mainThreadDocumentsAndEditors.test.ts +++ b/src/vs/workbench/test/electron-browser/api/mainThreadDocumentsAndEditors.test.ts @@ -48,7 +48,7 @@ suite('MainThreadDocumentsAndEditors', () => { codeEditorService = new TestCodeEditorService(); textFileService = new class extends mock() { isDirty() { return false; } - models = { + files = { onDidSave: Event.None, onDidRevert: Event.None, onDidChangeDirty: Event.None diff --git a/src/vs/workbench/test/electron-browser/api/mainThreadEditors.test.ts b/src/vs/workbench/test/electron-browser/api/mainThreadEditors.test.ts index 65298911bda..9938166c769 100644 --- a/src/vs/workbench/test/electron-browser/api/mainThreadEditors.test.ts +++ b/src/vs/workbench/test/electron-browser/api/mainThreadEditors.test.ts @@ -72,7 +72,7 @@ suite('MainThreadEditors', () => { copiedResources.set(source, target); return Promise.resolve(Object.create(null)); } - models = { + files = { onDidSave: Event.None, onDidRevert: Event.None, onDidChangeDirty: Event.None diff --git a/src/vs/workbench/test/electron-browser/api/mainThreadSaveParticipant.test.ts b/src/vs/workbench/test/electron-browser/api/mainThreadSaveParticipant.test.ts index 62a915c2535..76a893ce963 100644 --- a/src/vs/workbench/test/electron-browser/api/mainThreadSaveParticipant.test.ts +++ b/src/vs/workbench/test/electron-browser/api/mainThreadSaveParticipant.test.ts @@ -33,7 +33,7 @@ suite('MainThreadSaveParticipant', function () { }); teardown(() => { - (accessor.textFileService.models).dispose(); + (accessor.textFileService.files).dispose(); TextFileEditorModel.setSaveParticipant(null); // reset any set participant });