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

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

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

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

相关文章

解决raw.githubusercontent.com无法访问的问题

显示报错&#xff1a;ConnectionError: Couldn’t reach https://raw.githubusercontent.com/huggingfac 无法访问 在https://www.ipaddress.com 或者ip138.com网站中的查询框中输入&#xff1a;raw.githubusercontent.com 回车就能有下图中的网页&#xff0c;在里面找到相应的…

高效职场人

文章目录 1.时间效能 ABCD2.高效员工的习惯之 自我掌控的秘诀3.学会做主4.学会互赢5.学会沟通、学会聆听6.学会可持续发展&#xff1a;四个方面更新自我(1)更新身体(2)更新精神(3)更新智力(4)更新人际情感 1.时间效能 ABCD 时间四象限&#xff1a; A类任务&#xff1a;重要且紧…

数据结构 (33)选择类排序

前言 数据结构中的选择类排序主要包括简单选择排序&#xff08;也称为选择排序&#xff09;和堆排序。 一、简单选择排序 基本思想&#xff1a;简单选择排序是一种直观易懂的排序算法。它的工作原理是&#xff0c;在未排序序列中找到最小&#xff08;或最大&#xff09;元素&am…

Kubernetes架构原则和对象设计(二)

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes常见问题解答 本文从云计算架构发展入手&#xff0c;详细分析了kubernetes的生态系统、设计理念、分层架构、API设计…

自建服务器,数据安全有保障

在远程桌面工具的选择上&#xff0c;向日葵和TeamViewer功能强大&#xff0c;但都存在收费昂贵、依赖第三方服务器、数据隐私难以完全掌控等问题。相比之下&#xff0c;RustDesk 凭借开源免费、自建服务的特性脱颖而出&#xff01;用户可以在自己的服务器上部署RustDesk服务端&…

发布Apache2.4** 局域网无法访问

1。 防火墙关闭 或者 设置入站规则 2&#xff0c;查看httpd.conf 文件 设置配置 原 Listen 80 修改成 Listen 192.168.31.127:90 3.确保 本地IP 是否正确

Flutter解压文件并解析数据

Flutter解压文件并解析数据 前言 在 Flutter 开发中&#xff0c;我们经常需要处理文件的读取和解压。 这在处理应用数据更新、安装包、存档文件等场景中尤为常见。 本文将介绍如何在Flutter中使用archive插件来解压文件并解析数据。 准备 在开始之前&#xff0c;我们需要…

HiveSQL题——炸裂函数(explodeposexplode)

目录 一、炸裂函数的知识点 1.1?炸裂函数 ?explode? posexplode 1.2 lateral view 侧写视图 二、实际案例 2.1 每个学生及其成绩 0 问题描述 1 数据准备 2 数据分析 3 小结 2.2?日期交叉问题 0 问题描述 1 数据准备 2 数据分析 3 小结 2.3?用户消费金额 …

从差分电容到多轴测量:解读 BendLabs 柔性弯曲传感器核心技术

BendLabs是一家技术公司&#xff0c;致力于通过灵活的软传感解决方案将运动测量和理解带给世界。BendLabs柔性弯曲传感器由医用级有机硅制成&#xff0c;能够满足精确、多轴、柔软、灵活的传感需求。BendLabs柔性弯曲传感器采用差分电容原理&#xff0c;具有高精度、低功耗、无…

【数字电路与逻辑设计】实验二 数值比较器

文章总览&#xff1a;YuanDaiMa2048博客文章总览 【数字电路与逻辑设计】实验二 数值比较器 一、实验内容二、设计过程&#xff08;一&#xff09;真值表&#xff08;二&#xff09;设计思路 三、源代码&#xff08;一&#xff09;代码说明&#xff1a;&#xff08;二&#xff…

39 vector深入理解 · 迭代器失效深度浅拷贝

目录 一、迭代器失效 &#xff08;一&#xff09;外部迭代器失效 1、扩容引起的野指针问题 2、删除引起的逻辑问题 二、深度浅拷贝 一、迭代器失效 迭代器可以理解为像指针一样的类对象&#xff0c;但不要一味地认为迭代器就是指针&#xff0c;指针可以实现迭代器&#xff…

2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现&#xff1a; 巴黎气候协定提出的目标是&#xff1a;在2100年前&#xff0c;把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平&#xff0c;并为1.5摄氏度而努力。但事实上&#xff0c;许多之前的…

AI智能体Prompt预设词指令大全+GPTs应用使用

AI智能体使用指南 直接复制在AI工具助手中使用&#xff08;提问前&#xff09; 可前往SparkAi系统用户官网进行直接使用 SparkAI系统介绍文档&#xff1a;Docs 常见AI智能体GPTs应用大全在线使用 自定义添加制作AI智能体进行使用&#xff1a; 文章润色器 你是一位具有敏锐洞察…

Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理-方法二

1.先导入数据到origin 2.导入文件的时候注意&#xff1a;名字短的这个是&#xff0c;或者你打开后看哪个里面有800&#xff0c;因为我的激光重频是1.25Hz&#xff08;应该是&#xff0c;不太确定单位是KHz还是MHz&#xff09;&#xff0c;所以对应的时间是800s。 3.选中两列直接…

Mybatis框架进阶(标签)

1. <if>标签 DROP DATABASE IF EXISTS mybatis_test; CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4; use mybatis_test;DROP TABLE IF EXISTS user_info; CREATE TABLE user_info (id INT ( 11 ) NOT NULL AUTO_INCREMENT,username VARCHAR ( 127 ) NOT…

【知识点】图与图论入门

何为图论 见名知意&#xff0c;图论 (Graph Theory) 就是研究 图 (Graph) 的数学理论和方法。图是一种抽象的数据结构&#xff0c;由 节点 (Node) 和 连接这些节点的 边 (Edge) 组成。图论在计算机科学、网络分析、物流、社会网络分析等领域有广泛的应用。 如下&#xff0c;这…

泷羽sec-burp(4)burp常见用法 以及 漏洞测试理论 学习笔记

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

Linux上传代码的步骤与注意事项

最近因为工作需要&#xff0c;要上传代码到 DPDK 上&#xff0c;代码已经上传成功&#xff0c;记录一下过程&#xff0c;给大家提供一个参考。我这次需要上传的是pmd&#xff0c;即poll mode driver。 1 Coding Style 要上传代码&#xff0c;第一件事就是需要知道Coding Styl…

vllm0.5.0的v1/completions各参数说明

一、调用示例 curl -X POST \http://ip:8001/v1/completions \-H accept: application/json \-H Content-Type: application/json \-d {"model": "qwen-api","prompt": ["讲个中文笑话"],"best_of": 1,"n": 1,&qu…

Java项目实战II基于微信小程序的作品集展示(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着移动互联网技术的飞速…