IDEA 利用groovy脚本生成注释

news/2025/1/16 8:48:08/文章来源:https://www.cnblogs.com/mutouyang/p/18517639

 

  • 介绍

 

本文主要介绍利用IDEA编辑器的活动模板,结合groovy脚本,生成注释模板。目前生成的注释主要适用于java和js文件

推荐此方式,可以根据需要定义groovy脚本,生成不同格式的注释

  • 操作

  • 点击 File >> Setting 

找到 Edtor >> Live Temolates , 建议创建一个模板组 java_often(非必须,创建一个好管理)

 

 

  • 再次点击+号,创建一个 Live Temolate

缩写Abbreviation处填写星号 * 

模板文本填写  **$context$ */  , 注意星号顶头填写,前面没有空格,变量context可自定义

 

  •  点击 Edit Variables

Name处填写 context ,注意对应上一步的变量

Expression处不可选择

Default value填写 

groovyScript("D:\\idea\\javadoc.groovy", currentPackage(), className(), methodName(), jsMethodName(), methodParameters(), methodReturnType(), date("yyyy-MM-dd"), time("HH:mm:ss"))

由于需要的groovy脚本过长,所以创建了一个文件,这个文件建议跟idea安装目录放一起,文件内容放到了文章结尾

 

  • 最后

设置触发键 Enter 。

选择适用文件 java,

 

  • 展示

