开发Idea的插件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013066292/article/details/79483937

写在前面

在使用Android Studio的时候,为了提高效率,我们会使用一些插件来拓展IDE的使用。那么有时候因为一些功能插件没有提供,或是作者过久没维护导致失效,我们也可以尝试自己来开发一个插件,诸如Android Studio,PhpStorm之类的都是属于JetBrains,那么也就是说我们开发的一个插件是有可能在多个不同的编辑器里是通用的。

开发plugin用到的工具是Intelij IDEA

步骤

Created with Raphaël 2.1.2 开始 创建plugin工程 创建Action 编写逻辑代码 注册plugin.xml 打包发布

1. 新建InteliJ Platform Plugin工程

这里写图片描述

新建完成后,我们要关注的就是plugin.xml和用来写代码的src文件夹两个地方了。
这里写图片描述

2.介绍

2.1 plugin.xml

这个文件是一个注册文件,如果开发过Android的话,就类似于Android里的AndroidManifest.xml文件,包含一些注册信息。在Android里开发一个界面我们说新建个Activity,那在plugin这里是被称为Action,用来开发点击我们的插件后要执行的操作。

我们Activity写后会在AndroidManifest.xml里注册,那么这里的Action我们就要在plugin.xml里注册。所以你只要看下plugin.xml里的内容就很容易明白了。

<idea-plugin>
  <id>com.your.company.unique.plugin.id</id>
  <name>Plugin display name here</name>
  <version>1.0</version>
  <vendor email="[email protected]" 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>

  <change-notes><![CDATA[
      Add change notes here.<br>
      <em>most HTML tags may be used</em>
    ]]>
  </change-notes>

  <!-- 请查看 http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html 里的介绍 -->
  <idea-version since-build="173.0"/>

  <!-- 请查看 http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
       里关于定位不同产品的介绍 -->
  <!-- uncomment to enable plugin in all products
  <depends>com.intellij.modules.lang</depends>
  -->

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

  <actions>
    <!-- 在这里添加你的Action -->
  </actions>

</idea-plugin>

2. Action

前面说了,开发一个plugin主要的就是Action,这是我们的入口,在Action里写入我们的代码,实现我们想要的功能。

2.1 新建Action

这里写图片描述

在这里填写一些基础信息:
Name表示到时在菜单里显示的标题;
Description就写一些介绍的话;
Groups里表示你要让这个插件在菜单里出现的位置,在这里我们试下选择EditMenu,然后右边是first,也就是说这个插件将来会出现在Edit菜单下的第一个位置;
Keyboard Shortcuts表示可以定义一些快捷键;
这里写图片描述

新建完成后:

public class ClickAction extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        //在这里写下你的逻辑代码
        Messages.showErrorDialog("Error message" , "Error Title");
    }
}

我们看下plugin.xml里的变化:

<actions>
    <!-- Add your actions here -->
    <action id="Test.Test" class="ClickAction" text="MyIdeaPlugin" description="This is my first plugin test">
      <add-to-group group-id="EditMenu" anchor="first"/>
    </action>
  </actions>

2.2 运行Action

我们直接run,它将会打开一个新的装好我们这个插件的IDE窗口,然后我们就可以在Edit菜单看到我们定义的Action的入口了。点击会弹出我们刚才写的窗口。
这里写图片描述

这里写图片描述

注:我这里有个问题,我在开发过程中,点击这个action没有反应,反倒是使用了初始化时定义的快捷键才有用,我还不知道是什么问题。而且菜单里的其它选项也是,需要使用快捷键,而点击是无效的。但看其他人的文章没发现有这样的情况。

3. 发布插件

我们开发完后就可以将插件进行打包,生成一个jar包,然后我们可以安装到我们的Android Studio之类的IDE上了。
在Build下选择Prepare Plugin Module ‘名字’ For Deployment , IDE就会自动在项目目录下生成jar包了。
这里写图片描述

大致的流程就是这样。


其它

必备的知识

  1. 因为这里我们会涉及到对一些界面的操作,那就要学习下swing,用Jpanel,JButton之类的做一些简单的界面实现,这跟开发Android的流程是类似的;

遇到的问题

1. 兼容性

在写完一个插件并生成jar包后,我在Android Studio里安装的时候出现了不兼容的错误,导致无法安装,这里主要是版本的问题。虽然这些IDE都是JetBrains的,但它们之间存在着版本差异。
我们要修改的地方是plugin.xml里的

<idea-version since-build="173.0"/>

那么要如何修改版本号到匹配我们想要的IDE呢?要在这里查看即可:
http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html
这里写图片描述

所以我这里目前Android Studio的最新版本是1.3,那么我们就要改成141:

<idea-version since-build="141"/>

参考

AndroidStudio 插件开发(进阶篇之 Action 机制)

Quick Start Guide

猜你喜欢

转载自blog.csdn.net/u013066292/article/details/79483937