idea插件编写

article/2025/9/23 6:51:59

idea插件编写

  • idea插件编写
    • 准备工作:添加对应版本的JDK
    • 编写插件
      • 第一步:创建IntelliJ Platform Plugin项目
      • 第二步:配置plugin.xml,填写基本信息
      • 第三步:编写插件、配置actions
        • 方式一:完全手动
        • 方式二:借助IDEA插件开发助手IDEA Plugin DevKit Helper,半自动
        • 常用group-id说明
      • 第四步:运行、调试插件
      • 第五步(可选):引入依赖
      • 第六步:打包插件
      • 第七步:安装插件
    • 相关补充
      • idea如何打开一个现有的插件项目
      • 发布插件到插件市场(手动发布)
    • 相关资料

准备工作:添加对应版本的JDK

编写插件时,不同版本的IntelliJ IDEA,对JDK的版本要求不同。本人使用的是2021版本的IntelliJ IDEA进行的插件编写,需要设置JDK11

在这里插入图片描述
在这里插入图片描述

编写插件

第一步:创建IntelliJ Platform Plugin项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二步:配置plugin.xml,填写基本信息

<idea-plugin><!-- 插件唯一id,不能和其他插件id重复 --><id>com.idea-aedi.plugin</id><!-- 插件名称(在插件市场搜索插件时,搜索的就是这个名称) --><name>JustryDeng</name><!-- 版本号 --><version>1.0</version><!-- 供应商主页和email --><vendor email="13548417409@163.com" url="https://gitee.com/JustryDeng/projects"/><!-- 插件描述,支持HTML标签 --><description><![CDATA[JustryDeng common plugin, Welcome to use.]]></description><!-- 插件版本变更信息,支持HTML标签; 将展示在 settings | Plugins 对话框和插件仓库的Web页面 --><change-notes><![CDATA[<ul><li>since 2021-12-11</li></ul>]]></change-notes><!--插件兼容IDEA的最大和最小 build 号,两个属性可以任选一个或者同时使用,please see https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html for description--><idea-version since-build="173.0"/><!-- 插件所依赖的其他插件的id --><depends>com.intellij.modules.platform</depends><depends>com.intellij.modules.lang</depends><depends>com.intellij.modules.java</depends><extensions defaultExtensionNs="com.intellij"><!-- Add your extensions here --></extensions><actions><!--!!!!!! 这部分内容需要在下面的步骤中配置(手动配置、或借助插件开发助手自动配置) !!!!!!--></actions></idea-plugin>

第三步:编写插件、配置插件

