about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-05-26 08:59:22 +0000
committerbors <bors@rust-lang.org>2024-05-26 08:59:22 +0000
commitbd9cc02d1073537ca50f6d2ff8802b4baf5fcd45 (patch)
tree42f10cf7f990fd9af29a842c20d7c3c4166871f7
parent56d77b90480c3c923a5689262b186382de4d8d65 (diff)
parenteb9894f3c9ea2ec18b36de46db417659fbe3aa9e (diff)
downloadrust-bd9cc02d1073537ca50f6d2ff8802b4baf5fcd45.tar.gz
rust-bd9cc02d1073537ca50f6d2ff8802b4baf5fcd45.zip
Auto merge of #17295 - 0xJonas:fix_passing_env_vars_to_cpptools, r=Veykril
Use correct format for setting environment variables when debugging with cpptools

The RA VSCode extension uses an incorrect format for the environment variables in the `launch.json` when debugging with the C/C++ Extension. This extension uses a different format than CodeLLDB or NativeDebug, which means that the environment variables are not actually set for the debuggee.

What it currently looks like:
```json
"env": {
  "NAME": "VALUE"
}
```

What the C/C++ extension expects:
```json
"environment": [
  { "name": "NAME", "value": "VALUE" }
]
```

For reference: https://code.visualstudio.com/docs/cpp/launch-json-reference#_environment
-rw-r--r--src/tools/rust-analyzer/editors/code/src/debug.ts5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/editors/code/src/debug.ts b/src/tools/rust-analyzer/editors/code/src/debug.ts
index 855e8b082ae..4b96e4d5c8e 100644
--- a/src/tools/rust-analyzer/editors/code/src/debug.ts
+++ b/src/tools/rust-analyzer/editors/code/src/debug.ts
@@ -194,7 +194,10 @@ function getCCppDebugConfig(
         args: runnable.args.executableArgs,
         cwd: runnable.args.cwd || runnable.args.workspaceRoot || ".",
         sourceFileMap,
-        env,
+        environment: Object.entries(env).map((entry) => ({
+            name: entry[0],
+            value: entry[1],
+        })),
         // See https://github.com/rust-lang/rust-analyzer/issues/16901#issuecomment-2024486941
         osx: {
             MIMode: "lldb",