IDEA全系软件-插件开发

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

一、开发工具

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

二、新建项目

1. new project,选择我们的 IDEA 版本,之后即可新建一个Plugin项目IDEA全系软件-插件开发_第1张图片

2. 关键类介绍

  1. plugin.xml 是关于这个插件工程的描述文件IDEA全系软件-插件开发_第2张图片
  2. *.iml 主要用于文件管理和依赖包管理IDEA全系软件-插件开发_第3张图片

3. 创建 ActionIDEA全系软件-插件开发_第4张图片

4. 补充相关参数IDEA全系软件-插件开发_第5张图片

a. ActionID:一个IDE中不能存在两个id相同的 Action
b. ClassName:新建的Action类名
c. Name:Action 名 - 显示在菜单中的名字
d. Description:具体描述,鼠标停留在菜单中时的提示描述信息
e. Add to Group:要添加在哪个组,比如选择 NewGroup,就会添加到右键文件夹的New展开项下,Last 会添加到最后一个
f. Keyboard Shortcuts:默认快捷键

5. 新建后会有一个类,同时在 plugin.xml 配置文件中可以进行后续的调整修改IDEA全系软件-插件开发_第6张图片

6. 引用外部工具包

  1. maven 下载IDEA全系软件-插件开发_第7张图片IDEA全系软件-插件开发_第8张图片
  2. 本地依赖jar
    • 下载jar包后放在lib下
    • .iml 添加 jar 包依赖节点IDEA全系软件-插件开发_第9张图片

7. UI 的开发 - SwingUI

  1. 如果插件需要UI,可以新建一个弹窗IDEA全系软件-插件开发_第10张图片
  2. 然后根据输入选择等等来做你需要做的事,如:IDEA全系软件-插件开发_第11张图片

8. 运行 Plugin

  1. 调整代码,增加一个输入框,并将输入框的内容显示出来IDEA全系软件-插件开发_第12张图片IDEA全系软件-插件开发_第13张图片在这里插入图片描述
  2. 运行代码
    IDEA全系软件-插件开发_第14张图片
  3. 此时会拉起一个新的 IntelliJ IDE
    IDEA全系软件-插件开发_第15张图片
    a. 这是一个IDEA的临时镜像
    b. 你也可以以debug模式运行插件
  4. 随便选择一个项目进入,如果嫌卡也可以选择一个空文件夹
  5. 打开Plugin可以看到已经安装了我们新写的插件IDEA全系软件-插件开发_第16张图片IDEA全系软件-插件开发_第17张图片
  6. 点击后会弹窗
    IDEA全系软件-插件开发_第18张图片
  7. 输入HelloWorld!点击ok ->
    IDEA全系软件-插件开发_第19张图片

三、打包

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);

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);
    }
}

5. 用户行为记录

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

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

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

你可能感兴趣的:(Android,Studio,工具方法,intellij-idea,插件,plugin,AndroidStudio)