How to disable code formatting for some part of the code using comments?
Asked Answered
E

6

437

I'd like to selectively disable the IntelliJ IDEA code formatter for a portion of code just like I can in Eclipse. Does IntelliJ support this feature, and if so, how do I use it?

Effeminize answered 30/7, 2010 at 20:56 Comment(2)
Official Documentation for skipping some part of the code using comments: jetbrains.com/help/idea/…Palazzo
This feature should be definitively enabled by default! It would be niceRosannarosanne
R
773

Since version 13 it's possible to wrap the code with

// @formatter:off
...
// @formatter:on 

IntelliJ IDEA v.2018+:

File > Settings > Editor > Code Style

IntelliJ IDEA v.2016+:

Preferences > Editor > Code Style

IntelliJ IDEA v.14+:

Preferences > Editor > Code Style > Formatter Control

You can change the formatter control markers, as long as they're in comments.


Ensure formatter markers in comments are enabled, as shown in the following figure:

Formatter Control Preference

Rsfsr answered 21/10, 2013 at 10:41 Comment(10)
Currently, @formatter:on (or whatever you define) does nothing unless @formatter:off was already present. There are likely other ways of turning off reformatting -- or getting the editor to not reformat your code automatically. Search your preferences. This setting is to control sections that shouldn't be reformatted when manually performing a "Reformat", for instance.Dreyer
You must go to Preferences->Code Style->General->Formatter Control and check Enable formatter markers in comments for this to work.Scottscotti
In 14, this is in Preferences > Editor > Code Style > Formatter ControlLeaden
In the 2016.x version it's found in Settings > Editor > Code Style.Papeterie
Another thing is that you actually can amend the markers. Then if you want to use above example your markers must match.Minier
Why does this option disabled by default? It seems very useful to put markers in the code and restrict formatting for the whole team.Terracotta
one thing to note here: for html, I've seen the @formatter notation seem to have no effect when deep inside tags or template blocksMitchelmitchell
Note that // @formatter: off will not work (only without white-space)Damiondamita
@TimurYarosh there is a ticket for it in the Intellij IDEA youtrack, feel free to upvote it, maybe Jetbrains will finally implement it: youtrack.jetbrains.com/issue/IDEA-118043Ellenaellender
is possible only for java format? for XML files? tnxWinebaum
D
190

Note for Carlos' answer of @formatter:off and @formatter:on to work, you may need to enable the preference first:

In IntelliJ Preferences, under Code Style, General, Formatter Control there is a checkbox "Enable formatter markers in comments"

Discovered via How to config intellij-idea not format some part of the code?

IDEA-56995 Disabled code formatting per region using comments

Dreyer answered 26/6, 2014 at 19:32 Comment(3)
I want to disable this on entire projectAstral
Search preferences for "Reformat" to see checkboxes for quite a few of the ways IntelliJ reformats code automatically: on paste, on typing a closing brace, from templates... You can really dig in if you want to change the functionality. Not that it always makes sense. Use IntelliJ's support if asking a question, or their bug tracker if making a suggestion.Dreyer
It's equally possible that enabling regular expressions, then using . as your formatter off instruction might work. So long as the first line in your file can be reformatted. No guarantees though. :)Dreyer
M
36

In xml files, use:

<!-- @formatter:off -->
<!-- @formatter:on -->
Moorehead answered 11/10, 2016 at 7:25 Comment(3)
Doesn't work in xml files. Android Studio 3.4.1 based on Intelli-J.Stele
It doesn't work in IntelliJ IntelliJ IDEA 2020.1.2 unless you enable then, in “File/Settings/Editor/Code Style“, in “Formatter Control” section.Hunch
Works in Rider.Ulaulah
H
9

Obsolete answer from 2010:

No, it's not possible right now, I've submitted a new issue which you can track.

As a temporary solution you can use external formatter plug-in for IDEA which can utilize Eclipse code formatter (I didn't check whether this particular option is supported).

Haplosis answered 30/7, 2010 at 21:52 Comment(0)
W
0

It's currently not possible to exclude entire files (like regression test data xmls) from formatting. See https://youtrack.jetbrains.com/issue/IDEA-167112

Wifehood answered 13/9, 2018 at 13:31 Comment(0)
B
-1

A related question is how to stop IntelliJ formatting all files of a certain extension. I recently started using ktlint for my codebase and wanted IntelliJ to not interfere.

Using the ktlint IntelliJ plugin, I setup ktlint to run on any save in distract-free mode.

Under Tools -> Action on Save I modified the reformat code action to exclude Kotlin files.

Under Keymap, I modified the Reformat Code command to not use the hot key I normally use for saving (CMD-s).

Under Keymap, I modified the Save All command to have the hotkey CMD-s.

Current for IntelliJ 2023.3.3, Ktlint IntelliJ plugin 0.21.0

Bracket answered 27/3 at 18:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.