Skip to content

Commit 643e569

Browse files
committed
Fixes microsoft#34966: Task list doesn't update when gulp, grunt or jake file changes.
1 parent 67b5612 commit 643e569

3 files changed

Lines changed: 3 additions & 57 deletions

File tree

extensions/grunt/src/main.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,6 @@ class TaskDetector {
205205

206206
private taskProvider: vscode.Disposable | undefined;
207207
private detectors: Map<string, FolderDetector> = new Map();
208-
private promise: Promise<vscode.Task[]> | undefined;
209208

210209
constructor() {
211210
}
@@ -225,38 +224,29 @@ class TaskDetector {
225224
this.taskProvider = undefined;
226225
}
227226
this.detectors.clear();
228-
this.promise = undefined;
229227
}
230228

231229
private updateWorkspaceFolders(added: vscode.WorkspaceFolder[], removed: vscode.WorkspaceFolder[]): void {
232-
let changed = false;
233230
for (let remove of removed) {
234231
let detector = this.detectors.get(remove.uri.toString());
235232
if (detector) {
236-
changed = true;
237233
detector.dispose();
238234
this.detectors.delete(remove.uri.toString());
239235
}
240236
}
241237
for (let add of added) {
242238
let detector = new FolderDetector(add);
243239
if (detector.isEnabled()) {
244-
changed = true;
245240
this.detectors.set(add.uri.toString(), detector);
246241
detector.start();
247242
}
248243
}
249-
if (changed) {
250-
this.promise = undefined;
251-
}
252244
this.updateProvider();
253245
}
254246

255247
private updateConfiguration(): void {
256-
let changed = false;
257248
for (let detector of this.detectors.values()) {
258249
if (!detector.isEnabled()) {
259-
changed = true;
260250
detector.dispose();
261251
this.detectors.delete(detector.workspaceFolder.uri.toString());
262252
}
@@ -267,16 +257,12 @@ class TaskDetector {
267257
if (!this.detectors.has(folder.uri.toString())) {
268258
let detector = new FolderDetector(folder);
269259
if (detector.isEnabled()) {
270-
changed = true;
271260
this.detectors.set(folder.uri.toString(), detector);
272261
detector.start();
273262
}
274263
}
275264
}
276265
}
277-
if (changed) {
278-
this.promise = undefined;
279-
}
280266
this.updateProvider();
281267
}
282268

@@ -294,15 +280,11 @@ class TaskDetector {
294280
else if (this.taskProvider && this.detectors.size === 0) {
295281
this.taskProvider.dispose();
296282
this.taskProvider = undefined;
297-
this.promise = undefined;
298283
}
299284
}
300285

301286
public getTasks(): Promise<vscode.Task[]> {
302-
if (!this.promise) {
303-
this.promise = this.computeTasks();
304-
}
305-
return this.promise;
287+
return this.computeTasks();
306288
}
307289

