首页 > 解决方案 > 如何抑制 Intellij 中选定代码的重新格式化?

问题描述

我在一个更大的类中有一些超过 100 行的 Kotlin 代码。代码应类似于以下内容:

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,但正如此处所述,它似乎并没有停止重新格式化。还有其他的工作吗?

标签: kotlinintellij-ideareformatting

解决方案


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

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

在此处输入图像描述


推荐阅读