* @Author: ${user}
* @createTime: ${YEAR}年${MONTH}月${DAY}日 ${HOUR}:${MINUTE}:${SECOND}
* @version: ${version}
* @Description: ${description}
上述代码生成效果如下:
* @Author:
* @createTime: 2022年04月05日 23:56:34
* @version: 1.0
* @Description:
@Author:
作者,可以直接写上。也可以配置
${user}
,在创建类时会提示添加。
@Description:
类描述,可以直接写上。也可以配置
${description}
,在创建类时会提示添加。
@version:
版本,可以直接写上。也可以配置
${version}
,在创建类时会提示添加。
@createTime:
创建日期,可以如上写法自定义格式。
配置完成后,勾选
Enable Live Templates
。
二、方法注释
在
Settings
中打开
Editor-Live Templates
,如下图:
1 创建分组 Template Group
点击 " + " 号,选择
Template Group
,接着在弹出框中设置好这个组的名字,点击确定,例如:
myMethodTemplates
。
2 在分组里创建一个 Live Template 模版
选中上面我们刚刚创建的分组
myMethodTemplates
,然后点击 " + " 号,选择
Live Template
。
3 配置 Live Template 模版
接下来就是创建注释模版了。
* @author: $user$
* @createTime: $date$ $time$
* @description: $description$
$param$
$return$
上面配置的效果如下:
* @author:
* @createTime: 2022年04月06 12:00:00
* @description:
* @param: name - [java.lang.String]
* @param: age - [int]
* @return: java.lang.String
public String test(String name ,int age){return "";}
3.1 配置
Abbreviation
Description
上图中
Abbreviation
设置项 ,是在我们要生成注释时,选择自己的某一个
Live Template
模版的
快捷提示
。
什么意思呢?
/x...
public void test(){}
如上,/ 意思是我们要加注释,开头为啥是/后面再说。x 就是Abbreviation中设置的缩写。我们在Template Group中可能还有其他的模版,例如:a 、b等,我们可以根据这个来选择使用不同的模版注释。设置这个缩写也会弹窗提示,就像代码提示那样。
重要提示:不要把Abbreviation设置成斜杠,因为这会导致注释无法获取方法参数。
设置成其他的字母或是符号都可以,这个看个人喜好,最好不要设置成 *(星号),以防我们不需要模版时误导入。
Description 是对模版的说明,或是说对这个Abbreviation缩写的说明,防止我们写代码时和要写的代码提示冲突。
3.2 配置Template text
这个就是配置生成的注释的格式:
* @author: $user$
* @createTime: $date$ $time$
* @description: $description$
$param$
$return$
如上,开头不要有/,因为会造成方法参数无法获取,我们在方法上面生成注释时,需要先写斜杠,然后再输入Abbreviation设置的模版缩写,这时 IDEA 会提示这个模版。
下面我们对模版进行说明:
例:@author: $user$
@author:这个是我们需要配置的项
$user$ :这个可以自己写,也可以使用双$符来标记变量,使用双$符时,在我们配置 Edit variables 时,里面会显示 user 项。
例:$param$
$param$:这个前面没有星号,是因为我们在后续配置 Edit variables 时,表达式里面已经加上了,所以此处不加。
对于模版的格式中的各个项,我们可以根据自己需求去添加。
3.3 配置Edit variables
Skip if defined: 这一项需要勾选上。
接下来开始讲比较重要的Expression 表达式。IDEA内置了一些表达式,可以点击Expression项后面的箭头查看。我们可以选择IDEA提供的内置表达式,也可以自己写groovyScript来达到自己想要的效果,写完之后复制粘贴进Expression中即可,后面会讲解如何写groovyScript。
接下来讲解几个常用的:
user() 会自动获取系统名。
date("yyyy年MM月dd") date()获取年月日的信息,通过传入格式化方式的字符串来自定义日期格式。
time("HH:mm:ss") 同date()函数。
param return 这两个需要写groovyScript表达式,在下面再讲。
groovyScript表达式:
格式:groovyScript("[逻辑判断代码]",[获取参数表达式(此处为IDEA内置)])
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) ? '\\n ' : '')
return result;
", methodParameters())
IDEA变量表达式使用了groovyScript,上述代码是根据IDEA内置methodParameters()函数获取的值重新处理的成想要的格式。
methodParameters()函数获取的值格式为:[name, age]。
上述代码中:
${_1}获取方法参数。${_1}也就是上述代码末尾的methodParameters(),如果获取参数表达式有两个,可以通过${_2}获取第二个的结果。
然后通过for循环将多个参数分行,形成多个@param。三目运算就是判断是否还有参数,如果有就分行。
@param设置
下面提供几种方法参数的格式:
不带参数类型,例如:@param: name
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) ? '\\n ' : '')
return result;"
, methodParameters())
带参数类型,全类名,例如:@param: name - [java.lang.String]
groovyScript(
"def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
if(params[i].size() > 0){
result += '* @param: ' + params[i] + ' - [' + paramTypes[i] + ']' + ((i < params.size() - 1) ? '\\n ' : '')
}else{
result += '* @param: ' + params[i] + ' ' + paramTypes[i] + ((i < params.size() - 1) ? '\\n ' : '')
return result;"
, methodParameters(), methodParameterTypes())
带参数类型,仅类名,例如:@param: name - [String]
groovyScript(
"def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
def types = paramTypes[i].split('\\\\.').toList();
if(params[i].size() > 0){
result += '* @param: ' + params[i] + ' - [' + types[types.size()-1] + ']' + ((i < params.size() - 1) ? '\\n ' : '')
}else{
result += '* @param: ' + params[i] + ' ' + types[types.size()-1] + ((i < params.size() - 1) ? '\\n ' : '')
return result;"
, methodParameters(), methodParameterTypes())
也可以根据自己的格式需求,在groovyScript自行更改。
@return配置
groovyScript("def returnType = \"${_1}\"; def result = '* @return: ' + returnType; return result;", methodReturnType());
关于date相关的,我们可以用IDEA内置的表达式,然后传入自己的格式化规则字符串即可。例如:date("yyyy年MM月dd") time("HH:mm:ss")。
3.4 配置 Options
Options中的Expand with是快捷键的配置,默认是Tap键。
3.5 配置模版应用范围