文章目录
idea插件开发资料汇总
一、idea插件开发资料库
二、插件推荐
1、注释显示插件
三、自动转换方法插件开发基础
IDEA插件开发其实不难,最难的可能在于资料相对比较少,开发者也相对比较少。根据IDEA Plugin开发资料库Sheet页资料库中的资料基本可以完成插件的开发,接下来以比较基础的自动生成转换方法插件来讲解一下最基础的插件开发。
1、创建项目
如果没有Plugin Devkit插件,则先安装该插件。创建项目:路径File->New->Project->IDE Plugin
2、项目结构
|--build.gradle.kts
|--gradle.properties
|--gradlew
|--gradlew.bat
|--settings.gradle.kts
|--src
|---main
|----java
|-----com.styzf.autogendo
|--------action
|---------ChangeOverSelectorAction.java
|--------constant
|---------Constant.java
|--------dialog
|---------ChangeOverSelectorDialog.form
|---------ChangeOverSelectorDialog.java
|---------DummyFrame.java
|--------gen
|---------GenSrc2Target.java
|--------setting
|---------GenSettingConfigurable.java
|---------GenSettingsComponent.java
|---------GenSettingsState.java
|--------util
|---------ShowBundle.java
|----kotlin
|----resources
|-----messages
|------Po2DoBundle.properties
|------Po2DoBundle_zh.properties
|-----META-INF
|------plugin.xml
|------pluginIcon.svg
目录说明:
action:主入口Action类
constant:项目中的常量类
dialog:存放对话框ui界面相关代码
gen:主要业务逻辑代码
setting:settings中的配置类代码
util:工具类
resources.messages:多语言配置
META-INF.plugin.xml:配置插件入口等内容
主要的配置文件为plugin.xml,另外还有build.gradle.kts(自行参考gradle配置)
plugin.xml是配置插件入口等内容,主要配置actions
例如需要创建一个右键弹出菜单栏中添加一个action,则新建对应的类,继承AnAction,实现几个抽象方法,添加plugin.xml配置,安装插件后,右键则可以看到添加了对应的action,剩下的主要是在actionPerformed方法中编写对应的业务逻辑。
<actions>
<action id="com.styzf.autogendo.action.ChangeOverSelectorAction"
class="com.styzf.autogendo.action.ChangeOverSelectorAction"
text="选择转换类"
description="选择转换类">
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
</action>
</actions>
3、ui页面设计
保证插件UI Designer开启,在dialog右键New->Swing UI Designer->GUI Form,创建ChangeOverSelectorDialog对话框,会生成对应的java类和对应的.form文件,form文件可以以拖拉拽的形式进行页面的设计。在对应的ChangeOverSelectorDialog.java文件中则可以编辑对应的ui的业务逻辑代码。
4、psi(Program Structure Interface)
psi全称Program Structure Interface,是IntelliJ平台提供的程序结构接口,提供解析文件等相关功能。
相关api可以参考:https://plugins.jetbrains.com/docs/intellij/psi.html
打开Tools->View PSI Structure of Current File,可以查看当前的PSI解析结构
5、向其他优秀插件开发者学习
大多数想要实现的功能,其实市面上能找到的大多数插件其实早已经实现,例如全局搜索、代码跳转等,那么其实可以减少自身对于整个api体系的学习,最快的开发速度是研究其他人对于该功能是如何实现的,向优秀的前辈学习。
可以在Tools->Internal Actions->UI->UI Inspector可以查看已经安装的所有插件的ui,包括对应的实现类,分组id等相关内容。也可以在想要学习的ui页面按住ctrl+alt左键,则可以快速定位到其实现类。
另外其他小技巧可以参考:https://juejin.cn/post/7116894175915671589/
6、代码调试
代码开发完成之后需要进行调试,点击Run Plugin,运行起来即可调试了,idea会自行下载对应的idea,并且启动起来进行调试