308290
private computeTasks(): Promise<vscode.Task[]> {

extensions/gulp/src/main.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,6 @@ class TaskDetector {
177177

178178
private taskProvider: vscode.Disposable | undefined;
179179
private detectors: Map<string, FolderDetector> = new Map();
180-
private promise: Promise<vscode.Task[]> | undefined;
181180

182181
constructor() {
183182
}
@@ -197,38 +196,29 @@ class TaskDetector {
197196
this.taskProvider = undefined;
198197
}
199198
this.detectors.clear();
200-
this.promise = undefined;
201199
}
202200

203201
private updateWorkspaceFolders(added: vscode.WorkspaceFolder[], removed: vscode.WorkspaceFolder[]): void {
204-
let changed = false;
205202
for (let remove of removed) {
206203
let detector = this.detectors.get(remove.uri.toString());
207204
if (detector) {
208-
changed = true;
209205
detector.dispose();
210206
this.detectors.delete(remove.uri.toString());
211207
}
212208
}
213209
for (let add of added) {
214210
let detector = new FolderDetector(add);
215211
if (detector.isEnabled()) {
216-
changed = true;
217212
this.detectors.set(add.uri.toString(), detector);
218213
detector.start();
219214
}
220215
}
221-
if (changed) {
222-
this.promise = undefined;
223-
}
224216
this.updateProvider();
225217
}
226218

227219
private updateConfiguration(): void {
228-
let changed = false;
229220
for (let detector of this.detectors.values()) {
230221
if (!detector.isEnabled()) {
231-
changed = true;
232222
detector.dispose();
233223
this.detectors.delete(detector.workspaceFolder.uri.toString());
234224
}
@@ -239,16 +229,12 @@ class TaskDetector {
239229
if (!this.detectors.has(folder.uri.toString())) {
240230
let detector = new FolderDetector(folder);
241231
if (detector.isEnabled()) {
242-
changed = true;
243232
this.detectors.set(folder.uri.toString(), detector);
244233
detector.start();
245234
}
246235
}
247236
}
248237
}
249-
if (changed) {
250-
this.promise = undefined;
251-
}
252238
this.updateProvider();
253239
}
254240

@@ -266,15 +252,11 @@ class TaskDetector {
266252
else if (this.taskProvider && this.detectors.size === 0) {
267253
this.taskProvider.dispose();
268254
this.taskProvider = undefined;
269-
this.promise = undefined;
270255
}
271256
}
272257

273258
public getTasks(): Promise<vscode.Task[]> {
274-
if (!this.promise) {
275-
this.promise = this.computeTasks();
276-
}
277-
return this.promise;
259+
return this.computeTasks();
278260
}
279261

280262
private computeTasks(): Promise<vscode.Task[]> {

extensions/jake/src/main.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ class TaskDetector {
182182

183183
private taskProvider: vscode.Disposable | undefined;
184184
private detectors: Map<string, FolderDetector> = new Map();
185-
private promise: Promise<vscode.Task[]> | undefined;
186185

187186
constructor() {
188187
}
@@ -202,38 +201,29 @@ class TaskDetector {
202201
this.taskProvider = undefined;
203202
}
204203
this.detectors.clear();
205-
this.promise = undefined;
206204
}
207205

208206
private updateWorkspaceFolders(added: vscode.WorkspaceFolder[], removed: vscode.WorkspaceFolder[]): void {
209-
let changed = false;
210207
for (let remove of removed) {
211208
let detector = this.detectors.get(remove.uri.toString());
212209
if (detector) {
213-
changed = true;
214210
detector.dispose();
215211
this.detectors.delete(remove.uri.toString());
216212
}
217213
}
218214
for (let add of added) {
219215
let detector = new FolderDetector(add);
220216
if (detector.isEnabled()) {
221-
changed = true;
222217
this.detectors.set(add.uri.toString(), detector);
223218
detector.start();
224219
}
225220
}
226-
if (changed) {
227-
this.promise = undefined;
228-
}
229221
this.updateProvider();
230222
}
231223

232224
private updateConfiguration(): void {
233-
let changed = false;
234225
for (let detector of this.detectors.values()) {
235226
if (!detector.isEnabled()) {
236-
changed = true;
237227
detector.dispose();
238228
this.detectors.delete(detector.workspaceFolder.uri.toString());
239229
}
@@ -244,16 +234,12 @@ class TaskDetector {
244234
if (!this.detectors.has(folder.uri.toString())) {
245235
let detector = new FolderDetector(folder);
246236
if (detector.isEnabled()) {
247-
changed = true;
248237
this.detectors.set(folder.uri.toString(), detector);
249238
detector.start();
250239
}
251240
}
252241
}
253242
}
254-
if (changed) {
255-
this.promise = undefined;
256-
}
257243
this.updateProvider();
258244
}
259245

@@ -271,15 +257,11 @@ class TaskDetector {
271257
else if (this.taskProvider && this.detectors.size === 0) {
272258
this.taskProvider.dispose();
273259
this.taskProvider = undefined;
274-
this.promise = undefined;
275260
}
276261
}
277262

278263
public getTasks(): Promise<vscode.Task[]> {
279-
if (!this.promise) {
280-
this.promise = this.computeTasks();
281-
}
282-
return this.promise;
264+
return this.computeTasks();
283265
}
284266

285267
private computeTasks(): Promise<vscode.Task[]> {

0 commit comments

Comments
 (0)