赞
踩
插件开发基础
- Intellij platform 插件可以使用java和Kotlin两种语言开发,开发插件时需遵守官方发布的特定的代码\开发规范,又由于Intellij平台插件体系非常庞大加之网上资料的匮乏,在某种程度上来讲初次接触还是有些难度的,对初学者不是太友好。
- 本章内容详细描述了Intellij平台插件开发的基础知识,包括但不限于概念体系、参考资料、学习网站、基础配置等。实践证明,在了解了这些知识点后可以很大程度上可以加快后期学习/开发插件的效率,即使开发者接触了本章未提及的陌生内容也能知道如何查找相关资料或是向开发者论坛上求助。
IntelliJ platform本身并不是一个产品,它只提供了一个用于构建 IDE 的底层平台。此底层平台是开源的,源码可从intellij-community处下载,完全免费任何人都可以使用(商业用途除外)。但基于此平台开发的软件比如Intellij idea、PhpStorem等是需要购买licence的。
基于IntelliJ平台的产品可以通过添加插件方式来修改和调整其默认功能以达到功能/性能增强的目的。JetBrains旗下所有IDE产品可下载的插件可以从JetBrains Marketplace获得。IDE插件主要有两大类:功能plugin和主题theme,按插件的实际用途可细分为如下5类:
虽然插件类型有5种之多,但多数插件或是功能强大的插件基本上都以IDE功能的增强为核心进行开发,这些增强功能一般包括:1、扩充操作-菜单和工具栏项;2、代码检查-代码分析,查看语法树和语义模型,并突出显示编辑器中的问题;3、意图-当文本插入符位于特定位置时,Alt+Enter菜单中可用的上下文特定操作;4、代码自动完成。
下图是Intellij插件开发需要掌握的一些内容,可以先有个大概了解,后续会按主题详细讲解:
IDE插件的开发环境有三个硬性要求,详细如下:
需要注意的是:官方有时会要求下载Plugin devKit插件:下载地址,插件主页 这个插件用于最早版本的Intellij 插件的开发,现在用不到了,可以不下载,除非您的插件比较老;
开发IDE插件,要求开发人员必须掌握如下技能,越精通越好:
本文档中所有示例的本地开发环境配置如下:
之前已提过插件分为主题和功能两种,前者主要是针对设计师,此类插件只能改变IDE的UI样式不能改变IDE的交互和功能,而功能类型的插件是针对程序员的,围绕编程过程扩展展开旨在加快程序开发的效率。功能类型需要扩展Intellij平台或三方插件暴露出的扩展点(extensions point,简称EP),当然也可以编写一个扩展点插件供其它人进行二次开发定制也是允许的,功能插件一般可扩展的IDE功能如下图所示:
除了上述扩展,还包括项目结构、运行配置以及针对源码内容的扩展(比如统计、高亮等),总之,除了IDE的UI界面布局框架外,所有的部分都可以用插件进行扩展。
插件开发本身相当于一个简单的业务需求,需要经过设计、编码、测试以及最后打包发布。如果需要发布插件到插件市场供其他人下载使用则需要遵循官方的发布规范,在发布插件时需要官方审核通过后才能发布到插件市场,这些要求包括,比如插件描述只能用英文且需满足一定的字数。这些规范在官方文档上没有太完整的描述,新手比较容易踩坑,笔者会在后续发布时详细描述笔者发布插件过程中所遇到的一些问题。
插件开发完整流程可简单归纳为以下三步:
本节中详细列出了官方文档大约(注:文档会由官方定期更新)下列标红部分为重点内容,需要完全掌握,越精通越好。
注:以上文档如果自学建议按顺序学习不能跳跃,因为高级功能是依赖底层能力的,比如PSI是所有针对源码功能增强的基础,比如查找引用、声明等。如果不能掌握PSI内容,是无法仅仅依靠几个示例demo就编写符合个人预期的理想插件的。
开发插件时,以下站点经常用到,所以笔者特意整理了一些比较重要的参考资料,在之后系列课程的附录文档中会有更详细的整理说明。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。