PyCharm not updating custom color scheme changes

Viewed 208

I edited the colors & styles of all brackets/braces etc. via Settings -> Editor -> Color Scheme -> Language Defaults.

The changes (blue colors) are reflected in the Settings menu (and in the preview panel within the menu), but they are not reflected in the code itself...The old colors are still being used (default green from the Github theme). See below for an example.

Would be grateful for any tips!

enter image description here

1 Answers

From the Pycharm help:

Language Defaults section contains common syntax highlighting settings, which are applied to all supported programming languages by default. In most cases, it is sufficient to configure Language Defaults and make adjustments for specific languages if necessary.

As Pycharm can actually work with a number of languages, this setting is supposed to apply color schemes to common features of all languages (like function calls/defs, keywords, identifiers etc.). What it doesn't state very clearly, is that in order to use those default settings you need to make sure they are inherited in the specific language.

So, go to your language's sub-menu and either edit colors there, or inherit from the Language Defaults by ticking the box of Inherit values from:: An image showing the "Color Scheme" setting window for Python. The "Inherit values from:" checkbox at the bottom-right corner is highlighted with a blue square. In the code example, the class Foo line is highlighted in a red square to show the difference of color in the class' name

You can see in the example above that under Python, the color of class definition is regular white, but still the Foo is a bright pink (Red square). This is because I set it in Language Defaults -> Classes -> Class name and checked the box to inherit from there (the "path" to the relevant default is also indicated next to the checkbox and is a clickable link, as can be seen in the blue square).


Assuming you are using Python, indeed the braces/brackets/paretheses do not inherit by default in the GitHub scheme, so this is why you didn't see the change in Language Defaults. In JSON, for example, they do inherit by default.

Related