添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
* @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中可能还有其他的模版,例如:ab等,我们可以根据这个来选择使用不同的模版注释。设置这个缩写也会弹窗提示,就像代码提示那样。

重要提示:不要把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 配置模版应用范围
  •