在Java类名输入 /* ,点击回车,即可生产注释,

 

 

  • 附录

groovy脚本文件

def packageName = _1;
def className = _2;
def methodName = _3;
def jsMethodName = _4;
def methodParameters = _5;
def methodReturnType = _6;
def date = _7;
def time = _8;def confirmedDateTimeString = "2022-03-01 12:20:40";
// 可以修改成自己的相关信息
def author = "mutouyang";
def projectName = "demoProject";
def version = "V1.0.0";
def copyright = "2017 mutouyang Inc. All rights reserved.";if(packageName){String[] str = packageName.split("\\.")if(str.length >2){projectName=str[1];}
}def outputParams = "";
for(param in methodParameters) {outputParams += " * @param " + param + " : \n";
}
def outputReturnType = "";
if (methodReturnType != null & methodReturnType != "void") {outputReturnType = " * @return : " + methodReturnType + "\n";
}def outputMethodName         = " * method : " + methodName + "</br>\n";
def outputDesc               = " * description :     </br>\n";
if(!outputReturnType){//outputDesc             = " * description : 构造方法 </br>\n";
}
def outputAuthor             = " * @author : " + author + "</br>\n";
def outputDateTime           = " * @CreateDate : " + date + " " + time + "</br>\n";
def outputProjectName        = " * @Project : " + projectName +"</br>\n";
def outputPackageName        = " * @Package : " + packageName + "</br>\n";
def outputClass              = " * @ClassName : " + className + "</br>\n";
def outputVersion            = " * @version : " + version + "</br>\n";
def outputClassOtherInfo     = " * @Copyright : " + copyright + "</br>\n";
outputClassOtherInfo        += " * @Reviewed : " + "\n";
outputClassOtherInfo        += " * @UpateLog :    Name    Date    Reason/Contents\n";
outputClassOtherInfo        += " *             ---------------------------------------\n";
outputClassOtherInfo        += " *                ****    ****    **** \n";
def outputJsMethodName       = " * method : " + jsMethodName + "</br>\n";
def outputJsParams           = " * @param </br>\n";
def outputJsReturnType       = " * @return : </br>\n";def result = "";result += "\n";
if (methodName) {result += outputMethodName;result += outputDesc;result += outputParams;result += outputReturnType;result += outputAuthor;result += outputDateTime;
} else if (jsMethodName) {result += outputJsMethodName;result += outputDesc;result += outputJsParams;result += outputJsReturnType;result += outputAuthor;result += outputDateTime;
} else {result += outputProjectName;
//  result += outputPackageName;result += outputClass;result += outputDesc;result += outputAuthor;result += outputDateTime;result += outputVersion;
//  result += outputClassOtherInfo;
}
//result += " *";
return result;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824660.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TYPE-C PD浅谈(三)

由于TYPE-C两头都一样,没有方向性,所以在对接前并不会有电源输出,数据主从也尚未定义。在PD的规范内,针对装置对接,定义了三个电阻来进行对接的识别。 Rp:做为Provider需要在CC脚位上上拉一个Rp电阻。Rp电阻允许有三种阻值(pull high 5V时,10K/22K/56K),这三种阻值也同…

思考能力的提升从把复杂问题简单化开始

在生活中我们会遇到各种各样的问题。有些问题非常简单;有的却非常复杂,让人们无从下手去解决。 但有些看似复杂的问题,只要我们仔细去分析它们,拨开云雾,自然就会见到“青天”。这种分析方法,就是“化繁为简”的思考模式,也就是——简化思考法。当复杂的问题被简化之后,…

异常捕获

异常捕获当你的程序出现例外情况时就会发生异常(Exception)。例如,当你想要读取一个文件时,而那个文件却不存在,怎么办?又或者你在程序执报错了怎么办?这些通过使用异常来进行处理。类似地,如果你的程序中出现了一些无效的语句该怎么办?python 将会对此进行处理,举起…

怎样设置OKR

设置OKR的关键步骤是:一、确定目标(Objectives);二、设定关键结果(Key Results);三、设定优先级和责任人;四、跟踪和评估。明确目标是成功设置OKR的关键,只有在此基础上,才能制定出有意义的关键结果和OKR,从而帮助企业或个人实现目标。一、确定目标(Objectives) 目…

leetcode560 和为k的子数组

leetcode560 和为k的子数组package java2024_10.day30;import java.util.HashMap;public class leetcode560 {/*思路:前缀和+哈希表a[j]-a[i]=k即a[i]=a[j]-k遍历到下标j的时候,先判a[j]==k,相等就ans++,然后查哈希表中a[j]-k的数的个数,然后把a[j]放入哈希表中相当于:1.…

20222314 2024-2025-1 《网络与系统攻防技术》 实验三实验报告

网络与系统攻防实验报告 实验时间:2024-10-25 ~ 2024-10-31 实验人员:20222314陈振烨 实验地点:地下机房 指导教师:王志强 本周学习内容 学习了免杀的相关原理,掌握了msf的编码免杀基本操作,成功下载了veil加壳器并进行加壳免杀 实践内容 (1)正确使用msf编码器,veil-eva…

如何在Go中进行单元测试

# 如何在Go中进行单元测试 在Go语言中进行单元测试是确保代码质量和功能正确性的重要手段。Go的标准库提供了`testing`包来支持单元测试、基准测试、示例函数等测试方式。本文将详细介绍如何在Go语言中有效地进行单元测试,包括编写测试用例、运行测试、使用表驱动测试、测试覆…

多线程在打包工具中的运用

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:UED 团队现代操作系统都是「多任务」的,也就是操作系统可以「并发」处理多个任务,比如可以在浏览页面的时候同时播放音乐。但是,…

网易伏羲:智能体驱动 未来可期 | 《天堂硅谷》杂志报道

近日,网易伏羲产品总监Jeff接受《天堂硅谷》杂志「创业在高新」专栏采访,分享网易伏羲在人工智能领域的最新成就与未来发展愿景,如全球首创的游戏Copilot AI队友及“灵动”机器人品牌,展现了网易伏羲从游戏到实体产业的全方位技术应用与突破。《天堂硅谷》杂志由杭州市高新…

知识点

1.OSI七层网络模型以及TCP/IP四层网络模型2.Web客户端作用:发送request请求 接受response响应 解析response响应 javascript的执行3.常见的安全测试类型:认证与授权 session 和 cookie 文件上传漏洞 缓存溢出漏洞 SQL注入 XSS跨站脚本攻击 DDos分布式拒绝服务攻击4.http的相应…

行为识别常用哪种特征提取

行为识别在许多领域,如安全监控、人机交互和健康监测中,起着关键作用。特征提取是行为识别的重要步骤。常用的特征提取方法有:1. 时间域特征提取;2. 频率域特征提取;3. 时频域特征提取;4. 深度学习特征提取。其中,时间域特征提取关注信号的统计性质,如均值、方差等,常…

idea 自动生成注释

idea 注释 一.类注释 创建类时自动生成 1. file >> settings Editor >> FIle and Code Templates 2.添加 /*** Title : ${NAME}<br>* Description : <br>* Create on : ${DATE} ${TIME}<br>* * @author Li Xiaojun* @version 1.0.0**/ 二. 方法…