From 9386d7ecd219fd8440e7d4626e2882da9ebfef88 Mon Sep 17 00:00:00 2001 From: elrashed Date: Tue, 19 Apr 2022 15:10:11 -0700 Subject: [PATCH 1/3] check for failed tasks --- .../src/LanguageServer/cppBuildTaskProvider.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Extension/src/LanguageServer/cppBuildTaskProvider.ts b/Extension/src/LanguageServer/cppBuildTaskProvider.ts index 846f37abe..44cf1d9ff 100644 --- a/Extension/src/LanguageServer/cppBuildTaskProvider.ts +++ b/Extension/src/LanguageServer/cppBuildTaskProvider.ts @@ -418,7 +418,7 @@ class CustomBuildTaskTerminal implements Pseudoterminal { let error: string = ""; let stdout: string = ""; let stderr: string = ""; - const result: number = await new Promise(resolve => { + const spawnResult: number = await new Promise(resolve => { if (child) { child.on('error', err => { splitWriteEmitter(err.message); @@ -445,24 +445,31 @@ class CustomBuildTaskTerminal implements Pseudoterminal { }); } }); - this.printBuildSummary(error, stdout, stderr); + let result: number = this.printBuildSummary(error, stdout, stderr); + if (spawnResult === -1) { + result = -1; + } this.closeEmitter.fire(result); } catch { this.closeEmitter.fire(-1); + return -1; } } - private printBuildSummary(error: string, stdout: string, stderr: string): void { + private printBuildSummary(error: string, stdout: string, stderr: string): number { if (error || (!stdout && stderr && stderr.includes("error")) || (stdout && stdout.includes("error C"))) { // cl.exe compiler errors telemetry.logLanguageServerEvent("cppBuildTaskError"); this.writeEmitter.fire(localize("build.finished.with.error", "Build finished with error(s).") + this.endOfLine); + return -1; } else if ((!stdout && stderr) || // gcc/clang (stdout && stdout.includes("warning C"))) { // cl.exe compiler warnings telemetry.logLanguageServerEvent("cppBuildTaskWarnings"); this.writeEmitter.fire(localize("build.finished.with.warnings", "Build finished with warning(s).") + this.endOfLine); + return 0; } else { this.writeEmitter.fire(localize("build.finished.successfully", "Build finished successfully.") + this.endOfLine); + return 0; } } } From f3ee55381a71066e18414ee2eacf81e7b0154bb9 Mon Sep 17 00:00:00 2001 From: elrashed Date: Tue, 19 Apr 2022 16:27:59 -0700 Subject: [PATCH 2/3] revert --- Extension/src/LanguageServer/cppBuildTaskProvider.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/cppBuildTaskProvider.ts b/Extension/src/LanguageServer/cppBuildTaskProvider.ts index 44cf1d9ff..d85c5a9eb 100644 --- a/Extension/src/LanguageServer/cppBuildTaskProvider.ts +++ b/Extension/src/LanguageServer/cppBuildTaskProvider.ts @@ -440,8 +440,9 @@ class CustomBuildTaskTerminal implements Pseudoterminal { if (result === null) { this.writeEmitter.fire(localize("build.run.terminated", "Build run was terminated.") + this.endOfLine); resolve(-1); + } else { + resolve(0); } - resolve(0); }); } }); From 96326fad9499bfba16b0747e20b51e1f4cf08d4d Mon Sep 17 00:00:00 2001 From: elrashed Date: Wed, 20 Apr 2022 09:44:47 -0700 Subject: [PATCH 3/3] remove extra line --- Extension/src/LanguageServer/cppBuildTaskProvider.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/Extension/src/LanguageServer/cppBuildTaskProvider.ts b/Extension/src/LanguageServer/cppBuildTaskProvider.ts index d85c5a9eb..402db6f1f 100644 --- a/Extension/src/LanguageServer/cppBuildTaskProvider.ts +++ b/Extension/src/LanguageServer/cppBuildTaskProvider.ts @@ -453,7 +453,6 @@ class CustomBuildTaskTerminal implements Pseudoterminal { this.closeEmitter.fire(result); } catch { this.closeEmitter.fire(-1); - return -1; } }