方式一:完全手动

  • 第一步:编写想要实现的功能类,需要继承com.intellij.openapi.actionSystem.AnAction

    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.intellij.openapi.actionSystem.PlatformDataKeys;
    import com.intellij.openapi.project.Project;
    import com.intellij.openapi.ui.Messages;public class HelloAction extends AnAction {@Overridepublic void actionPerformed(AnActionEvent event) {// your logicProject project = event.getData(PlatformDataKeys.PROJECT);String txt= Messages.showInputDialog(project, "What is your name?", "Question", Messages.getQuestionIcon());Messages.showMessageDialog(project, "Hello, " + txt + "!\nI am glad to see you.", "Information", Messages.getInformationIcon());}
    }
    
  • 第二步:配置plugin.xml中的actions`

    提示:为了示例的多样性,这里给出两个配置示例

    <!-- 提示:action标签和group标签的id字段值自取即可-->
    <actions><!--示例一:在MainMenu菜单下的HelpMenu菜单里,最前面增加一个叫'Hello'的按钮--><action id="com.idea-aedi.plugin.Hello" class="com.example.ideaplugin.HelloAction" text="Hello"description="Say hello."><!--  指定父节点 action 或 action group 被添加到的位置 --><add-to-group group-id="HelpMenu" anchor="first"/></action><!--示例二:在MainMenu菜单的最后面,增加一个 叫'JustryDeng'的菜单,其中字母J带下划线--><group id="com.idea-aedi.plugin.JustryDeng" text="_JustryDeng" description="JustryDeng's common util."><!--  指定父节点 action 或 action group 被添加到的位置 --><add-to-group group-id="MainMenu" anchor="last"/><!-- 当前菜单下,再添加一个叫'Say Hey'的按钮,其中字母S带下划线 (注:当然还可以嵌套菜单) --><action id="com.idea-aedi.plugin.JustryDeng.Hello" class="com.example.ideaplugin.HelloAction" text="Say _Hello" description="Say hello."/></group>
    </actions>
    

方式二:借助IDEA插件开发助手IDEA Plugin DevKit Helper,半自动

插件开发助手,可以在帮助我们快速创建Action并在plugin.xml中作对应的配置,而不需要我们手动配置。

  • 第一步:安装IDEA插件开发助手IDEA Plugin DevKit Helper在这里插入图片描述

  • 第二步:使用插件开发助手创建Action在这里插入图片描述

  • 在这里插入图片描述

其中设置插件位置处里,Action代表一个"按钮",Group代表菜单,Group里可能有多个Action;先选择一个Group或者一个Action,然后选择Anchor位置,即可通过相对位置的方式,将插件的位置确定下来了。比如说需要将按钮设置在Help菜单的最上面:
在这里插入图片描述

点击OK,插件开发助手就会创建对应名字的AnAction类,同时会将新按钮的信息(按钮id、AnAction类、按钮名称、描述、位置等信息)添加进plugin.xml中的actions标签里。

  • 第三步:在生成的AnAction类中编写逻辑

    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.intellij.openapi.actionSystem.PlatformDataKeys;
    import com.intellij.openapi.project.Project;
    import com.intellij.openapi.ui.Messages;public class HelloAction extends AnAction {@Overridepublic void actionPerformed(AnActionEvent event) {// your logicProject project = event.getData(PlatformDataKeys.PROJECT);String txt= Messages.showInputDialog(project, "What is your name?", "Question", Messages.getQuestionIcon());Messages.showMessageDialog(project, "Hello, " + txt + "!\nI am glad to see you.", "Information", Messages.getInformationIcon());}
    }
    

常用group-id说明

  • MainMenu:主菜单
    在这里插入图片描述

  • CutCopyPasteGroup:左侧导航栏菜单
    在这里插入图片描述

  • EditorPopupMenu:右侧代码栏菜单
    在这里插入图片描述

  • GenerateGroup:按alt + insert时弹出的菜单栏在这里插入图片描述

第四步:运行、调试插件

在这里插入图片描述

运行插件时,会新打开一个idea:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试一下功能,也是OK的:

在这里插入图片描述

在这里插入图片描述

第五步(可选):引入依赖

在我们实际开发idea插件过程中,可能还会需要其它的依赖,这时可采用官方推荐的gradle创建idea插件的方式,但是会略显麻烦;简单的,你可以直接将依赖的lib包as library引入进当前项目即可:

在这里插入图片描述

在这里插入图片描述

检查一下:

在这里插入图片描述

第六步:打包插件

在这里插入图片描述

注:如果项目有依赖其它jar包,那么打出来的就不是jar包,而是zip包了。

第七步:安装插件

如果插件有发布到插件市场,那么可以直接在线从插件市场安装;如果插件没有发布到插件市,那么可以采用下面这种从磁盘安装的方式进行安装。

打开File | Settings | Plugins,选择从磁盘安装:

在这里插入图片描述

选中插件包后,可看到:

在这里插入图片描述

点击OKApply重启idea完成安装

相关补充

idea如何打开一个现有的插件项目

  • 问题所在

    如果你使用idea直接打开一个plugin项目,那么可能是这样的(没有被idea认出来是插件项目):

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OgERA2Ab-1641397282887)(../repository/image-20220105232253811.png)]

    而实际的插件项目是这样的(有被idea认出来是插件项目):

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KVCvwyVz-1641397282888)(../repository/image-20220105232403343.png)]

  • 解决办法

    直接修改项目的.iml文件:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4m9Zu1E0-1641397282889)(../repository/image-20220105233134683.png)]
    将type修改为PLUGIN_MODULE,并通过增加<component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/resources/META-INF/plugin.xml" />来指定plugin.xml的位置:

    修改前:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7koaa62-1641397282890)(../repository/image-20220105232702072.png)]
    修改后:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZRg2ebtn-1641397282890)(../repository/image-20220105233027578.png)]
    此时,再观察项目,会发现idea已经识别出是插件项目了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vkyrtpom-1641397282891)(../repository/image-20220105233345725.png)]

发布插件到插件市场(手动发布)

提示:如果使用的gradle编写构建的插件,那么可以使用gradle集成的能力,自动将插件发布到插件市场,而不需要手动发布。

  • 第一步:访问https://plugins.jetbrains.com/

  • 第二步:登录(支持多种方式登录,本人常用Github登录)在这里插入图片描述

  • 第三步:上传插件在这里插入图片描述
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ka4tJkdg-1641570511944)(../repository/image-20220107234623239.png)]

  • 第四步:等审核通过后,就可以在插件市场搜索到你的插件了


相关资料

  • 官网
  • demo代码下载
  • 本文已被收录进《程序员成长笔记》 ,笔者JustryDeng

http://chatgpt.dhexx.cn/article/rdo9HF1I.shtml

相关文章

IDEA(插件)

0.IDEA如何安装插件&#xff1a; 1.安装第1个插件&#xff08;ptg&#xff09; a. 作用&#xff1a;自动生成get、set和toString插件 b. 方法&#xff1a;在实体类上右击鼠标就会弹出小窗口&#xff0c;点击Ptg To JavaBean就可以自动生成get、set和toString。 c. 好处&…

IDEA 实用插件

IDEA手动下载插件官方地址 JetBrains Marketplace 1、IDEA 翻译插件 2、MyBatis Log Plugin 输出sql日志 3、Free Mybatis plugin 自由切换xml和dao 4、Maven Helper 5、RestfulTool Restful服务开发辅助工具集 6、GitToolBox 查看每行代码的git提交者 1、IDEA翻译插件 …

装了这几个IDEA插件,基本上一站式开发了!

前言 前几天有社区小伙伴私聊我&#xff0c;问我都用哪些IDEA插件&#xff0c;我的IDEA的主题看起来不错。 作为一个开源作者&#xff0c;每周要code大量的代码&#xff0c;提升日常工作效率是我一直追求的&#xff0c;在众多的IDEA插件中&#xff0c;我独钟爱这几款。这期就…

Idea插件官网下载安装(plugins)

Idea插件官网下载安装 进入官网&#xff1a;https://plugins.jetbrains.com 国内网络延迟太大&#xff0c;可以翻墙挂VPN 选择插件 3. 选择版本 4. 选择合适版本下载后 5. 将下载好的插件zip包放在一个文件夹下&#xff0c;博主这里放在idea 的plugins文件夹下的。 在Idea中…

Idea插件开发教程

1. 开发环境搭建 1.1 IDE 使用idea社区版即可。 1.2 配置Plguin SDK 打开Project Structure设置面板&#xff0c;找到Platform Settings/SDKs&#xff1a; 点击上方“”号&#xff0c;选择Plugin SDK&#xff1a; Home Directory选择idea的安装根目录&#xff1a; JDK选择…

Idea插件官网下载插件并安装

Idea插件官网下载插件并安装 为了解决Idea中Plugins功能转不出来&#xff0c;如下图 在开始操作之前可以先试试以下方法能不能使Idea成功加载Plugins功能&#xff0c;执行下图操作后&#xff0c;重启试试&#xff0c;一般都能转出来&#xff0c;如果不行&#xff0c;直接去官…

idea下载插件的两种方式

通过idea软件提供的方式下载 file --> settings–>plugins搜索即可 外部安装导入-直接安装 2.1 登录插件库&#xff1a;https://plugins.jetbrains.com/idea 2.2 查询需要的插件&#xff0c;并且直接对应到你的软件&#xff0c;直接安装到idea&#xff0c;重启idea 外部…

Idea插件开发-开发自己的第一款idea插件

配合视频享用效果更佳: IDEA插件开发 开发一块自己Idea插件 前言 自己平时用idea开发&#xff0c;就琢磨着idea插件的开发。在这里介绍一下idea大致开发的流程。和自己没事开发的两个简单的idea插件。一个是毒鸡汤插件&#xff0c;一个是代码阅读笔记插件。idea插件开发的资…

【idea插件开发】从0入门idea插件开发,idea插件开发教程,如何开发idea插件

idea插件介绍 作为一枚程序员&#xff0c;平时最常用的ide就是IntelliJ IDEA。平时会用到各种各样的插件&#xff0c;通过插件的使用&#xff0c;提高自己的开发效率。 idea具有全局性&#xff0c;安装好插件后&#xff0c;对idea生效&#xff0c;所有的工程均能找到。 idea…

常用的IDEA插件

IDEA是程序员用的最多的开发工具&#xff0c;很多程序员想把它打造成一站式开发工具&#xff0c;于是安装了各种各样的插件。通过插件在IDEA中完成各种操作&#xff0c;无需安装其他软件&#xff0c;确实很方便&#xff01;今天给大家分享下我平时常用的IDEA插件&#xff0c;个…

IDEA最全实用插件与使用(VIP典藏版)

&#x1f308;idea总结100篇&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 目录 一、搜索插件 二、快捷开发系列 &#x1f33e;CodeGlance&#xff1a;代码缩略图 &#x1f921;GenerateAllSetter&#xff1a;快速生成对象所有set方法 &#x1f308;came…

IDEA常用插件Top18

前言&#xff1a;精心推荐给大家的一些日常开发中最常用的IDEA效率插件。 1、Alibaba Java Coding Guidelines代码规范检查工具 Alibaba Java Coding Guidelines ,阿里的一款强大的代码规范检查工具&#xff0c;可以让自己写出易读性更高的代码&#xff0c;可以让团队代码风格…

IDEA常用插件介绍

前言&#xff1a;插件名为笔者自用的IDEA2019.3.5所能搜索到的&#xff0c;若新版IDEA未能搜索到&#xff0c;可用括号内的插件名替代。 一、Lombok&#xff08;新版IDEA自带&#xff09; Lombok能通过注解的方式&#xff0c;在编译时自动为属性生成构造器、getter/setter、e…

超实用的IDEA插件推荐,百万级下载量

超实用的30多款idea插件&#xff0c;有百万级下载量的优秀插件&#xff0c;你值得拥有&#xff01; 好的工具助你事半功倍&#xff0c;快速协助敲出更漂亮更有效率的代码。搬运工这里收集了很不错的IDEA插件&#xff0c;相信你一定会喜欢的。 〓必备插件列表&#xff1a; Gre…

【Java】分享一下26个常用的IDEA插件

文章目录 1. Chinese Language2. Atom Material Icon3. Rainbow Brackets4. Translation5. Codota6. GenerateAllSetter7. GsonFormatPlus8. Alibaba Java Coding Guidelines9. Free Mybatis Tool10. maven-search11. Maven Helper12. CodeGlance Pro13. MyBatisCodeHelperPro1…

墙裂推荐,2023年最强、最实用的IDEA插件推荐合集

插件目录 Alibaba Java Coding Guidelines(阿里巴巴java开发规范)Alibaba Cloud AI Coding Assistant(阿里云AI代码助理)Code Glance3(代码地图)Codota AI Autocomplete for Java and JavaScriptCSDN Tools(CSDN官方插件)FindBugsGenerateAllSetter Postfix Completion (自动生…

装了这 10 个 IDEA 神级插件,基本上一站式开发了!

大家好&#xff0c;我是二哥呀。 昨天&#xff0c;有球友私信发我一篇文章&#xff0c;说里面提到的 Intellij IDEA 插件真心不错&#xff0c;基本上可以一站式开发了&#xff0c;希望能分享给更多的小伙伴&#xff0c;我在本地装了体验了一下&#xff0c;觉得确实值得推荐&…

IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件

目录 一、插件安装方式 二、常用插件 1、Background Image Plus 2、Mybatis Log Plugin 3、MybatisCodeHelperPro 4、Grep Console 5、CodeGlance 6、GenerateAllSetter 7、RestfulToolkit 8、Maven Helper 9、JRebel 10、 Json Parser 11、Translation 12、aiXcode & co…

IDEA必备30款好用插件合集

01、Chinese Language 汉化必备 02、One Dark theme 代码主题 03、Atom Material Icon 图标主题 04、Rainbow Brackets 多彩花开括号 05、Translation 翻译 快捷键&#xff1a;CtrlShiftY 06、Codata 代码提示 07、Tabnine AI Code Competion 代码提示 08、any-rule 正则表达式…

IDEA工具插件(持续更新中...)

快捷跳转 1.如何下载2.IDEA配置1.版本控制修改文件对应的目录跟着报色2.取消匹配大小写3. 创建文件显示&#xff0c;作者&#xff0c;日期&#xff0c;描述&#xff0c;包名等信息4.双斜杆注释紧跟代码前面5.自动导入包6.取消tab页单行显示 3.插件1.CamelCase2. Alibaba Cloud …