We looked at themes briefly in the The basics section, and frankly there isn't much else left to themes in PyCharm. Right now you have your choices limited to a couple of themes if you're using IntelliJ IDEA Platform 130.* and above. In older versions of IntelliJ, there used to be a lot more.
This is where you are going to be spending most of your time in PyCharm, so it makes sense to make it look as good as possible.
Each language has its own color scheme under Editor; if you can't find it, just look it up in the search bar, and underneath Editor, you should be able to find Python. Most of the options here are the same for all the IDEs built using the IntelliJ Platform, so this is nothing native to PyCharm.
Underneath Colors & Fonts, you should be able to see a whole bunch of choices. We have already changed the font, and the other options will become more relevant as we progress through this chapter, but first let's make a couple of changes to the scheme for Python.
The list in [1] is merely the different elements in a file that can be styled. The best way to go about changing the style is not using [1]; however, it's clicking on the elements in [2], which directly takes you to the element in question. Note that you cannot change the text in [2].
So, in this example, if you want to know the category for a decorator in Python, all you have to do is click on the decorator in [2], and that will lead you to the corresponding name of the said element. An interesting option is [3], which we will touch upon soon.
As you can see, when we clicked on decorator
, it auto-scrolled straight to Decorator in the list. However, it's not always obvious what something is called, so clicking on it again will help us identify what element it is:
PyCharm has two different styles for docstrings and string; in this case, what we clicked on was a docstring and not a normal string, which is a lighter blue color in this case.
PyCharm's style system can work on hierarchies; what this simply means is that a lot of the common elements in different languages are handled by central rules. This is useful since in this way, you have a common set of colors for all your languages.
For example, documentation comments are common in most languages, so PyCharm allows you to control how documentation looks in all the languages, so the colors stay consistent. Let's take a look at this:
Here it says that it does inherit from another set of styles; in this case, it is Language Defaults, which has been abbreviated by PyCharm, so let's head over there, and we can see that, yes indeed, there is a Doc comment element and its styled the same way docstring is.
Note that the editor isn't the only region that you can style; you can style just about anything. For example, if you wanted to change the colors for the in-built terminal, you'd have to change the console colors; both the terminal and console share a common style setting.
A common problem that I faced when I initially installed PyCharm was that, even though my terminal was actually styled, I did not get the styling when I opened up the Terminal in PyCharm, and this is because I did not set up my console colors correctly:
As you can see in the preceding screenshot, my ANSI colors have not been set right, and hence, all my output just comes out in blue and red; thus, I had to manually change the colors. Note that some elements can also inherit their color from within the same category.
So my terminal used to look similar to this:
However, after the change, I was able to make it look more like my real terminal, although you cannot replicate it exactly.
You can of course go ahead and choose the appropriate colors, but it's best to let the color picker (shown on the right-hand side in the following screenshot) do it for you:
Here are a few pointers on where things are located: