当前位置:   article > 正文

IDEA全系软件-插件开发_idea插件开发

idea插件开发

找不到想用的插件?那就自己敲一个!

一、开发工具

下载 IntelliJ IDEA 2021.1.3(最新版2023.1.4的是使用 kotlin开发 + gradle.ktx 管理版本)

二、新建项目

1. new project,选择我们的 IDEA 版本,之后即可新建一个Plugin项目在这里插入图片描述
2. 关键类介绍
  1. plugin.xml 是关于这个插件工程的描述文件
  2. *.iml 主要用于文件管理和依赖包管理在这里插入图片描述
3. 创建 Action在这里插入图片描述
4. 补充相关参数在这里插入图片描述
a. ActionID:一个IDE中不能存在两个id相同的 Action
b. ClassName:新建的Action类名
c. Name:Action 名 - 显示在菜单中的名字
d. Description:具体描述,鼠标停留在菜单中时的提示描述信息
e. Add to Group:要添加在哪个组,比如选择 NewGroup,就会添加到右键文件夹的New展开项下,Last 会添加到最后一个
f. Keyboard Shortcuts:默认快捷键
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
5. 新建后会有一个类,同时在 plugin.xml 配置文件中可以进行后续的调整修改在这里插入图片描述
6. 引用外部工具包
  1. maven 下载在这里插入图片描述在这里插入图片描述
  2. 本地依赖jar
    • 下载jar包后放在lib下
    • .iml 添加 jar 包依赖节点在这里插入图片描述
7. UI 的开发 - SwingUI
  1. 如果插件需要UI,可以新建一个弹窗在这里插入图片描述
  2. 然后根据输入选择等等来做你需要做的事,如:在这里插入图片描述
8. 运行 Plugin
  1. 调整代码,增加一个输入框,并将输入框的内容显示出来在这里插入图片描述在这里插入图片描述在这里插入图片描述
  2. 运行代码
    在这里插入图片描述
  3. 此时会拉起一个新的 IntelliJ IDE
    在这里插入图片描述
    a. 这是一个IDEA的临时镜像
    b. 你也可以以debug模式运行插件
  4. 随便选择一个项目进入,如果嫌卡也可以选择一个空文件夹
  5. 打开Plugin可以看到已经安装了我们新写的插件在这里插入图片描述在这里插入图片描述
  6. 点击后会弹窗
    在这里插入图片描述
  7. 输入HelloWorld!点击ok ->

三、打包

1. 无外部依赖的打包

直接在 Build -> Prepare Plugin 即可生成 jar 包,将jar包发布或者直接本地安装到 IDE 即可

2. 依赖了三方jar包的打包

如果依赖了 三方 jar 包,直接 Prepare Plugin 生成的将不再是 jar包,而是一个 zip 压缩包。
这个包也一样可以直接拖入 IDE 中加载为插件,放心~

四、常用 API 分享

1. JDialog

JDialog 弹出时默认会挤在一起,可以使用 dialog.pack() 方法使用布局文件中的首选尺寸来显示

  1. dialog.setLocation可以设置显示位置
  2. dialog.setVisible(true) 来替代 show() 提高显示性能
2. File 相关
  1. IDEA 插件中使用 PSI 系统解析文件,获取当前编辑的文件,光标位置,Editor 等等,这里api太多了,就不做过多介绍了
  2. FileChooserDescriptor 弹出文件选择窗
3. 弹窗 - Message
// 弹出一条消息
Messages.showMessageDialog(msg, title, Messages.getInformationIcon());
// 弹出一条 yes/no 弹窗
Messages.showYesNoDialog(msg, title, Messages.getWarningIcon());
// 弹出一条错误提示
Messages.showErrorDialog(msg, title);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
4. 通知

在操作成功之后,在 IDEA 右下角通知用户,使用 NotificationGroup 类即可。

public class NotificationUtil {
    private static final NotificationGroup notificationGroup = new NotificationGroup("ApiDoc.NotificationGroup", NotificationDisplayType.BALLOON, true);

    public static void warnNotify(String message) {
        Notifications.Bus.notify(notificationGroup.createNotification(message, NotificationType.WARNING), Application.project);
    }

    public static void infoNotify(String message) {
        Notifications.Bus.notify(notificationGroup.createNotification(message, NotificationType.INFORMATION), Application.project);
    }

    public static void errorNotify(String message) {
        Notifications.Bus.notify(notificationGroup.createNotification(message, NotificationType.ERROR), Application.project);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
5. 用户行为记录

PropertiesComponent.getInstance(project),可以获取当前project此插件的一些操作记录

  1. 通过 setValue 记下用户的操作
  2. 通过 getValue 取出上次的操作,这样就不用每次都选择或者要求用户输入了

OK,到此你已经掌握了IDEA插件开发的完整流程了,去定制你自己想要的插件把~(看在我写了3300字给你分享的份上,先给我点个赞吧)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/112049
推荐阅读
相关标签
  

闽ICP备14008679号