美文网首页
IDEA配置类及方法注释模版

IDEA配置类及方法注释模版

作者: 逝去丶浅秋 | 来源:发表于2022-04-06 20:04 被阅读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设置

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

    • 不带参数类型,例如:@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 配置模版应用范围

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

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

    写在最后:

    • 如果文章中有错误或是表达不准确的地方,欢迎大家评论中指正,以便我完善。
    • 我也会根据所学到新的知识不断对文章进行更新。

    相关文章

      网友评论

          本文标题:IDEA配置类及方法注释模版

          本文链接:https://www.haomeiwen.com/subject/ibirsrtx.html