开源源码,项目下载地址https://gitee.com/lowcode2/ailowcode.git
IDEA插件开发方法
1. IDEA插件开发环境
IDEA插件开发环境IDEA版本:2021.3.3(Community Edition)
IDEA下载地址:https://www.jetbrains.com/idea/download/other.html
IDEA插件开发,为什么下载使用IDEA社区版本?
IDEA社区版免费,并且源代码开源, 在开发插件的时候可以调试源代码。
如何选择下载的版本?
看你开发的插件想要兼容的最低版本是多少。比如我想兼容2021.3.3及以上的版本,对于更早的版本,无需兼容。我下载的是2021.3版本的IDEA。注意Community Edition这边的下载链接是社区版本的,如下图所示。
2. 安装辅助开发插件
从插件市场安装插件:Plugin DevKit、UI Designer。Plugin DevKit:IDEA插件开发,使用 Plugin DevKit可以很方便地创建一个Action。UI Designer:在开发插件的过程中,我们需要进行 UI 界面的开发,但是IntelliJ IDE插件需要使用Swing进行 UI 的开发,因此本文选择使用UI Designer这款插件,通过可视化工具拖拽的方式来实现基本的界面设计。后续“代码解读:如何创建一个新菜单”小节,将讲述如何使用这2个插件进行开发。
3. 导入项目并解读关键文件
打开IDEA,导入我们的插件项目ailowcode-plugin,项目结构如下图所示。
plugin.xml文件是idea插件项目的配置文件,代码如下所示。
1. <idea-plugin>
2. <id>org.wxy.aicode.ideaplugin</id>
3. <name>AiLowcode</name>
4. <vendor> wuxiaoyong</vendor>
5. <description>……</description>
6. <extensions defaultExtensionNs="com.intellij"> </extensions>
7. <idea-version since-build="200" >……</idea-version>
8. <actions>
9. <!--工具栏加一级菜单"AI低代码"-->
10. <group id="aicode" text="AI低代码">
11. <add-to-group group-id="MainMenu" anchor="last"/>
12. </group>
13. <!--二给菜单:AI低代码/初始化系统-->
14. <action id="aicode-createSystem" class="com.wxy.ideaplugin.action.AiCodeAction" text="初始化系统" description="初始化系统">
15. <add-to-group group-id="aicode" anchor="first"/>
16. </action>
17. <!--二给菜单:AI低代码/逆向生成代码-->
18. <action id="aicode-createCode" class="com.wxy.ideaplugin.action.AiCodeTableAction" text="逆向生成代码" description="逆向生成代码">
19. <add-to-group group-id="aicode" />
20. </action>
21. <!--二给菜单:AI低代码/API按组批量测试-->
22. <action id="aicode-apiGroupTest" class="com.wxy.ideaplugin.action.ApiTestGroupAction" text="API按组批量测试" description="API按组批量测试">
23. <add-to-group group-id="aicode" />
24. </action>
25. <!--右击菜单"AI低代码"-->
26. <group id="aicode_rightMenu" text="AI低代码" popup="true">
27. <add-to-group group-id="EditorPopupMenu" anchor="after" relative-to-action="ReplaceInPath"/>
28. </group>
29. <!--右击菜单"AI低代码/添加字段"-->
30. <action id="aicode_rightMenu_addField" class="com.wxy.ideaplugin.action.RightMenuFieldAction" description="添加字段" text="添加字段">
31. <add-to-group group-id="aicode_rightMenu"/>
32. </action>
33. <!--右击菜单"AI低代码/API测试"-->
34. <action id="aicode_rightMenu_apitest" class="com.wxy.ideaplugin.action.RightMenuApiTestAction" description="API测试" text="接口测试">
35. <add-to-group group-id="aicode_rightMenu"/>
36. </action>
37. </actions>
38. </idea-plugin>
plugin.xml是xml结构,各节点功能介绍,如下表所示。
节点名称 | 说明 |
id | 是在jetbrains插件库中定位到你插件的唯一id,在不同版本中,必须保持一致,建议设置值为:包名 + 插件名称 |
name | 插件的名称,显示在 IDEA 已安装插件列表中 |
vendor | 作者信息 |
description | 插件的描述信息,支持html |
change-notes | 插件版本更新内容说明 |
version | 插件版本号 |
extensions | 用于扩展其他插件功能或者idea平台的功能 |
idea-version | 兼容版本设置,跟build.gradle里的sinceBuild一致即可,意义相同 |
actions | 由用户定义的一个个动作组成。 |
actions/group | 在IDEAL中添加一个菜单栏。如下例:创建一个名为“AI低代码”菜单栏;add-to-group是指将当前菜单栏添加到什么位置?group-id=“MainMenu”是指IDEA主菜单;anchor=“last”是指最后位置。 完整解释:在IDEA的主菜单的最后位置创建一个“AI低代码”的菜单栏,当前group id定义为aicode,供后续action菜单加入使用。
|
actions/action | 在IDEAL中添加一个菜单。如下例:创建一个名为“初始化系统”的菜单,菜单点击时执行的类文件是com.wxy.ideaplugin.action.AiCodeAction(后续做详细说明)。菜单位置:通过add-to-group来指定菜单存入于“AI低代码”菜单栏的第一次位置。
|
4. 如何创建一个新菜单
功能需求:在“IDEA主菜单/AI低代码”菜单下,新增一个“关于”菜单,点击打开“关于”对话框,对话框中显示系统功能的介绍信息。
使用插件“Plugin DevKit”来创建Action类:在需要创建类的java包名上右击,打开右击菜单,依次点击“New/Plugin DevKit/Action”菜单,打开New Action对话框,如下图所示。
在New Action对话框中配置如下信息,Class Name:AboutAction(点击菜单执行的类文件),Name:关于(菜单名称)。Add to Group栏:是给当前菜单“关于”指定位置,这里保持空着,后续通过修改plugin.xml文件,将“关于”菜单放入“AI低代码”菜单下,如下图所示。
“New Action”对话框中配置完信息后,点击“OK”按钮,会自动创建一个AboutAction类,类中的方法actionPerformed()是空的,待后续创建好UI对话框类后加入其中。plugin.xml中将自动新增一个action,修改该action,加入<add-to-group/>节点,表示将“关于”菜单加入IDEA一级菜单“AI低代码”中,如下所示。
1. <!--二级菜单:关于-->
2. <action id="aicode-about" class="com.wxy.ideaplugin.action.AboutAction" text="关于" description="关于">
3. <add-to-group group-id="aicode" />
4. </action>
使用插件Swing UI Designer来创建IDEA UI对话框,用来弹开显示“关于”对话框信息。首先,在需要创建类的java包名上右击,打开右击菜单,依次点击菜单“New/Swing UI Designer/Create Dialog Class”来创建一个带设计器的Java类包文件:AboutUi,如下图所示。
创建一个AboutUi对话框类,双击该类包下的AboutUi.form文件,打开Swing设计器界面,拖入相关组件,如下图所示。
在AboutUi.java类文件中,加入一段给jTextArea_About赋值的方法,如下所示。该类中默认有main()方法(main()方法中加了窗口大小设置和屏幕居中显示语句),当右击运行该类时:1,会自动重构该类的$$$setupUI$$$()方法,该方法对UI界面的控件进行初始化操作;2,显示界面效果。
1. public class AboutUi extends JDialog {
2. private JTextArea jTextArea_About;
3. ......
4. public AboutUi() {
5. ......
6. initAbout();
7. }
8.
9. private void initAbout() {
10. jTextArea_About.append("......");
11. }
12. ......
13. public static void main(String[] args) {
14. AboutUi dialog = new AboutUi();
15. dialog.setSize(800, 700);
16. dialog.setLocationRelativeTo(null);
17. dialog.setVisible(true);
18. System.exit(0);
19. }
20. ......
21. private void $$$setupUI$$$() {
22. ......
23. }
24. }
当点击“关于”菜单时,实际是执行AboutAction类中的actionPerformed()方法,在该方法中,加入显示“关于”对话框的代码,如下所示。
1. package com.wxy.ideaplugin.action;
2. ......
3. public class AboutAction extends AnAction {
4. @Override
5. public void actionPerformed(AnActionEvent e) {
6. AboutUi dialog = new AboutUi();
7. dialog.pack();
8. dialog.setSize(800, 700);
9. dialog.setLocationRelativeTo(null);
10. dialog.setVisible(true);
11. }
12. }
安装运行插件(运行方法见本章“运行、打包、安装、发布插件”小节)。点击菜单“IDEA主菜单/AI低代码/关于”打开“关于”对话框,如下图所示。
标签:插件,菜单,对话框,AI,IDEA,AboutUi,开发方法 From: https://blog.csdn.net/xiaoyongboy1010/article/details/145075514