【问题标题】:Eclipse formatter inserts whitespace before method on linebreakEclipse 格式化程序在换行符的方法之前插入空格
【发布时间】:2013-10-14 17:58:38
【问题描述】:
使用 Eclipse Juno 我在使用 Java 代码格式化程序时遇到了以下问题:
如果方法调用导致换行,Eclipse 会在方法调用的“点”之前插入一个空格(_ 应表示空格)
int nbo = new Foo()//linebreak
_.method();
不幸的是,这个空格会触发 Checkstyle 警告(NoWhitespaceBefore 规则)。是否有可能停止日食插入空白?还是 Checkstyle 配置问题?
提前感谢您的帮助。
【问题讨论】:
标签:
java
eclipse
whitespace
checkstyle
【解决方案1】:
您可以将最大线宽增加到 120 或更大的数字。
- 在菜单窗口 -> 首选项
- 导航到 Java -> 代码样式 -> 格式化程序
- 点击编辑按钮打开一个新对话框
- 在换行选项卡上,更改最大线宽
- 最后,更改配置文件名并点击确定
【解决方案2】:
您可以通过更改格式化程序设置或更改 Checkstyle 配置来解决此问题。
选项 1 - 格式化程序设置 (对于 Eclipse 4.3,但对于 Juno 应该相同)
- 窗口 → 首选项 → Java → 代码样式 → 格式化程序 → 编辑
- 换行 → 函数调用 → 限定调用
- 设置为不换行
选项 2 - Checkstyle 配置
- 从 NoWhitespaceBefore 规则中删除
DOT 标记:
<module name="NoWhitespaceBefore">
<property name="tokens" value="SEMI,POST_DEC,POST_INC"/>
</module>