Skip to content

Semantics color disrespects the users's color theme setting #147

@wks

Description

@wks

6d2fb74 introduced hard-coded color values which are applied without considering the user's color theme setting. While this highlights semantics information, this approach has several drawbacks.

  1. It disrespects the users' preference. Users choose color themes according to their aesthetic preferences, and this should be respected.
  2. Poor readability under light background when using the default semantics colors. (See Theme Colors Keep Changing to Pastel Colors microsoft/vscode#241113 (comment)) This is a consequence of assuming a dark or light background, and setting only the foreground color without also setting background color.
  3. Not friendly to people with color blindness. The default semantics colors contain many red and green colors. For people with color blindness (particularly deuteranopia which affects 5% of all men), they are not easily distinguishable. Color blind people usually choose specific color schemes that work for their eyes.

For VSCode, the user expects the color theme to be set at File -> Preferences -> Theme -> Color Theme. Extensions should derive colors from the user's setting. If an extension overrides this setting, or requires the user's manual intervention to work well, it should let the user know and allow the user to configure. For example, it should show a notification on the status bar and provide a nice way to set the extended semantics-aware color themes.

And interestingly, having "ccls" installed also affects rust-analyzer, a plugin for the Rust programming language.

There is a bug report upstream related to this: microsoft/vscode#241113

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions