Intellij IDEA 插件开发指南(初级篇)

作者 | 袁华健

handsome code, handsome coder.

前言

程序员最讨厌的就是做重复性工作,如果在日常工作中发现一些重复性的工作,我们可以通过一些市面上的插件去简化我们的工作。但是当市面上的插件无法满足我们的需求的时候,我们其实可以自己去尝试写一个插件解决自身和他人的困难。当别人夸你写的插件牛逼,心里岂不是美滋滋。

1、下载 IntelliJ IDEA

大多数的插件其实都是一个道理,依靠平台提供的 sdk 去做定制化的开发,如  chrome 插件。IntelliJ IDEA 的插件也是同理,我们也是依赖 IntelliJ 提供的 sdk 去进行一个插件的开发。首先我们需要的是下载 IntelliJ IDEA,下载安装就不多赘述,大家都会。下载地址:https://www.jetbrains.com/idea/

2、新建 project

点击 File -> Project -> 选择 gradle -> 勾选上 Java 和 IntelliJ Platform Plugin 选项。

点击 next 后,填写GroupoIdArtifactIdVersion

点击 next 后设置 gradle 工程的构建,建议直接默认配置。

点击 next,填写好名称后,点击 finish 后等待完成项目的初始化工作。

初始化后的目录其实也很简单,src 目录为插件源代码目录,plugin.xml记录了插件的一些配置以及 Action的注册。

3、认识 Plugin.xml

看一下 IDEA 默认生成的plugin.xml

<idea-plugin>
    <id>com.mars.plugin</id>
    <name>Plugin display name here</name>
    <vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>

    <description><![CDATA[
    Enter short description for your plugin here.<br>
    <em>most HTML tags may be used</em>
    ]]></description>

    <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
         on how to target different products -->
    <!-- uncomment to enable plugin in all products
    <depends>com.intellij.modules.lang</depends>
    -->

    <extensions defaultExtensionNs="com.intellij">
        <!-- Add your extensions here -->
    </extensions>

    <actions>
        <!-- Add your actions here -->
    </actions>
</idea-plugin>

介绍 plugin.xml 几个主要构成的元素

<id> 这个id是在jetbrains插件库中定位到你插件的唯一id

<name> 插件的名称

<description> 插件的功能描述

<change-notes> 插件的版本变更记录

<idea-version> 插件最低可兼容的idea版本号

<extensions> 扩展点集合,子元素 <extension> 用于扩展其他插件功能或者idea平台的功能

<actions> 自定义动作的集合,子元素 <action> 用户定义一个动作

4、认识 action

在 idea 中每个功能都叫 action,一个菜单栏里组合了多个 action。我们如果想自定义实现一个功能,那么就需要实现 intellij IDEA 提供的派生类 AnAction 。当用户在点击一个 action 时,会回调 AnAction 的actionPerformed方法,所以我们需要在 actionPerformed方法中实现自己的逻辑。

Ok,那我想在 Help菜单栏中增加一个功能 show Hello World , 点击后弹框,并展示 say hello world ~ 该怎么做呢?

首先我们在src下创建自己的包 com.mars.plugin ,然后就是去创建我们的 action,利用 IDEA 提供的创建方式可以快速的创建一个 action。

点击 new -> plugin devkit -> action

填写好 action 的一些基本设置后点击 ok,idea 就自动把 HelloAction 给实现,并注册到 plugin.xml 文件中。

然后我们的 action 就算是初始化完了,但是什么也没做,我们给他添加上展示系统弹框的功能。

@Override
public void actionPerformed(AnActionEvent e) {
        Project project = e.getData(PlatformDataKeys.PROJECT);
        Messages.showMessageDialog(project, "say hello world ~", "Info", Messages.getInformationIcon());
}

代码写完了,当然是要运行一下看看效果。

部署

运行 点击 Grade -> Tasks -> intellij -> runIde

这时候 idea 会打开一个全新的项目选择界面,可以选择新建项目,也可以选择导入项目,我们选择导入一个项目。

导入项目后,我们点击 help 菜单栏,就可以发现我们定义的 show hello world 就在第一位。

点击后,弹出系统弹框,说了句“say hello world~”

运行就结束了,那我如何去打包一个插件安装到别的项目上或者给别人用呢?

打包

打包其实也很简单,Gradle -> Tasks -> intellij -> buildPlugin 点击执行

等待一会后,会在本地的 build -> distributions 目录下找到生成的 zip 文件

这个文件就是可以进行安装的版本。

发布

我们当然希望自己写的插件可以上架市场被所有人使用,所以我们进行第一次上传,登录到https://plugins.jetbrains.com/ ,注册账户后点击 Upload plugin

然后上传我们上面生成的 zip 文件,并填写一些信息、比如开源证书和插件分类,然后点击 upload 就等待审核通过吧。

结束语

这篇文章介绍了如何创建一个插件的工程,如果实现插件功能,如何运行打包发布。但是我们想要实现自己的插件,还得需要了解 Intellij IDEA 提供的 sdk 的用法。下一篇会继续介绍 Action、Editor 和 PSI。

全文完


以下文章您可能也会感兴趣:

我们正在招聘 Java 工程师,欢迎有兴趣的同学投递简历到 rd-hr@xingren.com 。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值