diff --git a/packages/metals-languageclient/src/__tests__/getJavaHome.test.ts b/packages/metals-languageclient/src/__tests__/getJavaHome.test.ts index d3d35930..9b3916a8 100644 --- a/packages/metals-languageclient/src/__tests__/getJavaHome.test.ts +++ b/packages/metals-languageclient/src/__tests__/getJavaHome.test.ts @@ -33,7 +33,10 @@ describe("getJavaHome", () => { const javaPaths = [{ binPath: path.join(JAVA_HOME, "bin", "java") }]; mockSpawn(exampleJavaVersionString); mockExistsFs(javaPaths); - const javaHome = await require("../getJavaHome").getJavaHome("17"); + const javaHome = await require("../getJavaHome").getJavaHome( + "17", + new MockOutput() + ); expect(javaHome).toBe(JAVA_HOME); }); diff --git a/packages/metals-languageclient/src/getJavaHome.ts b/packages/metals-languageclient/src/getJavaHome.ts index 1513e737..35a804ae 100644 --- a/packages/metals-languageclient/src/getJavaHome.ts +++ b/packages/metals-languageclient/src/getJavaHome.ts @@ -38,7 +38,7 @@ async function validateJavaVersion( javaVersionOut.stderr?.on("data", (out: Buffer) => { outputChannel.appendLine(`${javaBin} -version:`); - const msg = out.toString().trim(); + const msg = "\t" + out.toString().trim().split("\n").join("\n\t"); outputChannel.appendLine(msg); }); @@ -62,7 +62,7 @@ export async function fromPath( if (javaExecutable) { let realJavaPath = realpathSync(javaExecutable); outputChannel.appendLine( - `Found java executable under ${javaExecutable} that resolves to ${realJavaPath}` + `Searching for Java on PATH. Found java executable under ${javaExecutable} that resolves to ${realJavaPath}` ); const possibleJavaHome = path.dirname(path.dirname(realJavaPath)); const isValid = await validateJavaVersion( @@ -71,6 +71,11 @@ export async function fromPath( outputChannel ); if (isValid) return possibleJavaHome; + else { + outputChannel.appendLine( + `Java version doesn't match the required one of ${javaVersion}` + ); + } } } @@ -80,12 +85,20 @@ export async function fromEnv( ): Promise { const javaHome = process.env["JAVA_HOME"]; if (javaHome) { + outputChannel.appendLine( + `Checking Java in JAVA_HOME, which points to ${javaHome}` + ); const isValid = await validateJavaVersion( javaHome, javaVersion, outputChannel ); if (isValid) return javaHome; + else { + outputChannel.appendLine( + `Java version doesn't match the required one of ${javaVersion}` + ); + } } return undefined; diff --git a/packages/metals-languageclient/src/setupCoursier.ts b/packages/metals-languageclient/src/setupCoursier.ts index a1752086..bd4400cb 100644 --- a/packages/metals-languageclient/src/setupCoursier.ts +++ b/packages/metals-languageclient/src/setupCoursier.ts @@ -23,7 +23,7 @@ export async function setupCoursier( ): Promise<{ coursier: string; javaHome: string }> { const handleOutput = (out: Buffer) => { const msg = out.toString().trim(); - output.appendLine("Coursier: " + msg); + output.appendLine("Coursier: \n" + msg); }; const resolveCoursier = async () => {