diff --git a/src/settings.ts b/src/settings.ts index 1e3330ed2..eee8d8367 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -5,7 +5,7 @@ import * as path from 'path'; import { commands, ConfigurationTarget, env, ExtensionContext, Position, Range, Selection, SnippetString, TextDocument, Uri, window, workspace, WorkspaceConfiguration, WorkspaceFolder } from 'vscode'; import { Commands } from './commands'; import { cleanupLombokCache } from './lombokSupport'; -import { ensureExists, getJavaConfiguration } from './utils'; +import { ensureExists, getJavaConfiguration, resolvePathVariables } from './utils'; import { apiManager } from './apiManager'; import { isActive, setActive, smartSemicolonDetection } from './smartSemicolonDetection'; import { BuildFileSelector, IMPORT_METHOD, PICKED_BUILD_FILES } from './buildFilesSelector'; @@ -242,7 +242,7 @@ export async function checkJavaPreferences(context: ExtensionContext): Promise<{ } return { - javaHome, + javaHome: resolvePathVariables(javaHome), preference }; } diff --git a/src/utils.ts b/src/utils.ts index 02a0becd5..7b3a739c0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -284,6 +284,8 @@ export async function getJavaConfig(javaHome: string) { javaConfig.implementationCodeLens = deprecatedImplementations ? "types" : "none"; } + javaConfig.import.gradle.java.home = resolvePathVariables(javaConfig.import.gradle.java.home); + return javaConfig; } @@ -363,6 +365,13 @@ export function getVSCodeVariablesMap(): any { return res; } +export function resolvePathVariables(pathStr: string): string { + if (!pathStr) { + return pathStr; + } + return vscodeVariables(pathStr); +} + /** * Check if the extension version is a pre-release version or running an insider editor. * @param context The extension context or extension path