如何在 Intellij 中抑制对选定代码的重新格式化?

How to suppress reformatting for selected code in Intellij?

我有一些 Kotlin 代码,超过 100 行,在一个更大的 class 中。代码应与此类似:

fun generateAllCards(): Array<Card> {
    return arrayOf(
        Card(FORMAT_1, COLOUR_BLACK, TYPE_RUN, 1, POINTS_1, arrayOf(RunAbility(arrayOf(TRIGGER_RAN_BLUE), EFFECT_CAN_FLY_10_SEC))),
        Card(FORMAT_2, COLOUR_YELLOW, TYPE_DRIVE, 3, POINTS_3, arrayOf(DriveAbility(arrayOf(TRIGGER_DROVE_RED, TRIGGER_DROVE_BLUE), arrayOf(GET_ONE_VICTORY_TOKEN)))),
        ...
    )
}

但是 IntelliJ 的自动重新格式化将我的首选格式替换为:

fun generateAllCards(): Array<Card> {
    return arrayOf(
        Card(
            FORMAT_1,
            COLOUR_BLACK,
            TYPE_RUN,
            1,
            POINTS_1,
            arrayOf(RunAbility(arrayOf(TRIGGER_RAN_BLUE), EFFECT_CAN_FLY_10_SEC))
        ),
        Card(
            FORMAT_2,
            COLOUR_YELLOW,
            TYPE_DRIVE,
            3,
            POINTS_3,
            arrayOf(
                DriveAbility(
                    arrayOf(TRIGGER_DROVE_RED, TRIGGER_DROVE_BLUE),
                    arrayOf(GET_ONE_VICTORY_TOKEN)
                )
            )
        ),
        ...
    )
}

我已经创建了一个脚本来在重新格式化程序破坏它时对其进行修复,但这是不可持续的。我想防止重新格式化(自动或手动)仅在此代码块内,而不是整个文件或任何更大的范围。我希望 IntelliJ 继续在其他地方重新格式化代码,包括此代码来自的文件的其余部分。

我想可能会有像 @SuppressFormatting 这样的东西放在块的顶部。我尝试使用 //@formatter:off ... //@formatter:on,但如前所述 here,它似乎并没有停止重新格式化。还有其他有用的东西吗?

要使用 //@formatter:off///@formatter:on,您需要先启用它们。

转到 Settings->Code style->Formatter->Turn formatter on/off with markers in code comments