也可以直接参考此链接,本文仅作搬运https://mp.weixin.qq.com/s/RHcixgytoXT-D0VGtqQLtg

目录

  • 一、类注释
  • 二、方法注释
  • 三、检验成果
  • 四、Q & A

一、类注释

打开 IDEA 的 Settings,点击 Editor–>File and Code Templates,点击右边 File 选项卡下面的 Class,在其中添加图中红框内的内容:

/*** @author jitwxs* @date ${YEAR}年${MONTH}月${DAY}日 ${TIME}*/


在提供的示例模板中,说明了作者和时间,IDEA 支持的所有的模板参数在下方的 Description 中被列出来。

保存后,当你创建一个新的类的时候就会自动添加类注释。如果你想对接口也生效,同时配置上图中的 Interface 项即可。

二、方法注释

不同于目前网络上互相复制粘贴的方法注释教程,本文将实现以下功能:

  1. 根据形参数目自动生成 @param 注解
  2. 根据方法是否有返回值智能生成 @Return 注解

相较于类模板,为方法添加注释模板就较为复杂,首先在 Settings 中点击 Editor–>Live Templates。

点击最右边的 +,首先选择 2. Template Group… 来创建一个模板分组:

在弹出的对话框中填写分组名,我这里叫做 userDefine:

然后选中刚刚创建的模板分组 userDefine,然后点击 +,选择 1. Live Template:

此时就会创建了一个空的模板,我们修改该模板的 Abbreviation、Description 和 Template text。需要注意的是,Abbreviation 必须为 *,最后检查下 Expand with 的值是否为 Enter 键。

上图中· Template text 内容如下,请直接复制进去,需要注意首行没有 /,且 * 是顶格的。

** * @author jitwxs* @date $date$ $time$$param$ $return$*/

注意到右下角的 No applicable contexts yet 了吗,这说明此时这个模板还没有指定应用的语言:

点击 Define,在弹框中勾选Java,表示将该模板应用于所有的 Java 类型文件。

还记得我们配置 Template text 时里面包含了类似于 d a t e date date 这样的参数,此时 IDEA 还不认识这些参数是啥玩意,下面我们对这些参数进行方法映射,让 IDEA 能够明白这些参数的含义。点击 Edit variables 按钮:

为每一个参数设置相对应的 Expression:

需要注意的是,date 和 time 的 Expression 使用的是 IDEA 内置的函数,直接使用下拉框选择就可以了,而 param 这个参数 IDEA 默认的实现很差,因此我们需要手动实现,代码如下:

groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())

另外 return 这个参数我也自己实现了下,代码如下:

groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())

注:你还注意到我并没有勾选了 Skip if defined 属性,它的意思是如果在生成注释时候如果这一项被定义了,那么鼠标光标就会直接跳过它。我并不需要这个功能,因此有被勾选该属性。

点击 OK 保存设置,大功告成!

三、检验成果

类注释只有在新建类时才会自动生成,效果如下:

四、Q & A

(1)为什么模板的 Abbreviation 一定要叫 * ?Expand with 要保证是 Enter 键?

答:因为 IDEA 模板的生成逻辑是 模板名 + 生成键,当生成键是 Enter 时,我们输入 * + Enter 就能够触发模板。

