小伙伴想写个 IDEA 插件么?这些 API 了解一下!
前言
在看完 IDEA 插件开发简易教程后,小伙伴们是否迫不及待的想自己上手整一个插件了?心里规划好了一二三,但是却不知道从哪里开始下手。下面我分享下自己整理的一些常用的 API。
公众号:liuzhihangs,记录工作学习中的技术、开发及源码笔记;时不时分享一些生活中的见闻感悟。欢迎大佬来指导!
AnAction操作
创建Action集成
AnAction
并实现其actionPerformed
方法. 在方法中可以获取到AnActionEvent
对象. 代码如下:
其他方式
获取PsiClass
PsiClass为java类或者接口
Psixxx操作
PsiClass操作API
源码有注释且比较清楚, 此处仅记录我用到的一部分
PsiField操作
PsiElement操作
PsiClass和PsiField都实现了PsiElement
PsiType操作
PsiType支持常用基本类型, 但是当创建对象时则不支持.需要自己创建
其他API
XML 文件操作
参考地址:https://jetbrains.org/intellij/sdk/docs/referenceguide/frameworksand_external_apis/xmldomapi.html
以 Mapper.xml 举例声明接口,继承 DomElement,并配合 @Attribute、@SubTag 、@SubTagsList 注解定义一个 xml model,其中需要注意 @SubTagsList 方法要使用复数形式。
搜索文件
比如想搜索项目中的所有 xml 文件,上面使用 Mapper 接口定义了 Mapper.xml 的结构,就可以利用 DomService 搜索所有的 Mapper.xml:
写入文件
需要调用WriteCommandAction
进行异步写入.
通知
在操作成功之后,在 IDEA 右下角通知用户,使用 NotificationGroup 类即可。
也可以定义为工具类,如下
总结
基本上常用的就是这些了,也可以查找官方文档,官方文档现在还是比较全面的,地址在相关资料中。也可以 Clone Toolkit 这个插件源码,源码中有一些注释。在其他优秀的插件中,同样可有相关使用方法。
相关资料
copy-as-json: https://github.com/liuzhihangs/copy-as-json
IntelliJ Platform SDK: https://jetbrains.org/intellij/sdk/docs/intro/welcome.html
版权声明: 本文为 InfoQ 作者【程序员小航】的原创文章。
原文链接:【http://xie.infoq.cn/article/3afbf95a4fb4c1494cd967f2a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论