IntelliJ插件开发教程之开发思路

JetBrains公司系列产品IDEA、WebStrom、PyCharm、CLion、GoLand等都是基于IntelliJ Platform开发而成,掌握IntelliJ插件开发技能便能拥有提升开发效率的终极武器。本教程Dmeo源码请关注微信公众号“开发效率”进行获取。

如果您是JetBrains产品的用户,那您一定要看看这篇文章:JetBrains IntelliJ支持自动切换输入法,写代码如丝般顺滑

前言

自己探索IntelliJ插件开发之路并不好走,国内这方面资料较少且不成体系,虽然有官方的开发教程,但是英文版不太好理解而且讲得太浅,以至于会遇到很多无法解决的问题。因此,作者写了这篇系列教程,为了让中文开发者快速入门。授人予鱼不如授人予渔,作者觉得自我解决问题的思路比教程更重要,所以开篇首先给大家总结作者在开发过程的思路。

官方文档

IntelliJ Platform Plugin SDK是插件开发的官方文档(文末有链接),这里对IntelliJ IDE做了简单而全面的介绍,我们需要尽量去通读这篇文档,我觉得它最重要的作用是告诉我这个概念用英文怎么描述,这个对后续遇到问题时查找解决方案非常重要。所以当我们不知道该怎么描述我们遇到的问题的时候,首先来这里找下有没有对应的介绍。

开源插件

IntelliJ插件很多都是开源的,我们可以学习里面的代码,看是否能解决我们的问题。如果能找到一款实现功能很相近的开源插件,那将事半功倍。

IntelliJ插件市场是一个非常好寻找开源插件的地方,在这里可以根据关键字寻找你想要的插件,然后进入插件详情页面,找到Source Code,如下所示,有时作者可能没有设置Source Code,也许你可以去作者的Github找到远吗。

另外一个寻找开源插件的好地方就是Github,输入IDEA+关键字可以找到很多开源插件。

IntelliJ Platform源码

IntelliJ Platform是一个开源项目,在Github可以找到源代码intellij-community,另外我们也可以在插件项目中查看到源代码,那样会更方便。IDE里面的很多官方功能其实也是插件的形式提供的,所以我们可以参考他们的实现来完成我们的想法。其中最关键的还是需要知道IDE里面的概念如何用英文描述,只有知道某个功能的英文描述我们才能找到相应的类,才能知道他们是怎么实现的。所以,如果安装了中文汉化包的话赶紧把它卸载吧。

举个我自己的实际例子,我想知道键盘事件怎么监听,我知道IDE有个功能点击shift两次便能查找类或方法,通过IDE使用界面我了解到这个功能叫SearchEverywhere,于是我在项目工程里面用SearchEverywhere功能搜索关键字SearchEverywhere,于是找到了最相近的实现类com.intellij.ide.actions.SearchEverywhereAction,通过阅读源代码找到了点击两次shift与SearchEverywhere功能的联系,如下图中所示,它是通过ModifierKeyDoubleClickHandler类注册了点击两次shift后激活SearchEverywhere功能。

继续深入到ModifierKeyDoubleClickHandler里面,我找到了怎么监听键盘事件的代码如下所示,通过IdeEventQueue.EventDispatcher应该可以监听到IDEA里面所有事件,通过event instanceof KeyEvent判断是否为键盘事件,点击左上角插头形状图标,发现这个类还需要在plugin.xml里面进行注册,如下所示。

<ideEventQueueDispatcher implementation="com.intellij.openapi.keymap.impl.ModifierKeyDoubleClickHandler$MyEventDispatcher"/>

参考

  1. IntelliJ Platform Plugin SDK:https://plugins.jetbrains.com/docs/intellij/welcome.html#getting-started

  1. JetBrains Plugins Marketplace :https://plugins.jetbrains.com

如果您是JetBrains产品的用户,那您一定要看看这篇文章:JetBrains IntelliJ支持自动切换输入法,写代码如丝般顺滑

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值