Add settings to control when to open the build output
Signed-off-by: Sheng Chen <sheche@microsoft.com>
This commit is contained in:
Родитель
65938f203f
Коммит
e448d4703b
|
@ -837,6 +837,21 @@
|
|||
],
|
||||
"markdownDescription": "[Experimental] Use build server to synchronize Gradle project when enabled. When set to `auto`, the build server will be enabled in Visual Studio Code - Insiders.",
|
||||
"default": "auto"
|
||||
},
|
||||
"java.gradle.buildServer.openBuildOutput": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"neverOpen",
|
||||
"openOnBuildStart",
|
||||
"openOnBuildFailure"
|
||||
],
|
||||
"enumDescriptions": [
|
||||
"Never automatically open build output.",
|
||||
"Open the build output when the build starts.",
|
||||
"Open the build output when the build fails."
|
||||
],
|
||||
"default": "openOnBuildFailure",
|
||||
"description": "Controls when the build output should open."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { Disposable, ExtensionContext, OutputChannel, commands, languages, window } from "vscode";
|
||||
import { GradleBuildLinkProvider } from "./GradleBuildLinkProvider";
|
||||
import { sendInfo } from "vscode-extension-telemetry-wrapper";
|
||||
import { OpenBuildOutputValue, getOpenBuildOutput } from "../util/config";
|
||||
|
||||
const APPEND_BUILD_LOG_CMD = "_java.gradle.buildServer.appendBuildLog";
|
||||
const LOG_CMD = "_java.gradle.buildServer.log";
|
||||
|
@ -23,7 +24,16 @@ export class BuildServerController implements Disposable {
|
|||
commands.registerCommand(APPEND_BUILD_LOG_CMD, (msg: string) => {
|
||||
if (msg) {
|
||||
this.buildOutputChannel.appendLine(msg);
|
||||
if (/^BUILD (SUCCESSFUL|FAILED)/m.test(msg)) {
|
||||
const openBehavior: OpenBuildOutputValue = getOpenBuildOutput();
|
||||
if (openBehavior === OpenBuildOutputValue.NEVER) {
|
||||
return;
|
||||
}
|
||||
|
||||
const pattern =
|
||||
openBehavior === OpenBuildOutputValue.ON_BUILD_START
|
||||
? /^> Build starts at /m
|
||||
: /^BUILD FAILED/m;
|
||||
if (pattern.test(msg)) {
|
||||
this.buildOutputChannel.show(true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,6 +114,18 @@ export function getAllowParallelRun(): boolean {
|
|||
return vscode.workspace.getConfiguration("gradle").get<boolean>("allowParallelRun", false);
|
||||
}
|
||||
|
||||
export function getOpenBuildOutput(): OpenBuildOutputValue {
|
||||
return vscode.workspace
|
||||
.getConfiguration("java.gradle.buildServer")
|
||||
.get<OpenBuildOutputValue>("openBuildOutput", OpenBuildOutputValue.ON_BUILD_FAILURE);
|
||||
}
|
||||
|
||||
export enum OpenBuildOutputValue {
|
||||
NEVER = "neverOpen",
|
||||
ON_BUILD_START = "openOnBuildStart",
|
||||
ON_BUILD_FAILURE = "openOnBuildFailure",
|
||||
}
|
||||
|
||||
export enum ProjectOpenBehaviourValue {
|
||||
INTERACTIVE = "Interactive",
|
||||
OPEN = "Open",
|
||||
|
|
Загрузка…
Ссылка в новой задаче