IDEA使用:设置注释模板
也可以直接参考此链接,本文仅作搬运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 项即可。
二、方法注释
不同于目前网络上互相复制粘贴的方法注释教程,本文将实现以下功能:
- 根据形参数目自动生成 @param 注解
- 根据方法是否有返回值智能生成 @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使用:设置注释模板相关推荐
- goland 方法注释_goland 设置注释模板的过程图文详解
网上找了一些办法 都没有说到关键点: 梳理一下设置步骤如下,以及避免的坑. 新建文件自动加注释: Preferences | Editor | File and Code Templates 打开go ...
- IDEA个性化设置注释模板(详细版)
IDEA设置注释模板 类注释模板 方法注释模板 效果展示 1. 类注释模板 类注释模板是IDEA创建类时生成的注释 第一步.File -> Settings 第二步.Editor -> F ...
- IDEA中设置注释模板的方法
IDEA中设置注释模板的方法 https://www.cnblogs.com/pcheng/p/10121683.html https://blog.csdn.net/zlbdmm/article/d ...
- IDEA中设置注释模板
IDEA中设置注释模板主要分为两个部分,分别是创建java文件时类的注释和方法的注释. 这里为大家详细介绍一下方法,大家可以根据自己的习惯生成自己喜欢的注释模板.效果如下: 一.设置类的注释模板 1. ...
- 快捷键Java模板注释_eclipse 设置注释模板& 调出注释快捷键
1,设置注释模板 点击Windows(窗口)->Preferences(首选项)->Java->Code Style(代码样式)->Code Templates(代码模板) 然 ...
- android studio中如何设置注释模板
在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等.那么在android studio中该如何设置呢? 工具/原料 android ...
- idea如何设置注释模板,图文超详细讲解
目录 先打开idea设置 一,idea类注释 1,找到以下设置 2,设置模板 3,apply保存完成 二,idea方法注释 1,创建自定义的组 2,创建模板 3,设置模板 4,选择生成模板的文件 5, ...
- IDEA 设置注释模板顺序
配置注释模板Live Templates时,模板展示顺序只会按照首字母顺序进行排序,若想按照自己配置的模板进行排序,可按照下图关闭设置即可.
- idea 设置注释模板
转自: 作者:objcat 链接:https://www.jianshu.com/p/812d06702437 一.文件注释 创建文件后, 编译器会在类名前面生成固定的注释, 来丰富代码的可读性, 在 ...
- IDEA设置注释模板——类模板和方法模板(参数,返回值)
一.类的注释模板 文件------设置-------------编辑器-------文件和代码模板 模板: /*** ----------------------------------------- ...
最新文章
- linux 物理内存统计,说说free命令 + Linux可用内存统计方法
- [YTU]_1998( C语言实验——删除指定字符)
- hdu 5101(二分)
- WordPress快速打造个人博客
- python 中的三元表达式(三目运算符)
- python 生成对称矩阵_对称矩阵| 使用Python的线性代数
- Php中如何记录本报时间,php写日报功能追加
- Pytest之fixture
- WinForm如何控制ShowDialog()的返回值,并且可以判断是否会弹出主窗体
- 面向对象的基本概念(二)--UML.类之间的关系
- CODE[VS] 1979 第K个数
- 阿里云发布ET环境大脑 对抗雾霾、排污和自然灾害
- uk码对照表_【鞋子尺码对照表】 全面轻松了解鞋子尺码对照表 让你购物无困扰...
- java与设计模式-观察者模式
- Visio 2016去掉页边距(图形四周的空白区域)的解决办法 (适用于适应绘图)
- 如何查看夜神、逍遥模拟器的端口
- 程序员眼中看到的网页是如何制作出来的?
- 共n级台阶,每次可以上1级或2级台阶,有多少种上法?
- 【ASP】链接Access2007与Access2003的不同写法
- psim什么版本能和matlab联合仿真,psim与simulink联合仿真步骤
热门文章
- Windows上堪称神器的6个效率工具
- c语言getdate,C语言 getdate()、setdate()用法及代码示例
- Qt使用AES128加密一段文字实例
- NLP论文解读《Learning Text Similarity with Siamese Recurrent Networks》
- w8服务器dns修改,Win8 怎么修改dns地址 win8电脑修改dns服务器地址的方法
- 7-47 打印选课学生名单(25 分)
- 周易六十四卦——歸妹卦
- 网络安全就业前景如何?
- IDEA设置sql方言
- 手头有70万,刚需买房,早晚都要买,不如早点买