IDEA代码格式化统一配置

7,181 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

背景

最近新项目大家都配置了 vjtools 的 代码格式化模板,但是在每个人更新代码以后,还是会出现需要格式化的情况,导致每个人格式化后的结果不一致。

在网上找了些资料没找到为什么会出现这种情况。

由于公司在 gitlab 服务端使用了阿里巴巴 P3C 检测机制,在阿里巴巴的仓库也找到了代码格式化文件,所以把代码格式化模板统一改造成阿里的。

准备工作

  • 插件安装
    • Eclipse Code Formatter
    • Save Actions
    • 插件安装完成以后重启IDEA
  • 下载 eclipse-codestyle.xml 文件到本地固定目录,IDEA引用此文件,请勿删除
  • 注意:Eclipse Code Formatter 配置生效范围为 workspace 如果切换工作空间切记重新配置

安装IDEA Eclipse Formatter插件

image-20210926150427032

推荐安装Save Actions插件

image-20210926150337681

插件配置

Eclipse Code Formatter 插件配置

  • Other Settings 下面找到 Eclipse Code Formatter
  • Eclipse formatter config 模块下选择下载的 eclipse-codestyle.xml 文件
  • 看不到 Browse... 按钮的话把窗口拉宽,或者拖到下发滚动条
  • 点击 OK 使配置生效

image-20210926152206649

Save Actions 插件配置

image-20210926152458180

文件头注释配置

/**
 * @author ${USER}
 * @date ${DATE}
 */

image-20210926155157744

关于安装阿里巴巴代码检测的文章已经很多了,这里不在赘述。

TIPS

遇到不想自动格式化的代码怎么处理?

  • 开启 IDEA formatter 注释支持

image-20210926153121775

  • 在代码中不需要格式化的地方添加 @formatter:off 注释

  • 在不需要格式化代码的最后一行后开启格式化功能 @formatter:on

  • 示例代码

// @formatter:off
MockConfig mockConfig = new MockConfig()
        .doubleRange(0,1).decimalScale(5).globalConfig()
        .subConfig(ResultData.class, "status").numberRegex("1")
        .subConfig("subjectName").stringRegex("语文")
        .subConfig("telephone").stringRegex("13[0-9]{9}")
        .globalConfig();
// @formatter:on

关闭P3C检测

  • 在方法或者类上添加以下注解
@SuppressWarnings("PMD")