【问题标题】:How to disable code formatting for some part of the code using comments?如何使用注释禁用部分代码的代码格式化?
【发布时间】:2021-03-26 14:28:13
【问题描述】:

我想选择性地禁用 the IntelliJ IDEA code formatter 的一部分代码 just like I can in Eclipse。 IntelliJ 是否支持此功能,如果支持,我该如何使用它?

【问题讨论】:

标签: intellij-idea code-formatting


【解决方案1】:

从版本 13 开始,可以使用

来包装代码
// @formatter:off
...
// @formatter:on 

IntelliJ IDEA v.2018+:

文件 > 设置 > 编辑器 > 代码样式

IntelliJ IDEA v.2016+:

首选项 > 编辑器 > 代码样式

IntelliJ IDEA v.14+:

首选项 > 编辑器 > 代码样式 > 格式化程序控件

您可以更改格式化程序控制标记,只要它们在 cmets 中即可。


确保启用了cmets中的格式化标记,如下图所示:

【讨论】:

  • 目前,@formatter:on(或任何你定义的)什么都不做,除非@formatter:off 已经存在。可能还有其他方法可以关闭重新格式化 - 或者让编辑器不自动重新格式化您的代码。搜索您的偏好。例如,此设置用于控制在手动执行“重新格式化”时不应重新格式化的部分。
  • 您必须转至Preferences->Code Style->General->Formatter Control 并检查Enable formatter markers in comments 以使其正常工作。
  • 14中,这是在Preferences > Editor > Code Style > Formatter Control
  • 在 2016.x 版本中,它位于 Settings > Editor > Code Style。
  • 为什么默认禁用此选项?在代码中放置标记并限制整个团队的格式似乎非常有用。
【解决方案2】:

注意 Carlos 对 @formatter:off@formatter:on 的回答要正常工作,您可能需要先启用首选项:

通过How to config intellij-idea not format some part of the code?发现

IDEA-56995 使用 cmets 禁用每个区域的代码格式化

【讨论】:

  • 我想在整个项目中禁用它
  • 搜索“重新格式化”首选项以查看 IntelliJ 自动重新格式化代码的多种方式的复选框:粘贴时、键入右大括号时、来自模板...想改变功能。并不是说它总是有意义的。如果提出问题,请使用 IntelliJ 的支持,如果提出建议,请使用他们的错误跟踪器。
  • 启用正则表达式,然后使用. 作为格式化程序关闭指令同样可能有效。只要您文件中的第一行可以重新格式化。虽然没有保证。 :)
【解决方案3】:

在 xml 文件中使用:

<!-- @formatter:off -->
<!-- @formatter:on -->

【讨论】:

  • 不适用于 xml 文件。基于 Intelli-J 的 Android Studio 3.4.1。
  • 它在 IntelliJ IntelliJ IDEA 2020.1.2 中不起作用,除非您在“文件/设置/编辑器/代码样式”的“格式化程序控制”部分启用。
【解决方案4】:

2010 年过时的答案:

不,现在不可能,我有 submitted a new issue,你可以跟踪它。

作为临时解决方案,您可以将external formatter plug-in 用于可以利用 Eclipse 代码格式化程序的 IDEA(我没有检查是否支持此特定选项)。

【讨论】:

    【解决方案5】:

    目前无法从格式化中排除整个文件(如回归测试数据 xml)。见https://youtrack.jetbrains.com/issue/IDEA-167112

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 2021-02-24
      • 2012-08-14
      • 2012-10-08
      • 2014-10-23
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      相关资源
      最近更新 更多