一.插件功能
IntelliJ IDEA 是一款流行的JAVA 开发 IDE,对于提高编程效率有非常大的帮助。但是,还是会有一些特殊的需求它并不能满足,此时我们就需要通过开发插件来实现了。
主要的插件功能包含以下四种类型:
-
自定义语言支持:如果有 IDEA 暂时不支持的语言,可以自己写一个插件来支持,例如 Go 语言原来的支持就是通过插件做的,官方有自定义语言插件支持的教程;
-
框架支持:例如Struts 2 的框架支持;
-
工具集成:可以给 IDEA 的自带功能进行增强,例如对 Git 的操作增加 CodeReview 的功能;
-
用户界面:自定义插件来改变用户界面,比如 BackgroundImage;
二.插件开发常用场景
1.常用对象
JAVA相关应用里面的常用对象:
PsiFile: 应用中的文件,如.Java的文件或者是.xml的文件等;
PsiDirectory: 应用中的目录;
PsiJavaFile: Java源文件,如Demo.java;
PsiClass: 某个类,一个文件中可能会有多个类;
PsiMethod: 类中的某个方法;
PsiField: 类中的某个属性;
PsiAnnotation: 注解;
2.常用操作
Action 是 IDEA 插件开发中比较基本的概念,插件利用 Action 来往菜单栏和工具栏添加新的菜单或按钮,它继承了 com.intellij.openapi.actionSystem.AnAction
,当对应的菜单栏或者工具按钮被点击,则Action被调用,最为关键的就是 actionPerformed 方法。它的定义如下:
public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
}
定义好之后就可以在方法里面编写我们想要实现的插件功能了,常用的操作如下:
(1). 获取当前项目:
Project project = anActionEvent.getProject();
(2). 获取当前的编辑器对象:
Editor editor = anActionEvent.getData(CommonDataKeys.EDITOR);
(3). 获取当前编辑的文件:
PsiFile psiFile = PsiDocumentManager.getInstance