IDEA插件开发.01之简单入门

简介: 闲着没事,动手实现一个简单idea插件。

环境准备

Idea插件SDK文档在线地址:https://plugins.jetbrains.com/docs/intellij/welcome.html

  1. 安装IntelliJ IDEA,这里使用版本2020.1.3 X64
  2. IDEA中安装Plugin DevKit插件

网络异常,图片无法展示
|

创建插件项目

  1. 新建工程。File ->New -> Project

网络异常,图片无法展示
|

  1. 选择工程类型,IntelliJ PlatformPlugin,并选择IDEA自带SDK。点击Next

网络异常,图片无法展示
|

  1. 填写工程名称,点击Finish。

网络异常,图片无法展示
|

工程结构说明

网络异常,图片无法展示
|

resources/META-INF/plugin.xml为插件核心配置文件

src为插件源码目录

核心配置文件说明

<idea-plugin>
  <!-- 插件id,要保证唯一 -->
  <id>com.ruijie.shamee.firstplugin.id</id>
  <!-- 插件名称,用于别人在插件市场搜索使用 -->
  <name>FirstPlugin</name>
  <!-- 版本号 -->
  <version>1.0</version>
  <!-- 插件提供方信息 -->
  <vendor email="shamee@qq.com" url="http://www.shamee.com.cn">Shamee</vendor>
  <!-- 插件描述 -->
  <description><![CDATA[
      Enter short description1 for your plugin here.<br>
      <em>most HTML tags may1 be used</em>
      <em>Test</em>
    ]]></description>
  <!-- 变更日志 -->
  <change-notes><![CDATA[
      Add change notes1 here.<br>
      <em>most HTML tags may1 be used</em>
    ]]>
  </change-notes>
  <!-- 插件所支持的idea版本号 -->
  <idea-version since-build="173.0"/>
  <!-- 相关的其他以来 -->
  <depends>com.intellij.modules.platform</depends>
  <!-- 扩展的内容 -->
  <extensions defaultExtensionNs="com.intellij">
    <!-- Add your extensions here -->
  </extensions>
  <!-- 菜单动作 -->
  <actions>
    <!-- Add your actions here -->
  </actions>
</idea-plugin>

插件编写

插件需求

编写一个IDEA顶部菜单Tools->子菜单。并点击该菜单会弹出一个消息通知。

创建Action

  1. src先创建package,com.shamee.firstplugin
  2. 在该package右键->New->Plugin DevKit -> Action

网络异常,图片无法展示
|

  1. 编辑Action

网络异常,图片无法展示
|

填写Action ID,Class Name, Name,Description。

我们这里需要将该动作添加到IDEA顶部菜单Tools下的子菜单,所以这里的Groups选择ToolsMenu,之后右侧的Anchor选择First,表示该子菜单添加到Tools下的第一个位置。

Keyboard Shortcuts为添加快捷键。

之后点击OK。

  1. 配置文件变更

添加完Action后,配置文件plugin.xml下的<actions>会添加一个子标签<action>,内容即为我们填写的action信息。

<!-- 菜单动作 -->
  <actions>
    <!-- Add your actions here -->
    <action id="FirstPluginActionID" class="com.ruijie.shamee.firstplugin.FirstPluginAction" text="测试插件" description="测试插件描述">
      <add-to-group group-id="ToolsMenu" anchor="first"/>
      <keyboard-shortcut keymap="$default" first-keystroke="ctrl 0"/>
    </action>
  </actions>

同时src下新增了FirstPluginAction类。

网络异常,图片无法展示
|

  1. Action实现
package com.ruijie.shamee.firstplugin;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationGroup;
import com.intellij.notification.Notifications;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.ui.MessageType;
/**
 * 插件Action实现,
 * 这里继承的AnAction为Idea提供的openapi。
 * 按照不同的插件实现,提供了多种action的继承
 */
public class FirstPluginAction extends AnAction {
    @Override
    public void actionPerformed(AnActionEvent e) {
        // 添加NotificationGroup,指定消息通知类型。这里NotificationDisplayType.BALLOON表示为气泡类型
        // isLogByDefault设置为true,表示除了消息气泡通知还会出发Idea事件通知
        NotificationGroup notificationGroup = new NotificationGroup("firstplugin.id", NotificationDisplayType.BALLOON, true);
        // 在NotificationGroup中添加消息通知内容,以及消息类型。这里为MessageType.INFO
        Notification notification = notificationGroup.createNotification("点击测试", MessageType.INFO);
        // 消息通知
        Notifications.Bus.notify(notification);
    }
}
  1. 运行

编写完后,运行idea,会重新打开一个idea编辑器。

网络异常,图片无法展示
|

网络异常,图片无法展示
|

快捷键ctrl+0也会触发该消息通知。到此第一个没啥卵用的插件编写完成。

  1. 打包安装

打包Build->Prepare Plugin Module 'xxx' For Deployment

网络异常,图片无法展示
|

打包完成后,工程地下生成FirstPlugin.jar

网络异常,图片无法展示
|

安装。File->Setting->Plugins,点击Installed旁边的齿轮,选择Install Plugin From DIsk...

网络异常,图片无法展示
|

选择生成的jar,即可安装成功。之后idea重启后,插件便生效。

如果需要发布到插件市场,需要注册idea账号并上idea开发者后台提交上传即可,这里仅作随笔,不上传。

相关文章
|
10月前
|
网络协议 Windows
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
这篇文章提供了解决IDEA插件下载慢或超时问题的方案,通过查找国内插件节点IP地址并修改本地hosts文件来加速下载。
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
|
1月前
|
JSON Java 数据库连接
IDEA的插件大总汇 (让你的工作效率大大提高!)
我是小假 期待与你的下一次相遇 ~
224 5
|
8月前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
410 6
|
10月前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
601 5
可直接编辑jar包的IDEA插件-JarEditor
|
5月前
|
人工智能 IDE 编译器
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
1283 15
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
|
7月前
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
8704 1
【开发IDE升级】如何对IDEA版本进行升级
|
6月前
|
开发工具 开发者 git
IntelliJ IDEA 插件推荐:提升开发效率的神器
本文介绍了 IntelliJ IDEA 的多个实用插件,涵盖从提高开发效率到美化界面的各个方面。
517 1
|
7月前
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
|
9月前
|
Windows
IDEA如何查看已经安装的插件并删除
【10月更文挑战第1天】这段内容主要介绍了如何在IntelliJ IDEA中查看和删除已安装的插件。可以通过软件内的插件市场查看插件列表,包括插件名称、版本号和供应商等信息;也可以通过访问插件目录查看。删除插件则建议在插件市场中进行,包括禁用和卸载步骤,手动删除插件文件夹的方法不推荐,因为可能存在配置残留等问题。
2427 11
|
9月前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
418 0