这也同时说明了为什么注释模板首行是一个 * 了,因为当我们先输入 /*,然后输入 * + Enter,触发模板,首行正好拼成了 /**,符合 Javadoc 的规范。

(2)注释模板中为什么有一行空的 *?

答:因为我习惯在这一行写方法说明,所以就预留了一行空的写,你也可以把它删掉。

注释模板中 t i m e time time p a r a m param param 这两个明明不相干的东西为什么紧贴在一起?

答:首先网上提供的大部分 param 生成函数在无参情况下仍然会生成一行空的 @param,因此我对param 函数的代码进行修改,使得在无参情况下不生成 @param,但是这就要求 p a r a m param param 要和别人处在同一行中,不然没法处理退格。

(4)为什么 return 参数不使用 methodReturnType(), 而要自己实现?

答:methodReturnType() 在无返回值的情况下会返回 void,这并没有什么意义,因此我对 methodReturnType() 返回值进行了处理,仅在有返回值时才生成。

(5)为什么 r e t u r n return return 不是单独一行?

答:因为当 methodReturnType() 返回 null 时,无法处理退格问题,原因同第三点。

IDEA使用:设置注释模板相关推荐

  1. goland 方法注释_goland 设置注释模板的过程图文详解

    网上找了一些办法 都没有说到关键点: 梳理一下设置步骤如下,以及避免的坑. 新建文件自动加注释: Preferences | Editor | File and Code Templates 打开go ...

  2. IDEA个性化设置注释模板(详细版)

    IDEA设置注释模板 类注释模板 方法注释模板 效果展示 1. 类注释模板 类注释模板是IDEA创建类时生成的注释 第一步.File -> Settings 第二步.Editor -> F ...

  3. IDEA中设置注释模板的方法

    IDEA中设置注释模板的方法 https://www.cnblogs.com/pcheng/p/10121683.html https://blog.csdn.net/zlbdmm/article/d ...

  4. IDEA中设置注释模板

    IDEA中设置注释模板主要分为两个部分,分别是创建java文件时类的注释和方法的注释. 这里为大家详细介绍一下方法,大家可以根据自己的习惯生成自己喜欢的注释模板.效果如下: 一.设置类的注释模板 1. ...

  5. 快捷键Java模板注释_eclipse 设置注释模板& 调出注释快捷键

    1,设置注释模板 点击Windows(窗口)->Preferences(首选项)->Java->Code Style(代码样式)->Code Templates(代码模板) 然 ...

  6. android studio中如何设置注释模板

    在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等.那么在android studio中该如何设置呢? 工具/原料 android ...

  7. idea如何设置注释模板,图文超详细讲解

    目录 先打开idea设置 一,idea类注释 1,找到以下设置 2,设置模板 3,apply保存完成 二,idea方法注释 1,创建自定义的组 2,创建模板 3,设置模板 4,选择生成模板的文件 5, ...

  8. IDEA 设置注释模板顺序

    配置注释模板Live Templates时,模板展示顺序只会按照首字母顺序进行排序,若想按照自己配置的模板进行排序,可按照下图关闭设置即可.

  9. idea 设置注释模板

    转自: 作者:objcat 链接:https://www.jianshu.com/p/812d06702437 一.文件注释 创建文件后, 编译器会在类名前面生成固定的注释, 来丰富代码的可读性, 在 ...

  10. IDEA设置注释模板——类模板和方法模板(参数,返回值)

    一.类的注释模板 文件------设置-------------编辑器-------文件和代码模板 模板: /*** ----------------------------------------- ...

最新文章

  1. linux 物理内存统计,说说free命令  + Linux可用内存统计方法
  2. [YTU]_1998( C语言实验——删除指定字符)
  3. hdu 5101(二分)
  4. WordPress快速打造个人博客
  5. python 中的三元表达式(三目运算符)
  6. python 生成对称矩阵_对称矩阵| 使用Python的线性代数
  7. Php中如何记录本报时间,php写日报功能追加
  8. Pytest之fixture
  9. WinForm如何控制ShowDialog()的返回值,并且可以判断是否会弹出主窗体
  10. 面向对象的基本概念(二)--UML.类之间的关系
  11. CODE[VS] 1979 第K个数
  12. 阿里云发布ET环境大脑 对抗雾霾、排污和自然灾害
  13. uk码对照表_【鞋子尺码对照表】 全面轻松了解鞋子尺码对照表 让你购物无困扰...
  14. java与设计模式-观察者模式
  15. Visio 2016去掉页边距(图形四周的空白区域)的解决办法 (适用于适应绘图)
  16. 如何查看夜神、逍遥模拟器的端口
  17. 程序员眼中看到的网页是如何制作出来的?
  18. 共n级台阶,每次可以上1级或2级台阶,有多少种上法?
  19. 【ASP】链接Access2007与Access2003的不同写法
  20. psim什么版本能和matlab联合仿真,psim与simulink联合仿真步骤

热门文章

  1. Windows上堪称神器的6个效率工具
  2. c语言getdate,C语言 getdate()、setdate()用法及代码示例
  3. Qt使用AES128加密一段文字实例
  4. NLP论文解读《Learning Text Similarity with Siamese Recurrent Networks》
  5. w8服务器dns修改,Win8 怎么修改dns地址 win8电脑修改dns服务器地址的方法
  6. 7-47 打印选课学生名单(25 分)
  7. 周易六十四卦——歸妹卦
  8. 网络安全就业前景如何?
  9. IDEA设置sql方言
  10. 手头有70万,刚需买房,早晚都要买,不如早点买