官方文档
- https://jetbrains.org/intellij/sdk/docs/intro/welcome.html
- https://github.com/JetBrains/intellij-sdk-docs
官方示例:
简单的插件工程
如图所示,我们可以使用 intellij IDEA 直接创建一个intellij Platform 插件
项目允许使用 Java 进行开发
基本工程目录
这是开发插件的最小工程,没有使用包管理器进行项目管理,所以如果需要外部依赖,则需要手动导入 jar 包
1 | . |
相关文件
文件 | 功能 |
---|---|
project.iml | IDEA 的项目管理文件,无用 |
src/ | 源码目录,即插件的功能实现写在这里面 |
resources/META-INF/ | 配置资源目录,存放LOGO和配置文件等 |
resources/META-INF/plugin.xml | 默认的插件配置文件,用于管理插件的名称、版本、依赖、简介、更新日志、以及各种注册钩子 |
高级插件工程(推荐)
在 Gradle 选项中,创建 Intellij Platform Plugin 项目。
该选项允许使用 Java 或 kotlin 进行开发
基本工程目录
这是开发插件的最小工程,使用gradle包管理器进行项目管理
仔细观察,工程结构与上方的简单结构基本是对应的,只是多了 gradle 相关的文件和java这个顶级包
test 是单元测试,先不做介绍
1 | . |
以下文章完全基于高级插件工程进行介绍。
配置项
插件项目配置,即 Plugin.xml
1 | <idea-plugin> |
Hello World
我们开发一个简单的插件,实现在 intellij IDEA 使用弹出框显示 hello world
创建Action
首先在/src/main/java
创建一个类并命名为Main
,写入以下内容
1 | import com.intellij.openapi.actionSystem.AnAction; |
注册Action
右键单击类名点击 Show Context Actions,或直接使用快捷键 Command + Enter。点击 Register Action 呼出以下菜单。
然后对 Main 类进行注册,将其注册成为 Action。
实际上可以简单的理解为,在顶部的工具栏中注册一个项目,在点击后调用我们写好的方法。
我现在的选项是,在Tools菜单的顶部,注册了一个名为 Hello World 的选项。
点击OK之后观察 plugin.xml 发现 actions 段多了以下内容,这便是注册菜单的实际行为,换言之我们完全可以不使用图形化的注册菜单,直接书写 xml 也能达到完全一致的效果。
1 | <action id="Main" class="Main" text="Hello World" description="简单的 Hello World 示例"> |
运行
一般来说,通过IDEA创建的工程会自带一个类似这样的启动配置,直接点击即可运行项目
如果没有带?
则双击 shift 输入 gradle 进行Action搜索,选中第一个直接回车。
然后会打开如下样式的窗口,直接鼠标双击 intellij 下的 runIde 即可运行
运行
经过gradle编译之后,IDEA会启动一个新的IDEA实例来运行我们的插件(此处可能需要下载 IDEA Community 源码,耐心等待即可,加速方法懂得都懂)。
启动完成类似如下,我们按正常流程创建一个空项目即可。
不要创建 Java 项目,那样会在项目启动后自动建立 JVM索引,非常耗时。
每次运行 runIde 都要新建项目,很麻烦?**
在空项目中新建一个文件并保存,下次运行就会自动打开该项目。
通过单击顶部的 Tools 菜单,我们可以发现 Hello World 已经注册到了顶部。
单击我们注册的 Hello World,大功告成