美文网首页其它分类工具Android开发
如何配置Intellj idea(Android Studio)

如何配置Intellj idea(Android Studio)

作者: 凤凰花开那一天 | 来源:发表于2018-07-15 12:27 被阅读60次

    在日常项目开发过程中,项目组都会有自己的一套默认的注释模板。这里,我们介绍下如何在Intellj idea(由于Android Studio是基于idea的,配置是一样的)中,修改默认的注释模板,以获得我们想要的效果。文中将分别介绍

    • 文件头(File Header)的配置:在创建代码文件时在文件头生成
    • 类的配置:在新建类文件时自动生成,其模板中会解析File Header文件中的内容
    • 方法的配置:配置好模板,根据快捷键生成

    一、配置File Header注释模板

    在打开的idea工程中,选择File->Setting->Editor->File and Code Templates,在打开的右侧窗口中选取Includes页签下的File Header子项(若不存在该项,则新建一个),如下所示:




    看下idea给出的描述信息吧
    这是一个内建的模板。它包含了一个通过#parse指令,可被文件模板包含的代码片段。该模板是可编辑的。与静态文本,代码和注释一起,你也可以使用预定义变量,然后它们将像宏一样展开为相应的值。
    • ${PACKAGE_NAME} 被创建新文件的包名。
    • ${USER} 当前用户系统登陆名,这个名字可以在计算机->管理里面做修改。
    • ${DATE} 当前系统日期
    • ${TIME}当前系统时间
    • ${YEAR}当前年份
    • ${MONTH} 当前月份
    • ${MONTH_NAME_SHORT}当前月份名的前三个字母,比如,Jan,Feb等
    • ${MONTH_NAME_FULL} 当前月份名的完整名称,比如,January, February等
    • ${DAY} 月份的当前天
    • ${DAY_NAME_SHORT} 当前天名的前三个字母,比如,Mon,Tue等
    • ${DAY_NAME_FULL} 当前天名的前三个字母,比如,Monday,Tuesday等
    • ${HOUR} 当前小时
    • ${MINUTE} 当前分钟
    • ${PROJECT_NAME} 当前工程名
      通过以上,我们可以知道,该文件会是其它模板文件的内建模板,我们通常可以使用其预定义的变量。下面给出一个模板:
    /**
     *  
     * @author: ${USER}
     * @description please add a description here
     * @date: Create in ${TIME} ${DATE}
     */
    

    将以上内容贴到编辑框中,然后点击ApplyOk按钮。接着,新建一个文件后,可以看到如下的结果。

    /**
     * @author: killua
     * @description please add a description here
     * @date: Create in 20:20 2018/7/14
     */
    public class Demo
    {
    }
    

    这样子,我们就完成了文件头的配置。

    二、配置类注释模板

    类模板的配置与文件头大饿配置有点重复的感觉。如果已经配置了文件头后,就不需要再配置该模板了。该模板只针对所有的Class类。如果要为接口添加注释,需要修改相应的模板。
    通过File->Setting->Editor->File and Code Templates,打开右侧Files页签下的Class子项,进行配置。


    稍微看下说明吧:
    这是一个内建的模板,用于在每次你通过选择New->Java Class->Class菜单来创建一个新的Java类的时候。它也可以指定任意数量的自定义变量,格式为${<VARIABLE_NAME>},这种情况下,在你创建新文件前,你将收到一个对话框提示,你可以在里面为所有的自定义变量的特定值。使用#parse指令,可将include tab页汇总的模板包含进来,通过指定期望的模板名作为参数。如#parse("File Header.java")
    这里,因为我们以及在include中配置了File Header.java,所以可以不做修改。

    三、配置方法模板

    idea自带了一个方法模板,但只有param和return字段,不够实用,如下所示:

        /**
         *
         * @param param
         * @return
         */
        private boolean isShow(String param)
        {
            return true;
        }
    

    通过在方法定义上一行中敲击/** + Enter触发模板。
    接着,我们来实现我们的自定义模板,通过File-->Settings-->Editor-->Live Templates,然后点击右上角的+,选择Template Group来创建一个新的组,取名为CustomGroup,如图所示。


    然后,选择新创建的CustomGroup,然后再次选择+,这次选择Live Templates,新建一个模板到模板组中,如下所示:

    这里Abbreviation中填入*(触发条件为/* + 模板名+快捷键),这是触发条件的缩写。第二个框中填入模板的描述,然后,点击底下的define按钮,在弹出框中,选择相应的语言场景。

    填入模板内容,如下:
    *
     *
     * @author $user$
     * @param $param$
     * @return $return$
     * @date $time$ $date$
     **/
    

    设置参数名时必须用${参数名}$的方式,为了获取param和return的参数,idea提供了内置的几个方法:

    • param通过methodParameters()来获取
    • return 通过methodReturnType()来获取
    • time 通过time()来获取
    • date 通过date()来获取
    • user 通过user()来获取
      通过点击Edit Variables来设置相应的参数值,如下所示:


      最后,修改idea默认的快捷键,将tab改为Enter,如下图所示。

      这样子就完成了方法注释模板的编辑,新建方法后,敲击* + Enter后,效果如下。
        /**
         *
         * @author killua
         * @param [`param1`, parm2]
         * @return
         * @date 12:24 2018/7/15
         **/
    

    但代码检测工具会对参数以红色告警方式显示,这是因为它找不到[param1, parm2]参数。
    如果要显示参数列表单独显示那种方式(自带那种方式),只能在方法内部实现,这时候需要将配置的methodParameters()替换为以下脚本:

    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**\\**b' : '')**}**; return result", methodParameters())*
    

    方法内和外的效果对比,方法外无法获取参数列表

    /**
         *
         * @author killua
         * @param null
         * @return 
         * @date 12:22 2018/7/15
         **/
        private boolean isShow(String param1, String parm2)
        {
            /**
             *
             * @author killua
             * @param param1
             * @param parm2
             * @return 
             * @date 12:22 2018/7/15
             **/
            return true;
        }
    

    这几种方式都不算好,因为Intellj idea的/** + Enter不算一个Live Template。这里有个折中的方案,就是同时利用了自带的/** + Enter和新建的Live Template。并在新建模板中添加你额外的属性,如下所示:


    注意空格:
    @author $USER$ 
        * @since  $DATE$;
    

    然后,先敲击自带的功能/** + Enter,然后继续在注释中敲击auth+Enter获取完整的信息,如下:

      /**
         * 
         * @param param1
         * @param parm2
         * @author killua
         * @since 2018/7/15;
         * @return
         */
        private boolean isShow(String param1, String parm2)
        {
            return true;
        }
    

    相关文章

      网友评论

        本文标题:如何配置Intellj idea(Android Studio)

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