如何配置intellij-idea不格式化代码的某些部分?

时间:2012-12-24 10:38:56

标签: intellij-idea code-formatting

在html文件中,有一些代码使用自定义模板语言:

<script type="text/javascript">
    function ($scope, JsRoutes) {
        $scope.rows = [
            ${"#{list rows, as: 'row', separator: ','}"}
            {
            #{list fieldConfigs, as: 'f', separator: ','}
            ${f.name} : ${'$'}{row.${f.name}.toJson()}#{/list}
            }
            ${'#{/list}'}
        ]
    }
</script>

是否可以配置intellij-idea不格式化(但格式化文档的其他部分)?因为想法会使格式化之后难以阅读:

<script type="text/javascript">
    function ($scope, JsRoutes) {
        $scope.rows = [
            ${"#{list rows, as: 'row', separator: ','}"}
            {
    #{list fieldConfigs, as: 'f', separator: ','}
    ${f.name} :
        ${'$'}{
            row.${f.name}.toJson()
        }#{/list}
    }
    ${'#{/list}'}
    ]
    }
</script>

4 个答案:

答案 0 :(得分:43)

在我的EAP 13.1版中,您必须在设置中启用以下选项

Preferences - &gt; Code Style - &gt; General - &gt; Formatter Control - &gt; Enable formatter markers in comments

,然后才能使用这些评论,

// @formatter:off

// @formatter:on 

或这些(取决于语言):

<!--@formatter:off-->

<!--@formatter:on-->

截图:

Screenshot highlighting the checkbox for Enable formatter markers in comments under Preferences

答案 1 :(得分:24)

此功能已实施,您现在可以使用特殊注释禁用代码区域的格式。

markers

您可以找到more details and examples in the documentation


2012年的原始答案:

现在还不行,请投票支持此功能请求:

  • IDEA-56995使用评论禁用每个地区的代码格式

答案 2 :(得分:8)

EAP 13开始,您可以使用以下注释触发格式化程序:

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

要在“环绕声”中启用它,您可以在“环绕声”部分中定义一个实时模板:

// @formatter:off
$SELECTION$
// @formatter:off

您可以在Settings - &gt;中找到这些设置。 Code Style - &gt; General并设置自己的触发词。

答案 3 :(得分:1)

值得注意的是,格式化程序控件似乎不适用于javadoc注释。它需要是常规的C或C ++风格的注释。因此// @formatter:off作品/* @formatter:off */也有效,但/** @formatter:off */没有。