一、背景
通常在开发过程中,需要对类和方法进行注释,以便代码可读性及jdoc文档生成,但基本设置一次便后续无需关注或调整,此文主要进行记录下设置过程,以及个人常用的注释模版。以下操作流程以idea 2023.2版本说明,其他版本除了菜单路径几乎无差别。
二、类注释模板
1、IntelliJ IDEA-->settings-->Editor-->File and Code Templates-->Files
说明:(本文以Class文件为例,不同的同学可能需要针对Interface或Enum等其他具体的文件类型进行设置不同的模版,整体过程是一样的,可参考Class设置过程,其他类型本文不再赘述)
我们选择Class文件
(1)${NAME}:设置类名,与下面的${NAME}一样才能获取到创建的类名
(2)TODO:代办事项的标记,一般生成类或方法都需要添加描述
(3)${USER}、${DATE}、${TIME}:设置创建类的用户、创建的日期和时间
(4)1.0:设置版本号,一般新创建的类都是1.0版本,这里写死就可以了
效果如下:
为了便于同学会手动输入,模版贴入文中
/**
* @Description: TODO
* @Author: ${USER}
* @Date: ${DATE} ${TIME}
* @Version: 1.0
**/
【注意】
如果想应用全部文件,直接在Include添加即可,如下图。这时需注意如果针对class等文件已单独配置,会出现两个注释内容,记得清除重复的配置哟,因为它们会同时生效。
三、方法注释模板
1、定位路径
IntelliJ IDEA-->settings-->Editor-->Live Templates
2、新建模版
说明:当前idea版本自带user分组,可不需要额外创建group,可以直接在user分组下定义个性化模版
点击+号新建模板
命名为* ,不建议使用/开头进行命名,,会导致变量定义的表达式无法生效,例如获取方法参数的methodParameters()、获取方法返回值的methodReturnType()
其他可根据个人习惯进行定义,本人习惯通过 /*+Enter方式生成注释,因此定义模版名称为*,快捷方式为Enter
因为IDEA生成注释的默认方式是:/*+模板名+快捷键(比如若设置模板名为add快捷键用Tab,则生成方式为/*add+Tab),如果不采用这样的生成方式IDEA中没有内容的方法将不可用,
3、设置快捷键
设置生成注释的快捷键,图中模版快捷键可根据个人习惯进行设置,本文为Enter
4、设置模板内容
注意第一行,只有“**”而不是“/**”,发现完整的注释缺少一个“/”。因为上面提到个人习惯生成注释时,会通过输入“/*”+Enter键进行生成,*是模版名称,Enter触发对应的模版生成,前置输入的“/” + 模版内容形成完整的注释内容
说明:在设置参数名时必须用${参数名}$的方式,否则表达式读取不到你设置的参数名
**
* @description TODO
* @param $param$
* @return $return$
**/
可以根据个人需要增加或删减其他参数,例如@Date $time$ $date$ ,@Author等,效果如下
5、变量定义
效果图如下:
Name:
是Template text
中的变量名,就是双$符中间的变量。Expression:
是变量如何获取的表达式。Default value:
是设置变量的默认值。Skip if defined:
这一项需要勾选上。
IDEA内置了一些表达式,可以点击Expression
项后面的箭头查看。我们可以选择IDEA提供的内置表达式,也可以自己写groovyScript
来达到自己想要的效果,写完之后复制粘贴进Expression
中即可。
接下来讲解几个常用的:
user()
会自动获取系统名。date("yyyy年MM月dd")
date()获取年月日的信息,通过传入格式化方式的字符串来自定义日期格式。time("HH:mm:ss")
同date()函数。param
return
这两个需要写groovyScript
表达式,在下面再讲。
groovyScript表达式:
格式:groovyScript("[逻辑判断代码]",[获取参数表达式(此处为IDEA内置)])
本文使用的param 和return对应的表达式为:
groovyScript(
"def result=' : ';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
result += params[i] + ' - [' + paramTypes[i] + ']' + ((i < params.size() - 1) ? ', ' : '')
};
return result;"
, methodParameters(), methodParameterTypes())
groovyScript("def returnType = \"${_1}\"; def result = ': ' + returnType; return result;", methodReturnType());
IDEA变量表达式使用了
groovyScript
,上述代码是根据IDEA内置methodParameters()和methodParameterTypes()
函数获取的值重新处理的成想要的格式。其中:methodParameters()
函数获取的值格式为:[paramA, paramB]
methodParameterTypes()
函数获取的值格式为:[java.lang.Integer, java.lang.String]
。
上述代码中:
${_1}
获取方法参数。${_1}
也就是上述代码末尾的methodParameters()
${_2}
获取方法参数类型。${_2}
也就是上述代码末尾的methodParameterTypes()
- 本文是通过paramA- [参数类型]格式,多个参数以,分割的方式进行注释,个人可根据自身情况通过groovy脚本修改调整格式
6、设置模版应用范围
点击模板页面最下方的警告,来设置将模板应用于那些场景,一般选择EveryWhere-->Java即可
(如果曾经修改过,则显示为change而不是define)