Fixes #34966: Task list doesn't update when gulp, grunt or jake file changes.

This commit is contained in:
Dirk Baeumer
2017-09-25 15:45:00 +02:00
parent 67b5612353
commit 643e569a6e
3 changed files with 3 additions and 57 deletions
+1 -19
View File
@@ -205,7 +205,6 @@ class TaskDetector {
private taskProvider: vscode.Disposable | undefined;
private detectors: Map<string, FolderDetector> = new Map();
private promise: Promise<vscode.Task[]> | undefined;
constructor() {
}
@@ -225,15 +224,12 @@ class TaskDetector {
this.taskProvider = undefined;
}
this.detectors.clear();
this.promise = undefined;
}
private updateWorkspaceFolders(added: vscode.WorkspaceFolder[], removed: vscode.WorkspaceFolder[]): void {
let changed = false;
for (let remove of removed) {
let detector = this.detectors.get(remove.uri.toString());
if (detector) {
changed = true;
detector.dispose();
this.detectors.delete(remove.uri.toString());
}
@@ -241,22 +237,16 @@ class TaskDetector {
for (let add of added) {
let detector = new FolderDetector(add);
if (detector.isEnabled()) {
changed = true;
this.detectors.set(add.uri.toString(), detector);
detector.start();
}
}
if (changed) {
this.promise = undefined;
}
this.updateProvider();
}
private updateConfiguration(): void {
let changed = false;
for (let detector of this.detectors.values()) {
if (!detector.isEnabled()) {
changed = true;
detector.dispose();
this.detectors.delete(detector.workspaceFolder.uri.toString());
}
@@ -267,16 +257,12 @@ class TaskDetector {
if (!this.detectors.has(folder.uri.toString())) {
let detector = new FolderDetector(folder);
if (detector.isEnabled()) {
changed = true;
this.detectors.set(folder.uri.toString(), detector);
detector.start();
}
}
}
}
if (changed) {
this.promise = undefined;
}
this.updateProvider();
}
@@ -294,15 +280,11 @@ class TaskDetector {
else if (this.taskProvider && this.detectors.size === 0) {
this.taskProvider.dispose();
this.taskProvider = undefined;
this.promise = undefined;
}
}
public getTasks(): Promise<vscode.Task[]> {
if (!this.promise) {
this.promise = this.computeTasks();
}
return this.promise;
return this.computeTasks();
}
private computeTasks(): Promise<vscode.Task[]> {