diff --git a/src/extension.ts b/src/extension.ts index 591db2b3..fbc6abcb 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -68,11 +68,15 @@ export async function activate(ctx: vscode.ExtensionContext) { controller.createRunProfile("Meson run test", vscode.TestRunProfileKind.Run, (request, token) => testRunHandler(controller, request, token), true) ctx.subscriptions.push(controller); - let mesonTasks: Thenable | null = null; + let mesonTasks: Promise | null = null; ctx.subscriptions.push( vscode.tasks.registerTaskProvider("meson", { provideTasks() { - mesonTasks ??= getMesonTasks(buildDir); + if (mesonTasks == null) { + mesonTasks = getMesonTasks(buildDir); + mesonTasks.catch(() => mesonTasks = null); + } + return mesonTasks; }, resolveTask() { diff --git a/src/tasks.ts b/src/tasks.ts index 9d755fe8..aa4153e4 100644 --- a/src/tasks.ts +++ b/src/tasks.ts @@ -172,7 +172,7 @@ export async function getMesonTasks(buildDir: string) { "Could not fetch targets. See Meson Build output tab for more info." ); - return []; + throw e; } }