Fix binaryArgs not read from makefile.launchConfigurations on Windows#774
Draft
Fix binaryArgs not read from makefile.launchConfigurations on Windows#774
Conversation
…ndows Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com>
…itively and args case-sensitively Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix 'binaryArgs' not read from settings.json on Windows
Fix binaryArgs not read from makefile.launchConfigurations on Windows
Jan 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On Windows, adding
binaryArgsto a launch configuration in settings.json causes the launch target to reset to "Unset". The root cause is case-sensitive string comparison (===) for launch configuration matching. When VS Code re-reads settings, path casing may change (e.g.,c:\UsersvsC:\Users), breaking the match on case-insensitive Windows filesystems.Changes
New helper function
areLaunchConfigurationStringsEqualinutil.ts:[cwd]>[binaryPath]([args])cwdandbinaryPathcase-insensitively on Windows-Vvs-vdiffer semantically)Updated comparisons in
configuration.ts:getLaunchConfiguration()- used when looking up stored configurationsetNewLaunchConfiguration()- used when selecting from quick pickAdded unit tests covering same strings, different paths, null handling, and Windows-specific case variations
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
0psvsblobprodwus2145.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)40vvsblobprodwus2135.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)8wdvsblobprodwus2137.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)b15vsblobprodwus2164.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)/usr/local/bin/node node /usr/local/bin/npm install --legacy-peer-deps(dns block)b53vsblobprodwus2154.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)g3xvsblobprodwus2151.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)isovsblobprodwus211.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)lusvsblobprodwus2166.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)/usr/local/bin/node node /usr/local/bin/npm install --legacy-peer-deps(dns block)pkwvsblobprodwus2126.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)/usr/local/bin/node node /usr/local/bin/npm install --legacy-peer-deps(dns block)v41vsblobprodwus2175.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)vd2vsblobprodwus2150.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)vjmvsblobprodwus2182.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)/usr/local/bin/node node /usr/local/bin/npm install --legacy-peer-deps(dns block)vm9vsblobprodwus2190.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)/usr/local/bin/node node /usr/local/bin/npm install --legacy-peer-deps(dns block)wlnvsblobprodwus2188.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/npm install /rg(dns block)/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)y1rvsblobprodwus2136.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install --frozen-lockfile(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>[Bug] "binaryArgs" not read from "makefile.launchConfigurations" in settings.json file on Windows with MSYS2</issue_title>
<issue_description>### Brief Issue Summary
Hello,
I’ve encountered this issue with the Makefile Tools extension in Visual Studio Code related to makefile.launchConfigurations.
When I add any arguments to the binaryArgs field in settings.json, the previously selected launch target in the Makefile: Project Outline view is immediately reset to "Unset". After this occurs, the dropdown for selecting a launch target only displays one configuration without any arguments. If I select a launch target from this list, a new launch configuration is automatically created in settings.json, but it contains no parameters.
This issue does not happen when using the extension with Windows Subsystem for Linux (WSL). When working with WSL, the launch target dropdown menu in the Makefile: Project Outline view displays two options: one to run the executable with no arguments, e.g. out(), and another to run executable with provided arguments, e.g. out(arg1, arg2, ...).
Could you please look into this issue? Having to work around this limitation impacts the ability to test binaries with parameters using the extension.
Thank you in advance for your support!
Debug Log