Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gray attributes in launch.json are confusing, please remove them #80026

Closed
smcpeak opened this issue Aug 29, 2019 · 6 comments
Closed

gray attributes in launch.json are confusing, please remove them #80026

smcpeak opened this issue Aug 29, 2019 · 6 comments

Comments

@smcpeak
Copy link

@smcpeak smcpeak commented Aug 29, 2019

Related issues: #13353, #13979, #37459.
VSCode version: 1.37.1
OS Version: Windows 10 x64
Does this issue occur when all extensions are disabled?: Yes

Steps to Reproduce:

  1. Create a file called "launch.json" and populate it as described at https://code.visualstudio.com/docs/cpp/config-mingw#_configure-debug-settings
  2. Observe that attributes "version", "configurations", "type", and "request" are rendered in a gray color.
  3. Become confused about what this means.

Screenshot:

gray-attributes

I understand from #13979 that this is considered intended behavior. It is nevertheless confusing:

  • The use of gray color to signify something is "less important" is unconventional.
  • There is no way in the app to discover this novel convention. Hovering does not show anything interesting. Even the TextMate scope inspector shows nothing unusual.
  • Elsewhere (both in VSCode and other applications), differently colored or styled attributes often indicate that something is an error, potentially leading the user on a wild goose chase to discover the problem (which is how I ended up here).

Hover:

hover

TextMate scope inspector:

tm-inspector

The impact of this confusion is magnified by the fact that every user who follows the VSCode C++ configuration tutorial will see it, and the screenshot in that tutorial does not show the gray attributes, further reinforcing the user's likely hypothesis that they have made a mistake.

This is what the tutorial looks like:

should-look-like

I have read through the discussion in #13353. My summary is that there was disagreement about whether these attributes even are "less important", and agreement that the use of gray color to signify that is likely to be confusing. But, at least within the discussion there, these concerns were not resolved.

In my opinion, the gray color fails to ameliorate the problems #13353 was filed to address, and certainly leads to confusion, so ought to simply be removed.

As a tangential suggestion, the attribute hover text might be a good place to explain caveats regarding understanding or modifying those fields.

@weinand weinand added the debug label Aug 29, 2019
@weinand weinand self-assigned this Aug 29, 2019
@isidorn

This comment has been minimized.

Copy link
Contributor

@isidorn isidorn commented Aug 29, 2019

@smcpeak Thanks for sharing your feedback.

I am also not a big fan of the gray in the launch.json.
The C++ configuration tutorial can easily be updated to reflect the grey color. So that issue can be easily fixed.
Some other ideas as you mention are that we keep the gray and provide a more precise hover message.
Or we could remove the grayness alltogether.

I am open for suggestions.
@weinand let me know what you think

@isidorn

This comment has been minimized.

Copy link
Contributor

@isidorn isidorn commented Oct 9, 2019

@roblourens what are your feelings about the grey attributes in launch.json?

@roblourens

This comment has been minimized.

Copy link
Member

@roblourens roblourens commented Oct 9, 2019

I don't feel like it improves readability a ton for me. But I don't feel strongly about it either way.

@isidorn isidorn added this to the Backlog Candidates milestone Oct 23, 2019
@mattacosta

This comment has been minimized.

Copy link
Contributor

@mattacosta mattacosta commented Oct 31, 2019

I remember that when it first came out, my initial reaction was to delete those lines, only to find out that it broke my launch configuration. I expected grey properties to act like today's unused parameters, in that it was inferred and/or unused and could therefore be deleted safely.

@weinand

This comment has been minimized.

Copy link
Member

@weinand weinand commented Oct 31, 2019

I was never a fan of the gray attributes in launch.json and we should eliminate them.

@isidorn

This comment has been minimized.

Copy link
Contributor

@isidorn isidorn commented Nov 14, 2019

To verify: open a launch.json and make sure nothing is decorated in gray

@jrieken jrieken added the verified label Dec 3, 2019
@isidorn isidorn changed the title gray attributes in launch.json are confusing gray attributes in launch.json are confusing, please remove them Dec 6, 2019
@vscodebot vscodebot bot locked and limited conversation to collaborators Dec 29, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.