文章目录
- 类注释模板设置
- 使用 File and Code Templates
- 方法 1:直接在编辑区编写模板代码
- 方法 2:使用 parse 指令来引用注释模板
- 使用 Live Templates
- 方法注释模板设置
- 注意事项
- 解决注释模板无法获取参数名和返回值类型的问题
类注释模板设置
使用 File and Code Templates
File and Code Templates
用来配置文件和代码模板,即文件在创建的时候自动会按文件模板生成代码注释。
按快捷键 command + ,
或者 点击 IntelliJ IDEA --> Preferences 打开偏好设置,如下图所示:
然后选择 Editor --> File and Code Templates --> Files --> Class,如下图所示:
方法 1:直接在编辑区编写模板代码
类注释模板代码如下(可以直接复制使用):
/*** @ClassNAME ${NAME}* @Description TODO* @Author ${USER}* @Date ${DATE} ${TIME}* @Version 1.0*/
关于注释模板中的变量,你可以参考 Description 的相关说明:
设置好之后,每次创建类就会自动添加类注释啦!
注意:如果直接使用编辑区中的模板代码,那么 #parse 指令所引用的模板需要清空
方法 2:使用 parse 指令来引用注释模板
Using the #parse directive, you can include templates from the Includes tab, by specifying the full name of the desired template as a parameter in quotation marks. For example: #parse(“File Header.java”)
翻译:对想要使用的模板指定一个全名,将这个名称作为一个参数放在指令 parse
的双引号内,这样可以引用 Includes tab
中定义的模板
步骤 1:新建模板
在 Includes tab
中新建模板,根据需要对模板命名,如下图所示:
步骤 2:编写模板代码
在右侧的编辑区内编写注释模板代码,如下图所示:
步骤 3:使用 parse
指令来引用模板
注:默认是引用 File Header
模板,所以通常是在 File Header
编辑注释模板即可,然后通过 parse("File Header.java")
引用即可
使用 Live Templates
Live Templates 用来配置动态模板,可以在指定位置使用缩写字母自动生成注释。
步骤 1:创建动态模板
步骤 2:给模板命名,并设置扩展按键
先设置模板的扩展按键,然后采用缩写形式给模板命名,并对模板进行描述,如下图所示:
如上图所示的设置,输入 cc + enter
就可以生成注释
步骤 3:编写注释模板代码
在 Template text 编辑区编写注释模板代码
Live Template 的注释模板代码中的变量比较特别,需要在变量名称的首尾加上美元符号 $
,如下所示:
/*** @className $name$* @description TODO* @author $user$* @date $time$ $date$* @version 1.0*/
步骤 4:对使用到的变量设置表达式
注释模板中引用了变量,但是变量的值如何获取,需要另外配置表达式才行。点击右侧 Edit variables
,打开设置窗口,如下图所示:
注:右边的 Skip if defined
建议全部打勾,这样有内容的注解就不会默认处于编辑状态(出现红色边框)。
步骤 5:设置模板的应用范围
将模板仅应用于 Java
方法注释模板设置
方法注释模板只能通过 Live Templates 来设置,设置流程同上述使用 Live Templates 设置类的注释模板一样。
配置模板中的自定义变量:
方法注释模板的代码如下:
/*** @description TODO* @methodName $name$* @param $param$* @return $return$* @author $user$* @date $time$ $date$*/
或者
/*** * @param $param$* @return $return$* @author $author$* @date $date$ $time$*/
注意事项
正常配置的方法注释模板有问题,不能在方法外部正常使用,只能在方法内部正常使用,如下动态图所示:
但是 IDEA 默认的方法文档注释则可以在外部正常使用,可以获取方法参数、返回值类型、异常类型等信息;但是在方法内部则无效,如下动态图所示:
解决注释模板无法获取参数名和返回值类型的问题
正常配置的方法注释模板在使用时存在缺陷,在方法外部添加注释,根本无法获取到方法的参数、返回值类型等信息,只能在方法体内部使用。如果希望在方法外部使用注释,并且可以正常获取到方法的参数和返回值类型等信息,需要写 groovy 脚本代码。
注释模板必须按下面的格式写:
*** $end$$param$* @return $return$* @throws * @author $user$* @date $date$ $time$*/
模板变量的配置如下:
对应的 param
变量的 groovy 的脚本代码如下:
// 推荐这段代码
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++){result += ((i != 0) ? '\\n ':'') + '* @param ' + params[i]}; return result == '' ? '* @param ' : result", methodParameters())格式化代码:
groovyScript(
"
def result = '';
def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for (i = 0; i < params.size(); i++) {result += ((i != 0) ? '\\n ':'') + '* @param ' + params[i]
};
// 当变量result的值为空字符串时,这里有特别处理
return result == '' ? '* @param ' : result
",
methodParameters()
)// 推荐这段代码
groovyScript("def result = ''; def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++){result += ((i != 0) ? '\\n ':'') + '* @param ' + params[i]}; return result", methodParameters())格式化:
groovyScript(
"
def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {result += ((i != 0) ? '\\n ':'') + '* @param ' + params[i]
};
// 变量result为空字符串时,这里并没有特别处理,具体也可以
return result
",
methodParameters()
)
对应的 return
变量的 groovy 的脚本代码如下:
// 返回值类型会显示类的全限定名
groovyScript("return (\"${_1}\" == 'void') || (\"${_1}\" == 'null') ? '' : \"${_1}\"", methodReturnType())// 或者这段代码,返回值类型只显示类型的名称,例如:ArrayList<Person>
groovyScript("def returnType = \"${_1}\"; def result ='';if(returnType=='null'||returnType=='void'){return '';}else{cls = returnType.split('<');for(i = 0; i < cls.size(); i++){temp = cls[i].tokenize('.');result += temp[temp.size() - 1] + ((i < cls.size() - 1) ? '<' : '');};return result + ' ';}", methodReturnType());
配置完成后,在方法的上面先输入 /*
,再按 Enter 键就会自动生成注释了。