从0到1,撸一个IDEA插件,So Easy!

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

99套Java企业级实战项目

4000G架构师资料

作者:乱来梦游神

来源 :https://urlify.cn/Eja6zu

前段时间看到公众号一篇关于IDEA插件开发的文章,感觉写的太过于简单,所以想自己写一个IDEA插件开发的系列,从实战的角度讲解IDEA插件开发的流程。

我会通过几个实际的例子演示一个插件的开发,通过几个实际的例子让玩家对于插件开发有个笼统的认识,实际例子完成后,我会从黑铁讲起,一点点的剖析IDEA插件的内涵,至于能不能升到最强王者那就看命运了。

啰嗦了这几句话,那就让我们开始吧。

IDEA插件名词

首先我先介绍几个插件的名词,这样能够保证后边的语境不会出现理解偏差,这里我会进行类比,因为是插件是用java开发,而会java的人一定知道spring全家桶,所以我会拿spring里面的概念进行类比,当然这里不会列举所有,会先列举需要的部分。

(1)Actions:这货就跟controller类似,简单一点来说,当用户点击idea的某个按钮你自己开发的菜单时就会调用的方法。所有的action都需要继承 com.intellij.openapi.actionSystem.AnAction 这个抽象类,实现actionPerformed方法即可,至于按钮在什么位置,则是有add-group相关参数进行配置,这个后边得连载中详细解释。

(2)Services:这货就跟spring普通的类有点相似,他的定义分为两种,分别是应用级别和工程级别,通俗一点讲就是spring里面的普通的bean,当然应用级别代表单例的Bean,工程级别则是多例的Bean(这里不够贴切,可以先理解为单例,等后边的文章再细品)。

(3)demo配置文件(完整代码地址:https://gitee.com/yuanzizhenxin/PluginDemo):

实例开始

接下来我会拿https://gitee.com/yuanzizhenxin/PluginDemo 这个工程作为实例,用刚介绍的东西讲解这个简单的实例,那么,让我们开始实战讲解吧。

(1)功能介绍:弹窗当前时间,并理解application级别和project级别的service的区别。

(2)代码下载及IDEA开发环境配置:

首先需要下载IDEA社区版本即可,下载gradle并配置好,使用git将项目https://gitee.com/yuanzizhenxin/PluginDemo 下载到本地,使用idea打开。

(3)插件演示:

A、首先整个demo的入口是plugin.xml里面的

这里参数的具体含义我会单独的章节进行讲解,先知道这是入口action的配置,他的位置是在下图红框处。

B、idea打开工程,等gradle初始化完成后找到下图的按钮,并双击运行,这样就能够运行一个新的idea,这个就是沙箱里面的idea(可以理解为一个全新的idea)。

C、点击在A步骤说明的action的位置,点击ActionDemo,就能看到idea中间弹窗提示。

(4)插件代码讲解:

这里action首先继承了AnAction类,并重写了actionPerformed方法,记住所有的插件action都是这样声明。

在action中获取service的方法则是

ServiceManager.getService(XXXX.class);
//或者
ServiceManager.getService(anActionEvent.getProject(), XXXX.class);

//弹窗则是 
Messages.showMessageDialog(“内容”, "标题", Messages.getInformationIcon()); 

综上看来,一个插件无非就这么几个东西,剩下的就交给阅读以下源码了,很简单,祝各位成功!!


有热门推荐????为什么大家都喜欢用if?难道是if比switch快?GitHub重大更新:在线开发上线,是时候卸载IDE了面试官:SpringBoot如何实现全链路调用日志跟踪?分享几种优雅停止Spring Boot方法,不止kill -9
想充电就关注程序员闪充宝

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值