mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 09:38:38 +01:00
fixes #20943
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
import { workspace, Uri, Disposable, Event, EventEmitter } from 'vscode';
|
||||
import { debounce } from './decorators';
|
||||
import { debounce, throttle } from './decorators';
|
||||
import { Model } from './model';
|
||||
|
||||
export class GitContentProvider {
|
||||
@@ -20,13 +20,20 @@ export class GitContentProvider {
|
||||
|
||||
constructor(private model: Model) {
|
||||
this.disposables.push(
|
||||
model.onDidChangeRepository(this.fireChangeEvents, this),
|
||||
model.onDidChangeRepository(this.eventuallyFireChangeEvents, this),
|
||||
workspace.registerTextDocumentContentProvider('git', this)
|
||||
);
|
||||
}
|
||||
|
||||
@debounce(300)
|
||||
private fireChangeEvents(): void {
|
||||
@debounce(1100)
|
||||
private eventuallyFireChangeEvents(): void {
|
||||
this.fireChangeEvents();
|
||||
}
|
||||
|
||||
@throttle
|
||||
private async fireChangeEvents(): Promise<void> {
|
||||
await this.model.whenIdle();
|
||||
|
||||
Object.keys(this.uris).forEach(key => {
|
||||
this.onDidChangeEmitter.fire(this.uris[key]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user