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开发者后台提交上传即可,这里仅作随笔,不上传。

相关文章
|
13天前
|
网络协议 Windows
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
这篇文章提供了解决IDEA插件下载慢或超时问题的方案,通过查找国内插件节点IP地址并修改本地hosts文件来加速下载。
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
|
1月前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
108 4
可直接编辑jar包的IDEA插件-JarEditor
|
3月前
|
IDE 程序员 开发工具
IDEA插件-IKun Progress 坤坤成IDEA进度条了
"IKun Progress"是一款适用于JetBrains IntelliJ IDEA等IDE的插件,该插件能够将标准的进度条替换为一个有趣且独特的篮球动画,其中的角色名为坤坤(Kun Kun)。它旨在为您的IDE使用过程增添一些娱乐和轻松的氛围。 该插件让您可以在执行IDE中的任务时享受到更加视觉上吸引人的进度指示器,例如构建、运行测试或其他涉及进度条的操作。相比传统的普通进度条,您将看到坤坤在打篮球,给您的开发工作流程增添了一份乐趣。
464 0
IDEA插件-IKun Progress 坤坤成IDEA进度条了
|
9天前
|
Windows
IDEA如何查看已经安装的插件并删除
【10月更文挑战第1天】这段内容主要介绍了如何在IntelliJ IDEA中查看和删除已安装的插件。可以通过软件内的插件市场查看插件列表,包括插件名称、版本号和供应商等信息;也可以通过访问插件目录查看。删除插件则建议在插件市场中进行,包括禁用和卸载步骤,手动删除插件文件夹的方法不推荐,因为可能存在配置残留等问题。
79 11
|
2月前
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
74 1
【插件】IDEA这款插件,爱到无法自拔
|
1天前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
10 0
|
2月前
|
Java
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
这篇文章详细介绍了10款IntelliJ IDEA的高效插件,包括Codota代码智能提示、Key Promoter X快捷键提示、CodeGlance代码缩略图、Lombok代码简化、阿里巴巴代码规范检查、SonarLint代码质量检查、Save Actions格式化代码、Translation翻译、Rainbow Brackets彩虹括号和Nyan Progress Bar彩虹进度条插件,旨在帮助提升开发效率和代码质量。
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
|
3月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
306 2
[JarEditor]可直接修改jar包的IDEA插件
|
3月前
|
JavaScript 关系型数据库 Java
IDEA插件-EasyCode
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
IDEA插件-EasyCode
|
2月前
|
搜索推荐 Java Maven
Netbeans入门实践类IDEA风格下
Netbeans入门实践类IDEA风格下; 配置文件模板Templates, user, date, time; 解决Open Project, 中文乱码GBK
33 1