点击上方“朱小厮的博客”,选择“设为星标”

后台回复"书",获取

后台回复“k8s”,可领取k8s资料

一、类注释

打开 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

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

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

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

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

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

设置 applicable contexts

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

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

设置 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 保存设置,大功告成!

三、检验成果

3.1 类注释

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

类注释

3.2 方法注释

将演示以下几种情况:

  1. 无形参

  2. 单个形参

  3. 多个形参

  4. 无返回值

  5. 有返回值

方法注释

四、Q & A

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

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

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

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

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

(3)注释模板中 $time$$param$ 这两个明明不相干的东西为什么紧贴在一起?

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

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

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

(5)为什么 $return$ 不是单独一行?

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

作者:Jitwxs

链接:https://jitwxs.cn/4135e0a9.html

想知道更多?扫描下面的二维码关注我后台回复"技术",加入技术群
后台回复“k8s”,可领取k8s资料【精彩推荐】
  • ClickHouse到底是什么?为什么如此牛逼!

  • 原来ElasticSearch还可以这么理解

  • 面试官:InnoDB中一棵B+树可以存放多少行数据?

  • 架构之道:分离业务逻辑和技术细节

  • 星巴克不使用两阶段提交

  • 面试官:Redis新版本开始引入多线程,谈谈你的看法?

  • 喜马拉雅自研网关架构演进过程

  • 收藏:存储知识全面总结

  • 微博千万级规模高性能高并发的网络架构设计

IDEA 注释模板,惊艳了!动作要快,姿势要帅相关推荐

  1. IDEA 注释模板,惊艳了!动作要快,姿势要帅!

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 一.类注释 打开 ...

  2. IDEA注释模板,动作要快,姿势要帅!

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

  3. 惊艳于红警开源代码?赏心悦目的代码注释,我们也可以 !

    文章目录 1.前言 2. 我们惊叹它的什么? 2.1 清晰的代码注释 2.2 语义化的编码规范 2.3 小而精的逻辑实现 3. 依葫芦画瓢 3.1 添加文档级注释 3.2 添加类级注释 3.3 添加方 ...

  4. 财务年终总结模板,助你的汇报惊艳全场

    今天给做财务的朋友送一份[财务年终总结报告&数据分析资料包],风格多样.自带公式.直接套用,还有财务部工作总结汇报PPT模板.财务数据分析图表(自动生成)等,保管你的年终报告既有颜值又有干货, ...

  5. 写网站没有模板?这几个可以下载模板的网站,非常惊艳

    写网站没有模板?这几个可以下载模板的网站,非常惊艳 简单粗暴⛽️ HTML5UP 当我第一次打开这个网站的时候,给我惊艳到了,满屏英文丝毫不影响模板的优秀啊

  6. android 卷轴动画,原来这种画卷展开的效果这么简单!三步即可做出来!太惊艳了...

    原标题:原来这种画卷展开的效果这么简单!三步即可做出来!太惊艳了 我们在一些发布会或者开幕式上经常会看到这样的画卷展开效果,感觉特别惊艳,那么这种效果是怎么做出来的呢?其实很简单!我们用PPT就可以做 ...

  7. 安利8个「王炸级别」的效率神器,惊艳又实用

    推荐8个王炸级别的效率神器,每个工具既让人惊艳,又非常实用,喜欢的话记得点赞支持哦~ 1.Snipaste Snipaste是出色的截图贴图软件.Snipaste截图非常强悍,截图快捷键是F1.第一个 ...

  8. 值得分享!它们才是真正的宝藏网站,让人惊艳

    推荐7个非常不错的良心网站,可以解决大家很多问题,每一个都让人惊艳,喜欢的话记得点赞支持哦~ 1.搜图导航 搜图导航是一个非常强大的图片聚合和设计资源导航网站,提供一站式快速搜索图像服务.还有自定义导 ...

  9. 服!AI 让兵马俑“活”起来,颜值惊艳!

    你曾想过,假如兵马俑会动起来会是怎样的? IT界网红UP主.频频上热搜"AI修复百年前老北京影像"作者大谷发表了炫酷作品"AI还原的秦代兵马俑,原来这么帅?人工智能让艺术 ...

最新文章

  1. 原始套接字学习笔记(1)
  2. 程序是什么--过滤器和状态机
  3. Zabbix中文模式:图片下面的字符乱码
  4. 8.4. Socket 方式
  5. 基于内容的图像检索概述
  6. flink基本原理入门
  7. July面试题整理系列(1)
  8. LINUX SHELL中while循环和遍历参数
  9. 环形电流计算公式_环形变压器计算公式
  10. Python分析《三国演义》中的社交网络
  11. 生成Xcode中各个尺寸的Mac App Icon
  12. SQL Server 2014下载及安装教程
  13. oracle10g rman备份有效性,Oracle 10g RMAN的备份 恢复
  14. macOS Monterey 12.3 (21E230) 虚拟机 IOS 镜像
  15. 服务器显示断开网络驱动器,断开网络驱动器 快速映射盘符
  16. 【软件下载】Excel下载 word下载 官方 官网下载 原始镜像 开发工具 开发软件下载
  17. AJAX、Json介绍
  18. rk1808交叉编译opencv_ubuntu16.04交叉编译opencv 移植到rk1808上
  19. docker环境下orientdb的数据库导入与导出
  20. 爱码物联|汽车制造行业,汽车零部件质量溯源解决方案

热门文章

  1. 美团136道软件测试经典面试题及答案汇总
  2. 怎样给自己的笔记本电脑加装内存条
  3. 关于超宽屏21:9显示器不能调节正确分辨率的解决办法
  4. 学生成绩管理系统(软件工程大设计)
  5. 设计要注意火候【视觉设计】
  6. 图-工作日的西湖【曾经的付费视频课春节前放完,以及最后一场直播预告】
  7. 小学计算机兴趣班培训总结,小学兴趣小组活动总结
  8. 微信给男(女)朋友每天定时发送早安
  9. [BZOJ1398] Vijos1382寻找主人 Necklace
  10. 金蝶9.1标准版,Win7无限重启解决方法