IDEA配置类及方法注释模版

2022-04-06  本文已影响0人  逝去丶浅秋

一、类注释

在IDEA中打开File-Settings,在Settings中打开Editor-File and Code Templates,在左边的Files中选中Class


如上图,Class编辑框中,编写如下代码:
/**
 * @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

我们点击Edit variables后会弹出Edit variables变量配置框。

Name:Template text中的变量名,就是双$符中间的变量。
Expression: 是变量如何获取的表达式。
Default value: 是设置变量的默认值。
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设置

下面提供几种方法参数的格式:

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())
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())
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 配置模版应用范围

图中红色方框处就是配置应用范围的地方,在为配置前为 Define,在配置后为 Change。点击既可以配置。

可以选择Everwhere在每一个地方都应用,也可以选择对应的哪一种语言或什么位置会出现Abbreviation缩写弹窗提示。

写在最后:

上一篇下一篇

猜你喜欢

热点阅读