概要
上节中详细聊了下IDEA插件的创建以及plugin.xml的具体含义。本节来聊聊IDEA提供的插件开发关键类,IDEA中提供的用于进行插件开发的接口非常多,本章主要介绍几个开发时常见的接口和类。
AnAction
当我们想扩展IDEA提供的菜单栏,那么就可以通过创建Action类来实现相应的功能。
创建Action
创建Action有两种方式:
- 创建一个类,然后继承AnAction类,通过重写其actionPerformed()方法和update()方法;最后需要在Plugin.xml中进行配置
- 通过IDEA提供的界面进行创建,并重写其actionPerformed()方法和update()方法,如下图所示:
第二种方法会自动在Plugin.xml注册相应的Action信息。下面我会以Lombok为例,以此来说明下Action的使用~
Lombok中plugin.xml中的Action配置为:
<group id="LombokActionGroup" text="Lombok" description="Refactor code with lombok annotations"
icon="/icons/lombok.png" popup="true">
<action id="defaultLombokData" class="de.plushnikov.intellij.plugin.action.lombok.LombokDataAction"
text="Default @Data" description="Action to replace getter/setter/equals/hashcode/toString methods with lombok @Data annotation">
</action>
<separator/>
<action id="defaultLombokGetter" class="de.plushnikov.intellij.plugin.action.lombok.LombokGetterAction"
text="Default @Getter" description="Action to replace all getter methods with lombok @Getter annotation">
</action>
<!-- 中间有action删减 -->
<add-to-group group-id="Refac