idea插件开发初体验
背景
标准化的git commit Message很重要,一直以来我用的都是commit-template-idea-plugin,他提供的模板遵循了conventionalcommits规范
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
市面上也有基于AI生成Commit Message的插件,比如AI Commits, 但是他生成的Commit Message又不能满足上面的规范,所以,我萌生了自己写一个的想法。
明确需求
功能:AI生成CommitMessage,并且符合规范。
UI:和commit-template-idea-plugin
一样,这样能无缝切换
其他:需要有一个setting页面,配置API KEY,选择模型(需要知道是openai的还是通义千问、豆包这些,这样才知道用什么API)
通知:需要做UI上的通知包括(info,success,failed)
开发
不是很复杂,得有Java或者kotlin的基础,还需要用到swing编程,但不多,好在AI编程类工具极大的降低了开发的门槛。
jetbrains提供了开发插件的文档如下:
- Developing a Plugin
- Plugin Structure
- Plugin Development FAQ
这些不需要统统读一遍,遇到问题了可以去这里查。
找同类
不用按照一些文档搭建quick start demo,找到和自己需求相似的同类,看他们是怎么做的,借鉴是最快的学习方式。
回头看下我的需求,概括来说,就是在commit-template-idea-plugin
增加了AI生成的功能,我找到了开头说的两个插件,找到了他们的github,向他们学习。
最重要的事情
起名字和插件图标
给插件起个好名字很重要,很重要。
我起的名字叫 git-commit-genie
图标很重要,会在marketplace中展示。
AI的出现降低了这些事情的门槛,上面两个都可以用AI生成,要说清楚插件的功能。
开发过程
找到同类后,按照我的需求要有下面的功能
- 需要和
commit-template-idea-plugin
一样的界面和功能 - 需要有setting页面,idea中要保存用户配置的数据,代码中需要使用
- 需要和不同的模型做对接。
- 需要有方式能调用idea提供的通知类API
首先去同类的插件中看他们是否有这样的功能,如果没有再去翻上面的文档。
下面我列出了我项目中的类图
打包
和正常的Java项目一样,build就可以
READEME很重要
要突出下面几点
- 简介
- 特点
- 怎么安装和使用
- licence
下面是我的README
发布
jetbrains文章介绍了如何发布一个插件,→Publishing a Plugin
概括的说
- 创建账号
- 在profile中创建插件,写好插件相关的信息
- 上传打包好的插件
- 提交审核
提交审核,审核结果通知都会有对应的邮件通知。
git-commit-genie介绍
github:https://github.com/daliuchen/git-commit-genie-plugin
JETBRAINS Marketplace:https://plugins.jetbrains.com/plugin/25992-git-commit-genie
git-commit-genie 基于AI生成标准化的Commit Message,模板如下
<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>
并且支持自定义Commit Message Prompt,支持多个LLM(现支持通义系列)
- 首先,需要设置apikey,选择模型( Open Settings > Tools > Git Commit Genie)
- 之后,可以在Commit的dialog中就可以使用啦
欢迎大家来使用它,同时也欢迎大家一块协作,提交代码,支持更多的模型