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?
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: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 Preferences
->Code Style
->General
->Formatter Control
and check Enable formatter markers in comments
for this to work. –
Scottscotti // @formatter: off
will not work (only without white-space) –
Damiondamita Note for Carlos' answer of @formatter:off
and @formatter:on
to work, you may need to enable the preference first:
Discovered via How to config intellij-idea not format some part of the code?
IDEA-56995 Disabled code formatting per region using comments
.
as your formatter off instruction might work. So long as the first line in your file can be reformatted. No guarantees though. :) –
Dreyer In xml files, use:
<!-- @formatter:off -->
<!-- @formatter:on -->
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).
It's currently not possible to exclude entire files (like regression test data xmls) from formatting. See https://youtrack.jetbrains.com/issue/IDEA-167112
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
© 2022 - 2024 — McMap. All rights reserved.