简介
本篇博客主要是介绍Intellij Idea
插件的基础环境的搭建,以及简单的入门操作,用于熟悉插件的编写流程,更快的熟悉和适应插件的编写。如有错误,请在留言中指正,谢谢。 系列汇总地址
基础知识
环境搭建
首先为了方便开发,我们采用Intellij Idea
作为我们开发的IDE,可以点此下载。
安装过程比较简单我就不在此赘述了,下面我们讲解下如何设置,让你能够搭建好可以运行的插件系统。
打开Intellij Idea
,然后选择新建项目,然后按照下图操作:
然后选择Next ,然后输入你的项目名称,然后选择Finish,最后你的项目结构将如下图所示:
我们根据当前的图来简介下Intellij Idea
插件开发项目的目录结构。
src
目录,用于存储我们编写插件的源码resources
目录, 用于存储我们所需的资源文件。其中比较重要的是在META-INF
文件下的plugin.xml
,它是插件的配置文件,用于配置插件的各种属性各种依赖,以及注册后续将接触到的Action
、Inspection
等,所以此文件很重要!!!
通过上面的几个简单的步骤就可以搭建完成我们的开发环境了,下面我们编写个简单的例子来熟悉下如何进行插件的开发。
入门操作
action 是什么?
如果我上来就开始写代码你可能处于懵逼状态,好,我们先讲解下定义。
定义:用于描述一个动作、行为,可以通过快捷键、点选的方式进行触发。
下面我们将讲解两种方式去创建Action
:
借助IDE创建Action
按照如下步骤进行操作:
- 在Src目录下创建你的包,用于存储代码
- 选择你创建的包然后点击右键->New
- 然后选择最下方的Plugin Devkit->Action
参考下图:
然后需要设置Action的各个属性,可以参考下图:
然后点击下一步,你就会发现你的对应包下面就有你设置好的Action的类了。你是否好奇IDE究竟为我们做了什么?还记得说过的比较重要的那个配置文件吗?打开看看吧,你的设置是不是都在里面?是不是恍然大悟了!
下面介绍的创建Action
的方法就是依照此原理进行的。
手动创建Action
按照如下步骤进行操作:
- 在Src目录下创建你的包,用于存储代码
- 选择你创建的包然后点击右键->New
- 然后选择Java Class,设置好你的Action名称点击完成
将你的类继承AnAction
,然后重写actionPerformed()
方法,如下图所示:
我们还要配置一下plugin.xml
,将你的Action
注册进去。
配置内容,如下图:
配置的内容参数的含义可以参考IDE生成Action
时的讲解,都是对应的。
讲解Action
这个类中比较重要的有两个方法:
-
actionPerformed(AnActionEvent e)
: 当用户点击IDE中对应Action的图标时会触发此方法,也就是说每选中一次触发一次。 -
update(AnActionEvent e)
:当IDE中需要展示你的Action图标的时候就会触发一次,当点击时也会触发且在actionPerformed(AnActionEvent e)
之前触发。
实现个小功能
通过上面的介绍我们对Action
大致有了一些了解,下面我们来实现一些功能,来更好的学习印证一下。
这个例子应该是很普遍了,这个应该是官网的例子,就以此讲解吧,具体实现就是当点击你对应的Action
的时候,弹出一个弹窗,下面我们看下如何实现。
其实代码很简单,我们刚讲解了Action
比较重要的就那两个方法,根据需求我们知道actionPerformed(AnActionEvent e)
就可以满足效果,下面我们来编写代码。
@Override
public void actionPerformed(AnActionEvent e) {
Messages.showMessageDialog("这个是我的测试弹窗!", "TestTile", Messages.getWarningIcon());
}
可以看到代码确实很简单,然后我们点击运行即可,IDE
会自动打开新的IDE
进程,如果没有直接打开对应的IDE
,你需要手动选择打开的Project
即可。需要注意的是,Intellij Idea
中使用的Ui
相关的都是基于java
的,所以如果想高度定制,需要一些java ui
的基础。
好,我们验证下学习成果,点击自动打开的IDE
,上方选择help
,查看最下方是不是有你命名的action
的名字,然后点击,是否出现弹窗,出现则成功。
如果在help
下没看到你的action
名字,请按照如下修改plugin.xml
中的对应代码:
然后,重新运行即可~
此时重新进行点击查看应该就可以看到对应的效果了。
注意:如果有其他情况还请下方留言。
总结
至此已经基本了解了Intellij Idea
的插件开发,是不是感觉还比较简单?后续会有更多更复杂的内容,敬请期待~
学完了内容后,多回顾多思考,继续后续内容。