# Code formatting

CLion lets you reformat your code according to the requirements you have specified in your current [code style scheme](configuring-code-style.html#configure-code-style-schemes) or the  [.editorconfig](editorconfig.html) file. If anything is not defined in `.editorconfig`, it is taken from the project settings.

You can reformat a part of code, the whole file, a group of files, a directory, and a module. You can also exclude part of code or some files from the reformatting.

Procedure: Reformat a code fragment

1. In the editor, select a code fragment you want to reformat.

> **Note:**
> If you do not select a code fragment, CLion will reformat the whole file.

2. In the main menu, go to `Code | Reformat Code` or press `Ctrl+Alt+L` (Windows), `⌘ ⌥ L` (macOS), `⌘ ⌥ L` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ L` (macOS System Shortcuts), `Ctrl+Alt+L` (XWin), `Ctrl+Alt+L` (GNOME), `Alt+Shift+L` (KDE), `Ctrl+Alt+L` (Emacs), `Ctrl+Alt+L` (Sublime Text), `⌘ ⌥ L` (Sublime Text (macOS)), `⌘ ⌥ L` (Xcode), `Ctrl+Alt+Enter` (Visual Studio), `⌘ ⌥ ⏎` (Visual Studio (macOS)), `Ctrl+Alt+L` (ReSharper), `⌘ ⌥ L` (ReSharper (macOS)), `Ctrl+;` (QtCreator), `⌘ ;` (QtCreator (macOS)), `Alt+Shift+F` (NetBeans), `Ctrl+Alt+L` (Eclipse), `⌘ ⇧ F` (Eclipse (macOS)).

> **Note:**
> If `Code | Reformat Code` seems to do nothing, the formatter is usually working correctly – your code already matches the active style. For C/C++, check which style is active:
>
>
>
> * With ClangFormat support enabled (`Settings | Editor | Code Style | C/C++`), CLion follows `.clang-format` and ignores the IDE code style and the JetBrains-specific `ij_*` EditorConfig keys.
>
> * With it disabled, CLion uses its built-in formatter, driven by `Code Style` settings or `.editorconfig`, and ignores `.clang-format`.
>
>
>
> When the two configurations disagree, code formatted by one engine can look already correct to the other, so Reformat Code produces no visible change.

Procedure: Reformat a file

1. Either open your file in the editor and press `Ctrl+Alt+Shift+L` (Windows), `⌘ ⌥ ⇧ L` (macOS), `⌘ ⌥ ⇧ L` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ ⇧ L` (macOS System Shortcuts), `Ctrl+Alt+Shift+L` (XWin), `Ctrl+Alt+Shift+L` (GNOME), `Ctrl+Alt+Shift+L` (KDE), `Ctrl+Alt+Shift+L` (Emacs), `Ctrl+Alt+Shift+L` (Sublime Text), `⌘ ⌥ ⇧ L` (Sublime Text (macOS)), `⌘ ⌥ ⇧ L` (Xcode), `Ctrl+Alt+Shift+L` (Visual Studio), `⌘ ⌥ ⇧ L` (Visual Studio (macOS)), `Ctrl+Alt+Shift+L` (ReSharper), `⌘ ⌥ ⇧ L` (ReSharper (macOS)), `Ctrl+Alt+Shift+L` (QtCreator), `⌘ ⌥ ⇧ L` (QtCreator (macOS)), `Ctrl+Alt+Shift+L` (NetBeans), `Ctrl+Alt+Shift+L` (Eclipse), `⌘ ⌥ ⇧ L` (Eclipse (macOS)) or in the  Project tool window , right-click the file and select `Reformat Code`.

> **Note:**
> Keep pressing `Shift` (Windows), `Shift` (macOS), `Shift` (IntelliJ IDEA Classic (macOS)), `Shift` (macOS System Shortcuts), `Shift` (XWin), `Shift` (GNOME), `Shift` (KDE), `Shift` (Emacs), `Shift` (Sublime Text), `Shift` (Sublime Text (macOS)), `Shift` (Xcode), `Shift` (Visual Studio), `Shift` (Visual Studio (macOS)), `Shift` (ReSharper), `Shift` (ReSharper (macOS)), `Shift` (QtCreator), `Shift` (QtCreator (macOS)), `Shift` (NetBeans), `Shift` (Eclipse), `Shift` (Eclipse (macOS)) and select additional files for a group reformatting.

2. In the [Reformat File](null) dialog that opens, if you need, select the following reformatting options:

![Reformat Files dialog](https://resources.jetbrains.com/help/img/idea/2026.2/cl_reformat_files.png)

* Code cleanup: select this option to run the code cleanup inspections.

* Do not keep line breaks: reformat line breaks according to the code style settings. This option is available only when `Keep when reformatting | Line breaks` is enabled for the current language in `Settings | Editor | Code Style | <language> | Wrapping and Braces`. If you select Do not keep line breaks, the IDE temporarily overrides that setting and removes existing line breaks according to the current code style. You can also use the [Reformat again to remove custom line breaks](settings-smart-keys.html#remove-custom-line-breaks) option in `Settings | Editor | Smart Keys`.

3. Click Run.

If you want to see the exact changes made to your code during the reformatting, use the [Local History](local-history.html) feature.

Procedure: Reformat line indents

You can reformat line indents based on the specified settings.

1. While in the editor, select the necessary code fragment and press `Ctrl+Alt+I` (Windows), `⌃ ⌥ I` (macOS), `⌘ ⌥ I` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ I` (macOS System Shortcuts), `Ctrl+Alt+I` (XWin), `Ctrl+Alt+I` (GNOME), `Ctrl+Alt+I` (KDE), `Ctrl+Alt+I` (Emacs), `Ctrl+Alt+I` (Sublime Text), `⌃ ⌥ I` (Sublime Text (macOS)), `⌃ I` (Xcode), `Ctrl+Alt+I` (Visual Studio), `⌃ ⌥ I` (Visual Studio (macOS)), `Ctrl+Alt+I` (ReSharper), `⌃ ⌥ I` (ReSharper (macOS)), `Ctrl+I` (QtCreator), `⌘ I` (QtCreator (macOS)), `Ctrl+Alt+I` (NetBeans), `Ctrl+I` (Eclipse), `⌘ I` (Eclipse (macOS)).

2. If you need to adjust indentation settings,   in the Settings dialog (`Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `⌘ Comma` (Xcode), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (ReSharper), `⌘ Comma` (ReSharper (macOS)), `Ctrl+Alt+S` (QtCreator), `⌘ Comma` (QtCreator (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))), go to `Editor | Code Style`. Select the language for which you want to change indentation.

3. On the Tabs and Indents tab, specify the appropriate indents options and click OK.

> **Note:**
> [Automatic indent detection](indentation.html#detect-indentation) can override the indents that you configure on the Tabs and Indents tab. In this case, CLion displays a notification.

Procedure: Automatically reformat code on save

You can configure the IDE to reformat code in modified files automatically when your changes are [saved](saving-and-reverting-changes.html).

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `⌘ Comma` (Xcode), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (ReSharper), `⌘ Comma` (ReSharper (macOS)), `Ctrl+Alt+S` (QtCreator), `⌘ Comma` (QtCreator (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Tools | Actions on Save`.

2. Enable the Reformat code option.

3. Additionally, you can configure the way the IDE will reformat your code:

* Click Configure scope… to specify the patterns of filenames and directories that you want to [exclude from reformatting](#exclude_file_from_reformat).

* From the All file types list, select the types of files in which you want to reformat code.

* Select Whole file or Changed lines if your project is under version control. If you select Changed lines, reformatting will apply only to the lines of code that have been changed locally, but not yet checked in to the repository.

Procedure: Reformat code on commit

You can reformat your code automatically when you commit your changes to the repository if your project is under [version control](version-control-integration.html). In this case, only the added or modified code will be reformatted.

> **Note:**
> This feature is only available for [Git](using-git-integration.html) and [Mercurial](using-mercurial-integration.html).

1. Press `Alt+0` (Windows), `⌘ 0` (macOS), `⌘ 0` (IntelliJ IDEA Classic (macOS)), `⌘ 0` (macOS System Shortcuts), `Alt+0` (XWin), `Alt+0` (GNOME), `Alt+0` (KDE), `Alt+0` (Emacs), `Alt+0` (Sublime Text), `⌘ 0` (Sublime Text (macOS)), `⌘ 0` (Xcode), `Alt+0` (Visual Studio), `Alt+0` (Visual Studio (macOS)), `Alt+0` (ReSharper), `Alt+0` (ReSharper (macOS)), `Alt+0` (QtCreator), `⌘ 0` (QtCreator (macOS)), `Alt+0` (NetBeans), `Alt+0` (Eclipse), `⌘ 0` (Eclipse (macOS)) to open the Commit tool window and click Show Commit Options ![the Settings button](https://resources.jetbrains.com/help/img/idea/2026.2/app.expui.general.settings.svg).

2. Under the Commit Checks menu, enable the Reformat code option.

After you have enabled the option, the added or modified code will be reformatted every time you make a commit.

Procedure: Exclude files from reformatting

You can exclude a group of files and directories from reformatting and import optimization .

1. In the Settings dialog (`Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `⌘ Comma` (Xcode), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (ReSharper), `⌘ Comma` (ReSharper (macOS)), `Ctrl+Alt+S` (QtCreator), `⌘ Comma` (QtCreator (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))), go to `Editor | Code Style`.

2. Switch to the Formatter tab and in the Do not format field, enter the files and directories that you want to exclude using a [glob pattern](https://en.wikipedia.org/wiki/Glob_(programming)).

You can specify several glob patterns separated with a semicolon `;`. If you click ![the Expand icon](https://resources.jetbrains.com/help/img/idea/2026.2/app.expui.inline.expand.svg), the field will expand, and each pattern will be shown on a separate line.

> **Tip:**
> Enter the asterisk `*` wildcard to disable reformatting altogether.

3. Apply the changes and close the dialog.

![Specifying a glob pattern for excluding files from reformatting](https://resources.jetbrains.com/help/img/idea/2026.2/reformat-glob-pattern.png)

Procedure: Exclude code fragments from reformatting in the editor

1. In the Settings dialog (`Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `⌘ Comma` (Xcode), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (ReSharper), `⌘ Comma` (ReSharper (macOS)), `Ctrl+Alt+S` (QtCreator), `⌘ Comma` (QtCreator (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))), go to `Editor | Code Style`.

2. Switch to the Formatter tab and enable the Turn formatter on/off with markers in code comments option.

3. In the editor, at the beginning of a region that you want to exclude, create a line comment `Ctrl+/` (Windows), `⌘ /` (macOS), `⌘ /` (IntelliJ IDEA Classic (macOS)), `⌘ /` (macOS System Shortcuts), `Ctrl+/` (XWin), `Ctrl+/` (GNOME), `Ctrl+/` (KDE), `Alt+;` (Emacs), `Ctrl+/` (Sublime Text), `⌘ /` (Sublime Text (macOS)), `⌘ /` (Xcode), `Ctrl+Alt+/` (Visual Studio), `⌘ ⌥ /` (Visual Studio (macOS)), `Ctrl+/` (ReSharper), `⌘ /` (ReSharper (macOS)), `Ctrl+/` (QtCreator), `⌘ /` (QtCreator (macOS)), `Ctrl+/` (NetBeans), `Ctrl+/` (Eclipse), `⌘ /` (Eclipse (macOS)) and type `@formatter:off`. At the end of the region, create another line comment and type `@formatter :on`.

The code between the markers won't be reformatted.

## See also

### Procedures

[EditorConfig](editorconfig.html) [Code style schemes](configuring-code-style.html)

### Reference

[Settings | Code Style](settings-code-style.html)

### JetBrains Blog Posts

[Recent code formatter updates](https://blog.jetbrains.com/clion/2025/08/clion-2025-2-release/#reworked-code-formatter)

