IDEA使用LiveTemplate快速生成方法注释

文章目录

    • [1 场景](#1 场景)
    • [2 要点](#2 要点)
      • [2.1 新增LiveTemplate模版](#2.1 新增LiveTemplate模版)
      • [2.2 模版内容填写](#2.2 模版内容填写)
    • [3 练习手段](#3 练习手段)

1 场景

  方法的注释,一般包含作者、创建时间、功能描述、输入参数、返回值,如果每个方法的注释都手写,非常耗时,且容易随着后期变更代码导致差异,不好维护。

java 复制代码
public class Pencil {

    /**
     * @Author 张三 010223
     * @date 2024-08-08 14:08:09
     * @description 计算两数的和
     	 * @param a
    	 * @param b
     * @return java.lang.String
     */
    public String addTowNumber(int a, int b) {
        return String.valueOf(a+b);
    }
}

  IDEA使用LiveTemplate快速生成方法注释,可以自动生成方法注释中的"作者、创建时间、输入参数、返回值",仅需要手写"功能描述",减少因写注释带来的工作量。

  这里的addTowNumber方法的注释,内容为输入"/**",加"回车"后自动生成,只有功能描述的"计算两数的和"为手动添加。

2 要点

2.1 新增LiveTemplate模版

  按顺序点击菜单 File->Settings->Editor->Live Templates,来到LiveTemplate的配置页面。

  点击右侧"+"按钮,先选择"2.Template Group"新增一个组别,再在该组别下,选择"1.Live Template"新增一个模板。

  这里新增了"UserTemplate"组,以及内部新增了"*"模版。

  内容填写下文会继续介绍。

2.2 模版内容填写

  (1)Abbreviation: *

  "*"表示匹配字符,在使用时,一般先输入"/**",其中第二个"*"就会被替换成"Template text"中的内容。

  (2)Description: 方法注释

  模版的描述信息,不写也没事。

  (3)Template text:

  模版内容,即匹配字符会被替换成的目标内容,其中datetimeparamreturn表示变量,需要继续配置来源填充。

java 复制代码
*
 * @Author 姓名 工号
 * @date $date$ $time$
 * @description 功能描述
 $param$
 * @return $return$
 */

  注意,此处的开头不能偷懒写成"/**",这会导致datetimeparamreturn被块注释包裹,无法实现变量赋值。

  (4)define: java

  必须配置,否则无法匹配对应语言的文件类型,无法生效。

  (5)Expand with: Enter

  匹配字符后面的快捷键生效方式,Enter表示回车,即前面输入"/**"后,接着"回车"即可实现替换。

  (6)EDIT VARIABLES:

  编辑datetimeparamreturn变量的取值来源。

    1)date: date("yyyy-MM-dd")

    2)time: time("HH:MM:ss")

    3)param:

java 复制代码
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 : result;", methodParameters())

    4)return:

java 复制代码
groovyScript("def result = '';def param = \"${_1}\".replaceAll('[\\\\[|\\\\]\\\\s]', '');result = param;return result == '' ? null : result;", methodReturnType())

    输入参数param、输出参数return使用了groovyScript脚本,代码都在一行比较难读,展开如下:

java 复制代码
//param输入参数
groovyScript("

	def result = ''; //定义返回变量
	def params = \"${_1}\".replaceAll('[\\\\[|\\\\]\\\\s]', '').split(',').toList(); //获取mothodParamters()函数的第一个返回值,并去除[、]、空格字符

	//遍历params,将每一个参数转换成字符串,赋予result
	for (i=0; i<params.size(); i++) {
		if (params[i] != '') {
			result += '	 * @param ' + params[i] + ((i < params.size()-1) ? '\\r\\n' : '')
		}
	};

	//返回result
	return result == '' ? null : result;

", methodParameters())

//return输出参数
groovyScript("

	def result = ''; //定义返回变量
	def param = \"${_1}\".replaceAll('[\\\\[|\\\\]\\\\s]', ''); //获取methodReturnType()函数的第一个返回值,并去除[、]、空格字符
	result = param; //设置返回值
	return result == '' ? null : result; //返回result

", methodReturnType())

3 练习手段

  可以参考"2 要点"章节,在自己的项目中尝试用LiveTemplate配置方法注解,提升效率。

相关推荐
VortMall4 小时前
全维度打磨细节体验,赋能商城稳定有序运营|VortMall 微服务商城 v1.3.11 版本发布
java·微服务·云原生·架构·商城系统·开源商城·vortmall
Tirzano4 小时前
java 精简使用ffmpeg
java·开发语言·ffmpeg
唐青枫4 小时前
Java Jersey 实战指南:用 JAX-RS 注解写清晰的 REST API
java
一只小小Java5 小时前
Naocs本地部署&安装3.2.3+Spring boot 3.2.0
java·spring boot·后端·nacos
JL155 小时前
Spring Boot vs Gin:Java 人搭第一个 Go REST API
java·spring boot·gin
神明不懂浪漫6 小时前
【第七章】Java中的常用类
java·开发语言·前端·经验分享·笔记
Jelena1577958579215 小时前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
神明不懂浪漫16 小时前
【第五章】Java中的继承与多态
java·开发语言
紫_龙16 小时前
window 维护多版本Android studio
android·ide·android studio
AI多Agent协作实战派18 小时前
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时
java·前端·bug