Skip to content

Commit

Permalink
text file - getAll() => models
Browse files Browse the repository at this point in the history
  • Loading branch information
bpasero committed Feb 19, 2020
1 parent e9b1d61 commit c02b8d1
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export class BrowserTextFileService extends AbstractTextFileService {
}

protected onBeforeShutdown(reason: ShutdownReason): boolean {
if (this.files.getAll().some(model => model.hasState(ModelState.PENDING_SAVE))) {
if (this.files.models.some(model => model.hasState(ModelState.PENDING_SAVE))) {
console.warn('Unload prevented: pending file saves');

return true; // files are pending to be saved: veto
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
private readonly _onDidChangeEncoding = this._register(new Emitter<ITextFileEditorModel>());
readonly onDidChangeEncoding = this._onDidChangeEncoding.event;

private readonly mapResourceToModel = new ResourceMap<ITextFileEditorModel>();
private readonly mapResourceToModelListeners = new ResourceMap<IDisposable>();
private readonly mapResourceToDisposeListener = new ResourceMap<IDisposable>();
private readonly mapResourceToPendingModelLoaders = new ResourceMap<Promise<ITextFileEditorModel>>();

private readonly modelLoadQueue = this._register(new ResourceQueue());

saveErrorHandler = (() => {
const notificationService = this.notificationService;

Expand All @@ -60,12 +67,9 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
};
})();

private readonly mapResourceToModel = new ResourceMap<ITextFileEditorModel>();
private readonly mapResourceToModelListeners = new ResourceMap<IDisposable>();
private readonly mapResourceToDisposeListener = new ResourceMap<IDisposable>();
private readonly mapResourceToPendingModelLoaders = new ResourceMap<Promise<ITextFileEditorModel>>();

private readonly modelLoadQueue = this._register(new ResourceQueue());
get models(): ITextFileEditorModel[] {
return this.mapResourceToModel.values();
}

constructor(
@ILifecycleService private readonly lifecycleService: ILifecycleService,
Expand Down Expand Up @@ -135,7 +139,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
// find all models that related to either source or target (can be many if resource is a folder)
const sourceModels: ITextFileEditorModel[] = [];
const targetModels: ITextFileEditorModel[] = [];
for (const model of this.getAll()) {
for (const model of this.models) {
const resource = model.resource;

if (isEqualOrParent(resource, e.target, false /* do not ignorecase, see https://github.com/Microsoft/vscode/issues/56384 */)) {
Expand Down Expand Up @@ -331,10 +335,6 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE
}
}

getAll(): ITextFileEditorModel[] {
return this.mapResourceToModel.values();
}

add(resource: URI, model: ITextFileEditorModel): void {
const knownModel = this.mapResourceToModel.get(resource);
if (knownModel === model) {
Expand Down
3 changes: 2 additions & 1 deletion src/vs/workbench/services/textfile/common/textfiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -337,10 +337,11 @@ export interface ITextFileEditorModelManager {
readonly onDidRevert: Event<ITextFileEditorModel>;
readonly onDidChangeEncoding: Event<ITextFileEditorModel>;

readonly models: ITextFileEditorModel[];

saveErrorHandler: ISaveErrorHandler;

get(resource: URI): ITextFileEditorModel | undefined;
getAll(): ITextFileEditorModel[];

resolve(resource: URI, options?: IModelLoadOrCreateOptions): Promise<ITextFileEditorModel>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ suite('Files - TextFileEditorModelManager', () => {

assert.ok(!manager.get(fileUpper));

let results = manager.getAll();
let results = manager.models;
assert.strictEqual(3, results.length);

let result = manager.get(URI.file('/yes'));
Expand All @@ -68,19 +68,19 @@ suite('Files - TextFileEditorModelManager', () => {

manager.remove(URI.file(''));

results = manager.getAll();
results = manager.models;
assert.strictEqual(3, results.length);

manager.remove(URI.file('/some/other.html'));
results = manager.getAll();
results = manager.models;
assert.strictEqual(2, results.length);

manager.remove(fileUpper);
results = manager.getAll();
results = manager.models;
assert.strictEqual(2, results.length);

manager.clear();
results = manager.getAll();
results = manager.models;
assert.strictEqual(0, results.length);

model1.dispose();
Expand Down

0 comments on commit c02b8d1

Please sign in to comment.