jetbrain 插件开发初体验

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提供了开发插件的文档如下:

  1. Developing a Plugin
  2. Plugin Structure
  3. Plugin Development FAQ

这些不需要统统读一遍,遇到问题了可以去这里查。

找同类

不用按照一些文档搭建quick start demo,找到和自己需求相似的同类,看他们是怎么做的,借鉴是最快的学习方式。

回头看下我的需求,概括来说,就是在commit-template-idea-plugin增加了AI生成的功能,我找到了开头说的两个插件,找到了他们的github,向他们学习。

最重要的事情

起名字和插件图标

给插件起个好名字很重要,很重要。

我起的名字叫 git-commit-genie

图标很重要,会在marketplace中展示。

在这里插入图片描述

AI的出现降低了这些事情的门槛,上面两个都可以用AI生成,要说清楚插件的功能。

开发过程

找到同类后,按照我的需求要有下面的功能

  1. 需要和commit-template-idea-plugin一样的界面和功能
  2. 需要有setting页面,idea中要保存用户配置的数据,代码中需要使用
  3. 需要和不同的模型做对接。
  4. 需要有方式能调用idea提供的通知类API

首先去同类的插件中看他们是否有这样的功能,如果没有再去翻上面的文档。

下面我列出了我项目中的类图

在这里插入图片描述

打包

和正常的Java项目一样,build就可以
在这里插入图片描述

READEME很重要

要突出下面几点

  • 简介
  • 特点
  • 怎么安装和使用
  • licence

下面是我的README
在这里插入图片描述

发布

jetbrains文章介绍了如何发布一个插件,→Publishing a Plugin

概括的说

  1. 创建账号
  2. 在profile中创建插件,写好插件相关的信息
  3. 上传打包好的插件
  4. 提交审核

提交审核,审核结果通知都会有对应的邮件通知。

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中就可以使用啦
    在这里插入图片描述在这里插入图片描述

欢迎大家来使用它,同时也欢迎大家一块协作,提交代码,支持更多的模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值