IDEA Alibaba规范化模板(代码格式化,注释模板化,常用自定义快捷键)
# 背景
本文意在将IDEA中的代码格式和注释格式进行统一化。 研发团队的成员的代码格式和注释格式统一化。 统一的代码格式和注释格式,能给代码阅读上带来极大的便利,给代码改动上提高极大的效率。
# 代码格式话模板配置(非必要配置,也可直接使用IDEA默认格式化即可)
阿里模板下载地址 https://github.com/alibaba/p3c/tree/master/p3c-formatter (opens new window)
- 下载阿里配置文件(eclipse-codestyle.xml),因为此文件是针对ecplice的,在IDEA中使用配置文件,需要安装Eclipse Code Formatter插件
- 配置代码格式,File->Settings->Other Settings->Eclipse Code Formatter进行idea代码格式配置:将代码格式化文件eclipse-codestyle.xml,配置到插件中:
# IDEA代码注释模板配置
为了减少警告以及更好的集成统一API的文档第三方工具,我们严格按照java文档注释 (opens new window)来配置相关的模板配置。
# 类注释模板配置
IDEA配置导航地址:settings->Editor->File and Code Templates->Files->class 类注释模板(注释模板的上的空行也算是模板的一部分不要更改,复制到指定位置并且一定保持与给出的模板一模一样,换行以及*
以及*
号之间的空格都要一一对应)
/**
* ${NAME} ${description}
* @author ${USER}
* @version ${YEAR}/${MONTH}/${DAY} ${HOUR}:${MINUTE}
**/
public class ${NAME} {
}
2
3
4
5
6
7
8
9
# 接口注释模板配置
IDEA配置导航地址:settings->Editor->File and Code Templates->Files->Interface 接口注释模板(注释模板的上的空行也算是模板的一部分不要更改,复制到指定位置并且一定保持与给出的模板一模一样,换行以及*
以及*
号之间的空格都要一一对应)
/**
* ${NAME} ${description}
* @author ${USER}
* @version ${YEAR}/${MONTH}/${DAY} ${HOUR}:${MINUTE}
**/
public interface ${NAME} {
}
2
3
4
5
6
7
8
9
# 枚举注释模板配置
IDEA配置导航地址:settings->Editor->File and Code Templates->Files->Enum 枚举注释模板(注释模板的上的空行也算是模板的一部分不要更改,复制到指定位置并且一定保持与给出的模板一模一样,换行以及*
以及*
号之间的空格都要一一对应)
/**
* ${NAME} ${description}
* @author ${USER}
* @version ${YEAR}/${MONTH}/${DAY} ${HOUR}:${MINUTE}
**/
public enum ${NAME} {
}
2
3
4
5
6
7
8
9
# 注解注释模板配置
注解注释模板(注释模板的上的空行也算是模板的一部分不要更改,复制到指定位置并且一定保持与给出的模板一模一样,换行以及*
以及*
号之间的空格都要一一对应)
/**
* ${NAME} ${description}
* @author ${USER}
* @version ${YEAR}/${MONTH}/${DAY} ${HOUR}:${MINUTE}
**/
public @interface ${NAME} {
}
2
3
4
5
6
7
8
9
# 方法注释模板配置
IDEA配置导航地址:settings->Editor->Live Templates
方法注释模板(注释模板的上的空行也算是模板的一部分不要更改,复制到指定位置并且一定保持与给出的模板一模一样,换行以及*
以及*
号之间的空格都要一一对应)
**
* TODO
$param$
* @return $return$
* @author Arnold
* @throws
*
**/
2
3
4
5
6
7
8
Template Variables具体参数对应表达式
Name | Expression |
---|---|
time | date() |
methodName | methodName() |
param | 见下面的引用 |
return | methodReturnType() |
上表的param表达式:groovyScript("def result=''; def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\r\n' : '')}; return result", methodParameters())
在方法前面输入/m
即可看到方法注释自动填充
# 注意点
严格按照上述说法配置任然可能导致问题
- 注释模板中的
*
号无法对齐成一条直线,你可以自己手动调整确保注释中的*
号在一条直线上,好看美观 - Template Variables中param 无法成功引出参数具体的值
最终以下图展示的为成功配置的标准(由于这个之前模板做了多次调整,可能下图展示的效果和上述模板的不一致,最终都以上述最新的注释模板配置为主)
# Class注释成功标准图示
# Interface注释成功标准图示
# Enum注释成功标准图示
# @interface注释成功标准图示
# 方法注释成功标准图示
# 常用自定义快捷键
# 快速新建Class
Template text 模板:$Clazz$ $obj$ = new $Clazz$($END$);
验证是否成功
# 快速集合判空(collection is empty)
Template text 模板:if(CollUtil.isEmpty($VAR$)){ $END$ }
# 快速集合非空(collection is not empty)
Template text 模板:if(CollUtil.isNotEmpty($VAR$)){ $END$ }
# 快速String非空(string is not empty)
Template text 模板:if(StrUtil.isNotEmpty($VAR$)){ $END$ }
# 快速String非空格(string is not blank)
Template text 模板:if(StrUtil.isNotBlank($VAR$)){ $END$ }
# 最后参考链接
IDEA类和方法注释模板设置 (opens new window)
IDEA配置类和方法注释模板 (opens new window)
idea设置注释(类和方法),支持多参数 (opens new window)
idea配置阿里格式化模板+注释模板 (opens new window)
如果再配置过程中有任何问题请及时反馈