30

从 0 编写自己的第一款 IDEA 插件!贼好用!

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzU2NjIzNDk5NQ%3D%3D&%3Bmid=2247490195&%3Bidx=1&%3Bsn=d4736afddac39d9bb14f7318eb569956
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

点击上方 匠心零度 ,选择“ 设为星标

做积极的人,而不是积极废人

y2UNjqN.jpg!web

来源:木杉的博客http://imushan.com

写Java代码的时候,经常会涉及到重复性的操作,这个时候就会想要是有这样一个插件就好了,如果是大家都会遇到的场景,IDE或许已经提供了,再不然也有可能有人编写了相关的插件。

要是这个操作是你们的编码环境特有的,那就只能自己写工具了。所以这里来学学如何编写IDEA插件,让自己的编程环境更加强大,更好的进行装逼。

开发环境

开发IDEA插件有以下这些依赖:

  • IntelliJ IDEA Community Edition

  • IntelliJ IDEA Community Edition 源码

  • Plugin DevKit 插件

  • IntelliJ Platform SDK

安装IntelliJ IDEA Community Edition

你可能已经安装了Ultimate版本,但是你还是需要安装[IDEA][]的社区版本。因为商业版是闭源的,所以在调试时无法调试核心代码。

下载IntelliJ IDEA Community Edition源码

社区版的安装包里是不包含源码的,所以我们需要手动从github上clone一份:

关于从源码运行IDEA的方法参考 Check Out And Build Community Edition:

http://www.jetbrains.org/intellij/sdk/docs/basics/checkout_and_build_community.html

添加IDEA jdk

虽然不知道原因,但是根据Check Out And Build Community Edition:

http://www.jetbrains.org/intellij/sdk/docs/basics/checkout_and_build_community.html

我们需要建立一个 IDEA jdk 来运行插件:

7FvUVj3.jpg!web

除非你在Mac上使用官方JDK,否则你需要手动添加 /lib/tools.jar 到classpath中。关注微信公众号:匠心零度,在后台回复:idea,可以获取我整最新 IDEA 教程,都是干货。

配置IntelliJ Platform SDK

打开 File|ProjectStructure 新建一个 IntelliJPlatformSDK

EzuEFfE.jpg!web

Java SDK选择我们刚刚建立的 IDEA jdk

6Zvii2y.jpg!web

然后我们可以把下载的IDEA社区版源码添加到源码路径中,这样在调试时,就可以调试IDEA自身的代码了:

6fUnuyn.jpg!webuYN3AnB.jpg!web

第一个插件

我们来编写一个最简单的插件来学习编写一个插件的完整步骤。

新建工程

选择 IntellJPlatformPlugin ,然后Project SDK指定刚刚新建的plugin sdk:

BRNJZjr.jpg!web

新建的插件项目:

ZVneQ3e.jpg!web

插件根目录下有两个目录 srcresourcessrc 是插件代码目录, resource 是插件资源目录,其中 META-INF/plugin.xml 是插件的描述文件,就像Java web项目的 web.xml 一样。

plugin.xml默认的内容如下:

新建一个Action

插件扩展IDEA最常见的方式就是在菜单栏或者工具栏中添加菜单项,用户通过点击菜单项来触发插件功能。IDEA提供了 AnAction 类,这个类有一个虚方法 actionPerformed ,这个方 法会在每次菜单被点击时调用。

新建一个自定义的Action有两个步骤:

1、 继承 AnAction 类,在 actionPerformed 方法中实现插件逻辑 2、 注册action,有两种方式,通过代码注册和通过 plugin.xml 注册

我们先写一个简单的Action类:

然后我们在 plugin.xml 中注册这个Action:

这里我们新建了一个菜单组,其中text字符串的下划线表示这个字母作为快捷键。这个菜单显示的效果如下:

RVbmaaQ.jpg!web

除了手动新建Action,IDEA还提供了快速新建的方法,在代码目录上点击新建,可以看到Action:

Y7n2qar.jpg!web

可以在这个面板中填写你要新建的Action信息,IDEA会帮你新建类,还有在plugin.xml中帮你注册:

VjyUn2F.jpg!web

运行插件

运行插件特别简单,和运行普通Java代码一样,点击运行或者调试的按钮,就会启动一个新的IDEA实例,这个实例中插件是生效的。

点击Text Boxes就可以看到插件的效果了。

END

如果读完觉得有收获的话,欢迎点【好看】,关注【匠心零度】,查阅更多精彩历史!!!

nmqYriz.gif

让我“ 好看 ”  bYreamJ.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK