还在为写注释烦恼?这款idea插件能帮你写JavaDoc注释

1,201 阅读4分钟

大家好,我又来折腾了。还是我,那个沉迷于用代码解决代码问题的全栈小弟。

自从上次做了“命名神器”插件后,我写代码的幸福感确实提升了不少。但作为一个开发者,我们的“痛点”就像野草,割了一茬又长一茬。这不,最近我又被一个新的问题给缠上了——写代码注释

说起注释,我们对它真是又爱又恨。

  • 爱它:因为一份好的注释,能在几个月后拯救那个对着自己代码一脸懵逼的你,也能让接手你代码的同事对你心存感激。
  • 恨它:因为写注释真的好麻烦!特别是写完一个复杂的方法后,那种大脑被掏空的感觉,实在不想再耗费心力去组织语言描述它。

市面上其实也有一些注释生成工具,我自己也用过。但用下来总感觉差点意思。它们大多是基于“翻译”的逻辑,简单地把你的方法名翻译成中文。

这就导致一个很尴尬的问题:如果你的方法命名本身就不太规范,那生成的注释基本就等于废话。

比如我写了个方法叫 process(List dataList),一个翻译工具可能会生成注释:// 处理数据列表。

这……说了跟没说一样啊!天知道我这个 process 方法里是过滤、是排序、还是做了什么复杂的业务聚合。

我寻思着,现在大模型(LLM)的能力这么强,它连考试写论文都能搞定,难道还“读不懂”我区区一个方法吗?工具应该是“理解”我的代码,而不是简单地“翻译”我的方法名。

于是,肝了几个晚上,我为我的那个小小的IDEA插件,增加了一个我自己超爱用的新功能:

image.png

AI 智能注释!

它的使用方式,我设计得极其简单粗暴:

  1. 把你的光标,放在需要生成注释的方法里的任何一个地方。你没看错,是方法体里的任何地方,不需要选中,不需要思考。
  2. 轻轻按下快捷键:Alt + M(如果快捷键不行,可以修改其他的自己方便的快捷键)
  3. 稍等片刻(大概一两秒,等待期间不用停留在页面等待,完成后会自动替换或者插入注释,速度取决于你的网络和选择的模型)。

然后,见证奇迹的时刻就到了。一段由AI“读懂”你代码后,为你量身定做的注释,就会自动出现在方法的上方。

我们还拿刚才那个 process 方法举例。哪怕你的方法名写得再随意,只要你的代码逻辑是清晰的,AI就能看懂。

【你的代码】

Java

public List<String> process(List<User> userList) {
    List<String> result = new ArrayList<>();
    for (User user : userList) {
        if (user.isActive() && user.getAge() > 18) {
            result.add(user.getEmail());
        }
    }
    return result;
}

【按下 Alt + M 后】

Java

/**
 * 从用户列表中筛选出状态为活跃且年龄大于18岁的用户,并返回他们的邮箱地址列表。
 *
 * @param userList 用户对象列表
 * @return 符合条件的用户的邮箱地址列表
 */
public List<String> process(List<User> userList) {
    // ... 方法体 ...
}

看到没!它直接看懂了你的代码逻辑,而不是管你那个叫 process 还是 handle 的烂名字。这才是真正的智能,这才是我们想要的工具!

当然,考虑到大家对注释的详细程度有不同偏好,我在插件的设置页面里,也提供了两种模式供你选择:

  • 简单模式:成标准的 Javadoc 风格注释,包含对参数(@param)和返回值(@return)的简单说明。

  • 详细模式:生成标准的 Javadoc 风格注释,包含对参数(@param)和返回值(@return)的详细说明,非常适合写库或者重要接口。

    同时支持智普ai的多种模型,不同的模型速度和效果都有差异,可以在智普的开放平台,申请好apikey,进行使用,如果不想申请,可以使用作者的apikey,但是速度比较慢,建议还是自行申请。

image.png

这个功能,我自己现在已经用得停不下来了。每次写完一个方法,顺手按一下 Alt+M,已经成了一种肌肉记忆。

如果你已经安装了我的插件,直接更新到最新版即可体验。

如果还没尝试过的朋友,欢迎在 IDEA 插件市场搜索 “Easy Naming” (对,还是那个命名神器,现在它更强大了) 下载使用。

希望这个小功能,能再次为你节省一点点宝贵的时间和脑力,让我们能更专注于创造本身。

—— 一个持续为开发者幸福感而折腾的全栈小弟