2015-05-15 47 views
7

当重构代码(例如:重构 - >重命名),IntelliJ IDEA的14.x也rewraps(重新格式化)我的代码以装配到80列的限制。重构时如何阻止IDEA重新格式化代码?

举例:这里的重构前的代码:正在进行 enter image description here

重构: enter image description here

...和代码重新包装一次我按Enterenter image description here

最令人讨厌的是,即使是目前尚未在编辑器中打开(但受重构影响)的Java类也会被重新格式化,从而增加了forma将更改传播到我的VCS未被注意到。

我想实现的是:

  • 保持原有的打印边距为80列,但仍
  • 有办法重新命名变量/类/方法时保留我的原始格式。

我该如何做到这一点?

+2

我从来没有注意到这个问题。我想知道是否在设置 - >编辑器 - >代码风格 - > Java-> Wrapping和Braces可能是你的问题? – Travis

+0

这些设置只应该影响*手动*格式(即通过*代码* - > *重新格式化代码* *调用)。我所谈论的是隐式重新格式化 - 并不是“格式化行为不正确”:相反,不应该发生格式化。 – Bass

+0

https://www.jetbrains.com/idea/webhelp10.5/wrapping-and-braces.html –

回答

0

由于我没有使用任何自动格式化,并且大多手动包装我的长线,我找到了另一种解决方案。

“文件 - >设置 - >编辑 - >代码样式 - >爪哇 - >包装和大括号”,我已禁用自动包装完全(即所有设置为“不换行”酌情,除了类别,方法和字段注释,它们被设置为“默认总是”)。

这种方法的缺点,现在IDEA有时解开重构过程中排长队,但这些都是比较容易辨认。

0

如果你正在做一个实际的“重构 - >重命名”,例如与SHIFT + F6您编辑每一个有变量名参考文件他们是否是目前正处于开放编辑器是无关紧要的,如果你改变了所有受影响的文件被编辑的东西,任何VCS将认为它们被更改为

对重构整个文件进行重新格式化的行为在Idea中已经很长时间了,并且针对该行为提交的所有错误都将永久设置为未分配的状态。 Here is one example

我怀疑这种行为会改变,我希望它没有。

如果你想要可笑的长变量名称,那么你需要关闭右边距或使其变得非常可笑。或者改变任何配置导致事物格式不同。

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

Idea中的VCS工具功能非常强大,在任何其他IDE中都是无与伦比的。你可以很容易地看到发生了什么变化,并将它们从任何提交中排除或修复它们的方式。

对于它支持的所有各种版本控制系统,想法在提交复选框上有一个格式。

+0

谢谢。 Eclipse和IDEA都不执行任何“保存时格式”策略,而且我很少看到“重新提交格式”VCS策略。因此,这种无条件的行为意味着开发人员的自由度较低,至少可以说是很奇怪。如果一条长线仅略微超过打印边距,我宁愿将其解开。 – Bass

相关问题