Brief Issue Summary
When a makefile.launchConfigurations entry includes the name field (added in #793), the Makefile: Project
Outline panel always displays the launch target as "Unset" after selection, even though the configuration
is correctly matched internally.
Root Cause
LaunchTargetNode.getShortLaunchTargetName() in tree.ts receives the display name (e.g., "Run with
arguments") from launchConfigurationDisplayName(). It passes this to stringToLaunchConfiguration(), which
expects the technical cwd>binary(args) format. Since a user-friendly name doesn't match that format,
parsing returns undefined, and the tree unconditionally falls back to showing "Unset".
A secondary issue is that readCurrentLaunchConfiguration() in configuration.ts passes the prose string "No
launch configuration set." to updateLaunchTarget() when no configuration is active. This non-empty string
also fails parsing but isn't truly a display name — it leaks status-bar text into the tree.
Steps to Reproduce
- Add a launch configuration with a name field in .vscode/settings.json:
"makefile.launchConfigurations": [
{
"name": "Run with arguments",
"cwd": "${workspaceFolder}",
"binaryPath": "${workspaceFolder}/out.exe",
"binaryArgs": ["arg1", "arg2"]
}
]
- Run Makefile: Configure
- Run Makefile: Set the make launch configuration and select "Run with arguments"
- Observe the Makefile: Project Outline panel
Expected: Launch target shows Launch target: [Run with arguments] Actual: Launch target shows Launch
target: [Unset]
The Makefile Tools output panel confirms the configuration was matched successfully (Reading current
launch configuration "Run with arguments" from the workspace state.), so this is purely a display issue in
the tree view.
Debug Log
Additional Information
No response
Brief Issue Summary
When a makefile.launchConfigurations entry includes the name field (added in #793), the Makefile: Project
Outline panel always displays the launch target as "Unset" after selection, even though the configuration
is correctly matched internally.
Root Cause
LaunchTargetNode.getShortLaunchTargetName() in tree.ts receives the display name (e.g., "Run with
arguments") from launchConfigurationDisplayName(). It passes this to stringToLaunchConfiguration(), which
expects the technical cwd>binary(args) format. Since a user-friendly name doesn't match that format,
parsing returns undefined, and the tree unconditionally falls back to showing "Unset".
A secondary issue is that readCurrentLaunchConfiguration() in configuration.ts passes the prose string "No
launch configuration set." to updateLaunchTarget() when no configuration is active. This non-empty string
also fails parsing but isn't truly a display name — it leaks status-bar text into the tree.
Steps to Reproduce
"makefile.launchConfigurations": [
{
"name": "Run with arguments",
"cwd": "${workspaceFolder}",
"binaryPath": "${workspaceFolder}/out.exe",
"binaryArgs": ["arg1", "arg2"]
}
]
Expected: Launch target shows Launch target: [Run with arguments] Actual: Launch target shows Launch
target: [Unset]
The Makefile Tools output panel confirms the configuration was matched successfully (Reading current
launch configuration "Run with arguments" from the workspace state.), so this is purely a display issue in
the tree view.
Debug Log
Additional Information
No response