【Intellij Idea 插件从入门到深坑】基础的AnAction

简介

本篇博客主要是介绍Intellij Idea 插件的基础环境的搭建,以及简单的入门操作,用于熟悉插件的编写流程,更快的熟悉和适应插件的编写。如有错误,请在留言中指正,谢谢。 系列汇总地址


基础知识

环境搭建

首先为了方便开发,我们采用Intellij Idea 作为我们开发的IDE,可以点此下载
安装过程比较简单我就不在此赘述了,下面我们讲解下如何设置,让你能够搭建好可以运行的插件系统。

打开Intellij Idea ,然后选择新建项目,然后按照下图操作:

创建项目、创建SDK

然后选择Next ,然后输入你的项目名称,然后选择Finish,最后你的项目结构将如下图所示:

项目结构

我们根据当前的图来简介下Intellij Idea 插件开发项目的目录结构。

  • src 目录,用于存储我们编写插件的源码

  • resources目录, 用于存储我们所需的资源文件。其中比较重要的是在META-INF 文件下的plugin.xml ,它是插件的配置文件,用于配置插件的各种属性各种依赖,以及注册后续将接触到的ActionInspection等,所以此文件很重要!!!

通过上面的几个简单的步骤就可以搭建完成我们的开发环境了,下面我们编写个简单的例子来熟悉下如何进行插件的开发。


入门操作

action 是什么?

如果我上来就开始写代码你可能处于懵逼状态,好,我们先讲解下定义。
定义:用于描述一个动作、行为,可以通过快捷键、点选的方式进行触发。

下面我们将讲解两种方式去创建Action


借助IDE创建Action

按照如下步骤进行操作:

  1. 在Src目录下创建你的包,用于存储代码
  2. 选择你创建的包然后点击右键->New
  3. 然后选择最下方的Plugin Devkit->Action

参考下图:

IDE新建Action

然后需要设置Action的各个属性,可以参考下图:

配置属性

然后点击下一步,你就会发现你的对应包下面就有你设置好的Action的类了。你是否好奇IDE究竟为我们做了什么?还记得说过的比较重要的那个配置文件吗?打开看看吧,你的设置是不是都在里面?是不是恍然大悟了!

下面介绍的创建Action 的方法就是依照此原理进行的。


手动创建Action

按照如下步骤进行操作:

  1. 在Src目录下创建你的包,用于存储代码
  2. 选择你创建的包然后点击右键->New
  3. 然后选择Java Class,设置好你的Action名称点击完成

将你的类继承AnAction,然后重写actionPerformed()方法,如下图所示:

具体的Action类

我们还要配置一下plugin.xml ,将你的Action注册进去。
配置内容,如下图:

plugin.xml 配置

配置的内容参数的含义可以参考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中的对应代码:

 <add-to-group group-id="HelpMenu" anchor="last"/>

然后,重新运行即可~

此时重新进行点击查看应该就可以看到对应的效果了。

注意:如果有其他情况还请下方留言。


总结

至此已经基本了解了Intellij Idea 的插件开发,是不是感觉还比较简单?后续会有更多更复杂的内容,敬请期待~

学完了内容后,多回顾多思考,继续后续内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容