CLion 2021.1 Help

Code Style

Scheme

In this area, choose the code style scheme and change it as required. Code style scheme settings are automatically applied every time CLion generates, refactors, or reformats your code.

Code styles are defined at the project level and at the IDE level (global).

  • At the project level, settings are grouped under the Project scheme, which is predefined and is marked in bold. The Project style scheme is applied to the current project only.

    You can copy the Project scheme to the IDE level, using the Copy to IDE command.

  • At the IDE level, settings are grouped under the predefined Default scheme (marked in bold), and any other scheme created by the user by the Duplicate command (marked as plain text). Global settings are used when the user doesn't want to keep code style settings with the project and share them.

    You can copy the IDE scheme to the current project, using the Copy to Project command.

ItemDescription
Scheme

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.

Invoke the commands to manage the schemes

Click this button to invoke the list of commands to manage the schemes:

  • Copy to IDE...- Choose this option to copy the scheme settings to CLion.

  • Export...- Choose this option to export the selected scheme to an .xml file or a .json file in the selected location.

    You can use the JSON file to change code style settings for external tools. The JSON file contains all code style settings for all languages. The settings in the file are grouped by a language. The group all in the file contains generic code style settings that affect all languages. The settings format uses lowercase letters and some of the settings names differ from the names in the xml file for better readability.

  • Import Scheme...- Choose this option to import the scheme of the selected type from the specified location.

  • Copy to Project...- Choose this option to copy the scheme settings to be stored with a project.

  • Duplicate...- Choose this option to create a copy of the selected scheme.

  • Reset- Choose this option to reset the default or bundled color scheme to the initial defaults shipped with CLion. This command becomes available only if some changes have been done.

  • Rename- Choose this option to change the name of the selected custom scheme. Press Enter to save changes, or Escape to cancel.

Line Separators

CLion lets you configure line separator and indentation options for various languages. When reformatting source code, CLion will apply the specified indentation behavior and skip the sections denoted with the special formatting off/on markers.

ItemDescription
Line Separator (for new files)

Use this list to specify which line separator is to be used in files created by CLion. The available options are:

  • System dependent- choose this option to use the default selection.

  • Unix and macOS (\n)- choose this option to use the Unix and macOS line separator.

  • Windows (\r\n)- choose this option to use the Windows line separator.

  • Classic Mac OS (\r)- choose this option to use the \r line separator, which was used in Classic Mac OS (up to Mac OS 9).

Hard wrap atIn this field, specify the number of columns to be used to display pages in the editor.
Wrap on typingSelect this checkbox to ensure that edited text always fits in the specified right margin.
Visual guidesIn 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 the Detect and use existing file indents for editing checkbox for CLion 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.

CLion 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.

Status bar indents options

ClangFormat

ItemDescription
Enable ClangFormat with clangd serverSelect this checkbox to turn on ClangFormat as alternative code formatter (ClangFormat settings override the IDE code style settings). Note that ClangFormat requires the Clangd language engine to be enabled.

Formatter Control

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.

ItemDescription
Enable formatter markers in comments
  • If this checkbox is selected, fragments of code between line comments with the formatting markers will not be reformatted and will preserve the original formatting. After you select this checkbox, the fields below become available and you can specify the character strings to be treated as formatting markers.

  • If the checkbox is cleared, the formatting markers will be ignored and the code between the line comments with markers will be reformatted.

Markers
Formatter off: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.
Formatter on: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.
Regular expressionsSelect this checkbox to use regular expressions instead of specifying the formatting markers explicitly. CLion matches formatter on/off markers using the regular expression specified instead of the exact string.
Last modified: 27 July 2021