Skip to content

Commit 2fc0143

Browse files
authored
DirtyDiff - handle the diff in trigger instead of then (#233914)
1 parent 434e2d6 commit 2fc0143

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,7 @@ export class DirtyDiffModel extends Disposable {
12121212
private _model: ITextFileEditorModel;
12131213
get original(): ITextModel[] { return this._originalTextModels; }
12141214

1215-
private diffDelayer = new ThrottledDelayer<{ changes: LabeledChange[]; mapChanges: Map<string, number[]> } | null>(200);
1215+
private diffDelayer = new ThrottledDelayer<void>(200);
12161216
private _quickDiffsPromise?: Promise<QuickDiff[]>;
12171217
private repositoryDisposables = new Set<IDisposable>();
12181218
private readonly originalModelDisposables = this._register(new DisposableStore());
@@ -1295,14 +1295,15 @@ export class DirtyDiffModel extends Disposable {
12951295
this.triggerDiff();
12961296
}
12971297

1298-
private triggerDiff(): Promise<void> {
1298+
private triggerDiff(): void {
12991299
if (!this.diffDelayer) {
1300-
return Promise.resolve();
1300+
return;
13011301
}
13021302

1303-
return this.diffDelayer
1304-
.trigger(() => this.diff())
1305-
.then((result: { changes: LabeledChange[]; mapChanges: Map<string, number[]> } | null) => {
1303+
this.diffDelayer
1304+
.trigger(async () => {
1305+
const result: { changes: LabeledChange[]; mapChanges: Map<string, number[]> } | null = await this.diff();
1306+
13061307
const originalModels = Array.from(this._originalModels.values());
13071308
if (!result || this._disposed || this._model.isDisposed() || originalModels.some(originalModel => originalModel.isDisposed())) {
13081309
return; // disposed
@@ -1317,7 +1318,8 @@ export class DirtyDiffModel extends Disposable {
13171318
}
13181319

13191320
this.setChanges(result.changes, result.mapChanges);
1320-
}, (err) => onUnexpectedError(err));
1321+
})
1322+
.catch(err => onUnexpectedError(err));
13211323
}
13221324

13231325
private setChanges(changes: LabeledChange[], mapChanges: Map<string, number[]>): void {

0 commit comments

Comments
 (0)