Code Style
In this area, choose the code style scheme and change it as required. Code style scheme settings are automatically applied every time PyCharm generates, refactors, or reformats your code.
The IDE comes with two pre-defined schemes: the Project scheme and the Default scheme.
- In the Project scheme, the settings that you configure apply only to your current project. These settings are stored in the codeStyles folder under .idea and are shared through VCS together with the project. The IDE creates the folder after you modify code style settings for your project.
- In the Default scheme (IDE-level scheme), the settings that you configure apply to all existing projects that have the Default code style scheme selected. These settings are stored in the codestyles folder under the PyCharm configuration directory and are not shared through VCS.
If you want to use the project code style scheme as your default scheme, you can copy it to the IDE level. The other way around is also possible: you can overwrite your current project settings with the settings from an IDE-level scheme and share them with other members of your team.
From this list, select the scheme to be used. The predefined schemes are shown bold. The custom schemes, ones created as copies of the predefined schemes, are in plain text. The location where the scheme is stored is written next to each scheme, for example, the Default scheme is stored in the IDE, the Project scheme is stored in the project.
Click this button to invoke the list of commands to manage the schemes:
- Copy to IDE : select this option to copy the scheme settings to PyCharm. The option is available only for the Project scheme.
- Export : select this option to export the selected scheme in the IntelliJ IDEA code style XML or EditorConfig format (if the EditorConfig plugin is enabled). Learn more from Manage code style on a directory level with EditorConfig. The option is available for the Project and IDE schemes.
- Import Scheme : select this option to import the scheme of the selected type from the specified location. The option is available for the Project and IDE schemes.
- Copy to Project : select this option to overwrite your current project code style settings with the settings from the selected IDE code style scheme. The option is available only for IDE schemes.
- Duplicate : select this option to create a copy of the selected scheme. The option is available only for IDE schemes.
- Reset : select this option to reset the default or bundled color scheme to the initial defaults shipped with PyCharm. This command becomes available only if some changes have been done. The option is available only for IDE schemes.
- Rename : select this option to change the name of the selected custom scheme. Press Enter to save changes, or Escape to cancel. The option is available only for IDE schemes.
General
Line Separators
PyCharm lets you configure line separator and indentation options for various languages. When reformatting source code, PyCharm will apply the specified indentation behavior and skip the sections denoted with the special formatting off/on markers.
Use this list to specify which line separator is to be used in files created by PyCharm. The available options are:
- System-Dependent : select this option to use the default selection.
- Unix and macOS (\n) : select this option to use the Unix and macOS line separator.
- Windows (\r\n) : select this option to use the Windows line separator.
- Classic Mac OS (\r) : select this option to use the \r line separator, which was used in Classic Mac OS (up to Mac OS 9).
In this field, specify the number of columns to be used to display pages in the editor.
Select this checkbox to ensure that edited text always fits in the specified right margin.
In this field, specify multiple right margins. You can leave a default value or enter the number of spaces for your margin. If you want to specify several margins, enter numbers separated by comma.
Indents detection
Select Detect and use existing file indents for editing to detect the indentation style in the current file and use this style instead of the indents specified in the Code Style settings for the specific language.
PyCharm displays the indentation information in the status bar of the editor. You can click the indentation information to see the available actions, such as enable or disable this option, and change the current indentation to the ones specified in the Code Style settings for the specific language.
EditorConfig
Select the Enable EditorConfig support checkbox to use EditorConfig for code style. In this case you can specify code style settings that override the IDE settings and have different code styles within a project.
If you decide to use IDE settings after creating the EditorConfig settings file, you need to clear the Enable EditorConfig support checkbox.
Formatter
In this area, specify the markers to limit code fragments that you want to exclude from reformatting. In the source code, formatting markers are written inside line comments.
In this field, specify a glob pattern with the names of files and directories that you want to exclude from reformatting, code arrangement, and import optimization.
Turn formatter on/off with markers in code comments
- If this option is enabled, fragments of code between line comments with the formatting markers will be reformatted according to these markers: code fragments with on-markers will be reformatted, and the fragments with off-markers will remain intact after you reformat your code. See Example of using formatting markers. After you select this checkbox, the fields below become available, and you can specify the character strings to be treated as formatting markers.
- If this option is disabled, the formatting markers will be ignored and the code between the line comments with markers will be reformatted.
In this field, specify the character string that will indicate the beginning of a code fragment which you want to exclude from reformatting. Type a character string with the @ symbol in preposition or leave the predefined value @formatter:off .
In this field, specify the character string that will indicate the end of a code fragment which you want to exclude from reformatting. Type a character string with the @ symbol in preposition or leave the predefined value @formatter:on .
Enable regular expressions in formatter markers
Select this checkbox to use regular expressions instead of specifying the formatting markers explicitly. PyCharm matches formatter on/off markers using the regular expression specified instead of the exact string.
For example, using regular expressions allows you to have several markers for enabling the formatter and for disabling it. In that case, you can use the following regular expressions: @formatter:(off|disable|no) and @formatter:(on|enable|yes) .
Reformat again to remove custom line breaks
When this option is enabled, invoking the Reformat Code Control+Alt+L or Reformat File Control+Alt+Shift+L actions the second time after the code has been reformatted will remove custom line breaks.
When the option is disabled, invoking the actions the second time opens a dialog in which you need to confirm removing line breaks first. Click Don’t ask again in the dialog to never remove custom line breaks when you reformat code for the second time.
Code Style. CSS
Use this page to configure formatting options for CSS files. When you change these settings, the Preview pane shows how this will affect your code.
Tabs and Indents
- If this checkbox is selected, tab characters are used:
- On pressing the Tab key
- For indentation
- For reformatting code
An indentation consists of two parts. One part results from nesting code blocks, and the other part is determined by alignment.
- If this checkbox is selected, the part that results from nesting contains both tabs and spaces (if necessary), while the part defined by alignment consists only of spaces.
- If this checkbox is cleared, only tabs are used. This means that after reformatting a group of spaces that fits the specified tab size is automatically replaced with a tab, which may result in breaking fine alignment.
The Smart Tabs checkbox is available if the Use tab character checkbox is selected.
In this field, specify the number of spaces that fits in a tab.
In this field, specify the number of spaces to be inserted for each indent level.
In this field, specify the number of spaces to be inserted between the values of properties.
Keep indents on empty lines
If this checkbox is selected, PyCharm retains indents on empty lines as if they contained some code. If the checkbox is cleared, PyCharm deletes the tab characters and spaces on empty lines.
Blank Lines
Use this tab to define where and how many blank lines you want PyCharm to retain and insert in your code after reformatting. The results are displayed in the Preview pane.
The settings on this tab do not affect the number of blank lines before the first and after the last item.
In this area, specify the number of extra blank lines to be kept after reformatting.
In this area, configure whether to have or not to have extra empty lines around top-level blocks and nested selectors. In the field next to each option, specify the minimum number of extra blank lines to be left.
Other
In this tab, specify the alignment, braces, spaces, and quotes options to be applied on reformatting.
Use this list to specify where PyCharm should place the opening braces of selectors. The available options are:
Use this list to specify how PyCharm should align attributes and values. The available options are:
- Do not align : select this option to specify alignment on the first character of an attribute name.
- On value : select this option to specify alignment on the first character of the value of an attribute.
- On colon
In the CSS, SCSS, and Less context, PyCharm by default uses double quotes for generated string literals in import statements and URLs. To use single quotes, select Single from this list.
To apply the chosen style to the entire file after reformatting, select the Enforce on format checkbox below the list.
Currently changing the configuration for quotation marks does not affect injected style sheets and CSS code inside the tags.
Align closing brace with properties
If this checkbox is selected, the closing brace of the selector will be placed under the list of properties.
If this checkbox is not selected, the closing brace of the selector will be placed under the selector.
If this checkbox is selected, the blocks with a single property will be confined to one line.
If this checkbox is not selected, each property will be placed to its own line.
Select the checkboxes in this area to add a space after the colon delimiting key and value, and before the opening brace of the selector.
Use the controls in this area to configure positioning of line and block comments and spaces inside them.
- Add spaces around block comments : select this checkbox to add leading and trailing spaces in block comments. By default, when you enclose a code fragment in a block comment, the text starts right after the opening /* characters without any spaces. Before the closing */ characters no space is inserted either. This default code style may conflict with some linters’ rules, for example, ESLint.
Use this area to configure the hex color syntax. You can select from the following check options:
- Convert hex colors to : select this checkbox to configure the hex color letter case. You can choose Lower case or Upper case .
- Convert hex colors format to : select this checkbox to configure the hex color format length. You can choose Long format or Short format .
View changes in the Preview pane.
Arrangement
In this tab, enable sorting of CSS properties, which is by default turned off, and select the sorting order.
- To enable sorting, select the Sort CSS properties checkbox.
- Select By name to have all CSS properties within each block reordered alphabetically. PyCharm ignores vendor-specific prefixes but keeps multiple vendor-specific prefixes for a certain CSS property alpha-sorted.
border: 1px solid; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; color: black;
To sort all CSS properties in a file
- From the main menu, select Code | Rearrange Code .
- Alternatively, select Code | Reformat File from the main menu, and then select Whole file and Rearrange code in the dialog that opens.
To sort CSS properties within a block
- Select the block to sort and then select Code | Rearrange Code from the main menu.
- Alternatively, select Code | Reformat File on the main menu, and then select Rearrange code in the dialog that opens.
Set from
The link appears in the upper-right corner of the page, when applicable. Click this link and choose the language to be used as the base for the current language code style.
To return to the initial set of code style settings and discard the changes, click Reset .