前言
之前的文章自动化编程—JSR269中,我们实现了使用Processor自动生成代码,但是不能在debug时使用自动生成的代码,要解决这个问题就需要依托IDEA的插件功能了,在这篇文章中,我就来跟大家一起探索一下IDEA插件的开发过程,并实现一个小demo,废话少说,我们现在直接开始。
名词解释
为了更好理解,以下内容将以spring中的概念作类比。
-
Action:可以理解为spring中的controller,当用户点击插件中的按钮或触发某个事件时,就会调用Action中的方法。所有的Action都需要继承com.intellij.openapi.actionSystem.AnAction抽象类并实现actionPerformed方法。
-
Service:可以理解为spring中普通的类(不是spring中的service),service分为应用级和工程级
-
plugin.xml:插件的配置文件,类比spring中的配置文件,这里配置了插件信息、作者信息等,当然他最重要的作用是,所有的Action都需要这这个配置文件中进行配置。
今日目标
- 创建一个IDEA插件工程
- 在IDEA菜单中展示插件
- 点击插件按钮,展示我的信息
创建项目
为了方便我们开发调试,最好还是下载一个IDEA社区版,稍后要将其作为sdk使用,当然你也可以用专业版左右运行的SDK,只是专业版不开源,有bug不好调试。
创建一个新项目,选择IntelliJ platform plugin,SDKs选择我们之前下载好的社区版IDEA的路径,然后提示我们选择JDK,就选择我们本地的jdk即可。
基本配置
项目创建完成之后,在resources.META-INF文件夹下有一个plugin.xml文件,其中我们可以配置我们插件的基本信息,包括作者的信息和组件、事件等的注册信息。
<idea-plugin>
<id>yzstu</id> <!-- 当前插件的唯一id号 -->
<name>A demo</name> <!-- 插件的名称 -->
<version>1.0</version> <!-- 插件的版本号 -->
<vendor email="dikeywang@163.com" url="https://blog.yzstu.cn">yzstu</vendor> <!-- 开发者信息 -->
<description>This is a idea plugin just for test and learning</description> <!-- 插件的描述 -->
<change-notes>This is a idea plugin just for test and learning</change-notes> <!-- 插件的更新信息 -->
<!-- please se