From db225a67c70ee21ffc84cd9e70881b28482e491c Mon Sep 17 00:00:00 2001 From: Tarik Brown Date: Wed, 6 Mar 2024 12:21:26 -0800 Subject: [PATCH 1/6] Add userHome envrionment variable --- Extension/src/common.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/common.ts b/Extension/src/common.ts index 9c7d948fd..13b41db04 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -371,7 +371,7 @@ export function resolveVariables(input: string | undefined, additionalEnvironmen } // Replace environment and configuration variables. - const regexp: () => RegExp = () => /\$\{((env|config|workspaceFolder|file|fileDirname|fileBasenameNoExtension|execPath|pathSeparator)(\.|:))?(.*?)\}/g; + const regexp: () => RegExp = () => /\$\{((env|config|userHome|workspaceFolder|file|fileDirname|fileBasenameNoExtension|execPath|pathSeparator)(\.|:))?(.*?)\}/g; let ret: string = input; const cycleCache = new Set(); while (!cycleCache.has(ret)) { From 5b9a172db9136ccd5f64573b434e2103dde3c992 Mon Sep 17 00:00:00 2001 From: Tarik Brown Date: Wed, 6 Mar 2024 12:43:56 -0800 Subject: [PATCH 2/6] Resolve userHome to os.homedir --- Extension/src/LanguageServer/configurations.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index c1d011c74..3984dee4c 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -1530,6 +1530,11 @@ export class CppProperties { result = result.replace("${workspaceRoot}", this.rootUri.fsPath); } } + + if (result.includes("${userHome}")) { + result = result.replace("${userHome}", os.homedir()); + } + if (result.includes("${vcpkgRoot}") && util.getVcpkgRoot()) { result = result.replace("${vcpkgRoot}", util.getVcpkgRoot()); } From c517af53d8e640e0755135c93029f9cc6d91c2f7 Mon Sep 17 00:00:00 2001 From: Tarik Brown Date: Wed, 6 Mar 2024 12:47:41 -0800 Subject: [PATCH 3/6] revert change --- Extension/src/common.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/common.ts b/Extension/src/common.ts index 13b41db04..9c7d948fd 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -371,7 +371,7 @@ export function resolveVariables(input: string | undefined, additionalEnvironmen } // Replace environment and configuration variables. - const regexp: () => RegExp = () => /\$\{((env|config|userHome|workspaceFolder|file|fileDirname|fileBasenameNoExtension|execPath|pathSeparator)(\.|:))?(.*?)\}/g; + const regexp: () => RegExp = () => /\$\{((env|config|workspaceFolder|file|fileDirname|fileBasenameNoExtension|execPath|pathSeparator)(\.|:))?(.*?)\}/g; let ret: string = input; const cycleCache = new Set(); while (!cycleCache.has(ret)) { From a0fb5ee9adfa3faf73aaddede7e9302d2385ebc9 Mon Sep 17 00:00:00 2001 From: Tarik Brown Date: Wed, 6 Mar 2024 12:49:02 -0800 Subject: [PATCH 4/6] fix lint issues --- Extension/src/LanguageServer/configurations.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 3984dee4c..fc91f57a8 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -1534,7 +1534,7 @@ export class CppProperties { if (result.includes("${userHome}")) { result = result.replace("${userHome}", os.homedir()); } - + if (result.includes("${vcpkgRoot}") && util.getVcpkgRoot()) { result = result.replace("${vcpkgRoot}", util.getVcpkgRoot()); } From bd308630fd6828d0f7da8b033e3453690cc5a1b3 Mon Sep 17 00:00:00 2001 From: Tarik Brown Date: Wed, 6 Mar 2024 15:52:40 -0800 Subject: [PATCH 5/6] Rework resolving variables + minor change --- Extension/src/LanguageServer/configurations.ts | 11 ++++------- Extension/src/common.ts | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index fc91f57a8..04592d633 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -427,6 +427,10 @@ export class CppProperties { result["workspaceFolderBasename"] = this.rootUri ? path.basename(this.rootUri.fsPath) : ""; result["execPath"] = process.execPath; result["pathSeparator"] = (os.platform() === 'win32') ? "\\" : "/"; + result["/"] = (os.platform() === 'win32') ? "\\" : "/"; + result["userHome"] = os.homedir(); + result["vcpkgRoot"] = util.getVcpkgRoot(); + return result; } @@ -1531,13 +1535,6 @@ export class CppProperties { } } - if (result.includes("${userHome}")) { - result = result.replace("${userHome}", os.homedir()); - } - - if (result.includes("${vcpkgRoot}") && util.getVcpkgRoot()) { - result = result.replace("${vcpkgRoot}", util.getVcpkgRoot()); - } if (replaceAsterisks && result.includes("*")) { result = result.replace(/\*/g, ""); } diff --git a/Extension/src/common.ts b/Extension/src/common.ts index 9c7d948fd..cc5a8c2ce 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -371,7 +371,7 @@ export function resolveVariables(input: string | undefined, additionalEnvironmen } // Replace environment and configuration variables. - const regexp: () => RegExp = () => /\$\{((env|config|workspaceFolder|file|fileDirname|fileBasenameNoExtension|execPath|pathSeparator)(\.|:))?(.*?)\}/g; + const regexp: () => RegExp = () => /\$\{((env|config|workspaceFolder|userHome)(\.|:))?(.*?)\}/g; let ret: string = input; const cycleCache = new Set(); while (!cycleCache.has(ret)) { From eefe16a6d18531e9a2c4d4062e121bf07470fb87 Mon Sep 17 00:00:00 2001 From: Tarik Brown Date: Thu, 7 Mar 2024 10:12:56 -0800 Subject: [PATCH 6/6] Minor fixes --- Extension/src/LanguageServer/configurations.ts | 5 +++-- Extension/src/common.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index c357b6d2b..622e187b2 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -427,8 +427,9 @@ export class CppProperties { result["pathSeparator"] = (os.platform() === 'win32') ? "\\" : "/"; result["/"] = (os.platform() === 'win32') ? "\\" : "/"; result["userHome"] = os.homedir(); - result["vcpkgRoot"] = util.getVcpkgRoot(); - + if (util.getVcpkgRoot()) { + result["vcpkgRoot"] = util.getVcpkgRoot(); + } return result; } diff --git a/Extension/src/common.ts b/Extension/src/common.ts index cc5a8c2ce..dd32caadc 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -371,7 +371,7 @@ export function resolveVariables(input: string | undefined, additionalEnvironmen } // Replace environment and configuration variables. - const regexp: () => RegExp = () => /\$\{((env|config|workspaceFolder|userHome)(\.|:))?(.*?)\}/g; + const regexp: () => RegExp = () => /\$\{((env|config|workspaceFolder)(\.|:))?(.*?)\}/g; let ret: string = input; const cycleCache = new Set(); while (!cycleCache.has(ret)) {