如何让IDEA与STS、Eclipse的代码风格及格式化规则保持一致?
解决IDEA与Eclipse/STS代码格式化差异方案
- 首先确认格式化规则导入生效:
让团队使用Eclipse/STS的成员从窗口 > 偏好设置 > Java > 代码样式 > 格式化程序路径导出官方在用的*.xml格式规则文件,不要使用网上的通用规则。导入IDEA时打开File > Settings > Editor > Code Style > Java,点击设置齿轮图标选择Import Scheme > Eclipse XML Profile,导入完成后必须在当前项目的代码风格方案下拉列表中选中刚导入的规则,导入后未切换默认方案是规则不生效的最常见原因。 - 手动对齐两类IDE的差异化配置(导入规则无法覆盖的项):
- 行尾符统一:在
File > Settings > Editor > Code Style的Line separator选项中选择和团队一致的LF/CRLF,关闭IDEA自动转换行尾符的开关,避免隐形字符差异。 - 缩进规则对齐:在
Java > Tabs and Indents页签,和团队确认使用制表符还是空格缩进,对应勾选Use tab character或者设置相同的空格缩进数,同时取消勾选Smart tabs,该配置是两类IDE缩进差异的核心原因。 - 注释规则对齐:在
Java > Code Generation页签取消Comment code区域的Line comment at first column、Block comment at first column勾选,再到Wrapping and Braces页签调整JavaDoc相关的换行、空格规则和Eclipse一致。 - 空白符规则对齐:在
Java > Spaces页签逐行核对括号、运算符、逗号前后的空格规则,和团队Eclipse配置完全对齐。
- 行尾符统一:在
- 配置局部格式化减少差异:
打开File > Settings > Version Control > Commit,勾选Commit existing changes and reformat only changed code,仅格式化你修改的代码段,不会改动其他成员提交的未修改代码,从根源减少不必要的Git差异。 - 校验配置生效情况:
取一份团队成员用Eclipse格式化过的Java文件,用配置好的IDEA再次格式化,执行git diff查看差异,如有隐形差异可执行git diff --color-words查看字符级别的区别,针对性调整对应配置即可。
内容的提问来源于stack exchange,提问作者Gimmcik
相关产品推荐
相关产品推荐

