重构时如何阻止 IDEA 重新格式化我的代码?

How do I stop IDEA from reformatting my code when refactoring?

重构代码时(例如:Refactor -> Rename),IntelliJ IDEA 14.x 还重新包装(重新格式化)我的代码以适应 80 列限制。

示例:这是重构前的代码:

正在进行重构:

... 我按下 Enter 后代码为 re-wrapped:

最令人恼火的是,即使 Java 类 当前未在编辑器中打开(但受重构影响)也会重新格式化,从而增加传播格式更改的机会悄悄进入我的 VCS。

我要实现的是:

如何实现?

如果你正在做一个实际的 "Refactoring -> Rename",例如 SHIFT + F6编辑引用该变量名称的每个文件 无论它们当前是否在编辑器中打开都是无关紧要的如果你改变了所有受影响的文件都会被编辑并且任何 VCS 都会考虑它们改变了.

在重构时重新格式化整个文件的行为在 Idea 中存在了很长时间,针对该行为提出的所有错误都永远处于 未分配 状态。 Here is one example.

我怀疑这种行为是否会改变,我希望它不会改变。

如果您想要长得离谱的变量名,那么您需要关闭右边距或将其也长得离谱。或者更改任何导致格式不同的配置。

就我个人而言,我将所有相关的东西设置为 ALWAYS 无论如何,所以我没有以一种方式格式化某些东西而以不同的方式格式化一些东西。在大型代码库中,一致性比其他任何事情都重要。

Idea 中的 VCS 工具非常强大,是任何其他 IDE 无法比拟的。您可以很容易地看到发生了什么变化,并将它们从任何提交中排除或按您想要的方式修复它们。

Idea 有一个提交格式 复选框,用于它支持的所有各种版本控制系统。

由于我不使用任何自动格式设置并且大部分情况下都是手动换行,所以我找到了另一个解决方案。

"File -> Settings -> Editor -> Code Style -> Java -> Wrapping and Braces" 下,我完全禁用了自动换行(即将所有内容设置为 "Do not wrap",其中适当的,除了 class,方法和字段注释,它们默认设置为 "Wrap always"

这种方法的缺点 是现在 IDEA 有时在重构过程中 展开 长行,但这些更容易发现。