Silentdoer

导航

IDEA插件开发总结

一:前置步骤

1.添加开发插件所需的SDK:

1.1先添加JDK

1.2打开Project Structure-Platform Settings-SDKs

1.3添加IntelliJ Platform Plugin SDK

1.4找到IDEA安装目录选择并OK

1.5为SandBox创建目录(最好也是创建在IDEA安装目录下)

2.下载安装gradle,为了能使用gradle命令;

二:创建工程

1.新建Gradle工程

1.1勾选Java和IntelliJ Platform Plugin这两个选项,SDK选择JDK1.8即可

1.2然后一路next即可;

上面的不要看了,不用Gradle,反正暂时用了一下不怎么好用,还是用网上常用的方式来创建;

2.新建Module选择IntelliJ Platform Plugin,然后SDK选择之前创建的;

2.1直接next,设置项目名然后Finish

3.对着src右键(或者Alt + Insert)选择Plugin DevKit选择Action

3.1在设置Action页面ActionID一般是包名+Action类名,后面两个Name就用Action类名即可,最后一个是备注

3.2可以在下面设置这个Action的所处的面板(包括顶上的如Build等一般以Menu后缀如BuildMenu),然后右侧选择所处Group的子栏;在下面可以设置Action的快捷键

4.接着就生成了自定义的Action,然后它的配置会在plugin.xml里;(上面是通过工具生成,也可以自己写个类实现AnAction类然后注册到plugin.xml里)

4.1在生成的Action的actionPerformed方法里添加

Messages.showMessageDialog("这个是我的测试弹窗!", "TestTile", Messages.getWarningIcon());
然后运行Plugin即可,找到之前设置的自定义Plugin的按钮,点击;
注意,运行后会产生一个全新的(且未配置的)IDEA程序来模拟安装了该插件;

5.一些开发总结:

5.1对于AnActionEvent e有如下用法:(PSI是程序结构接口的意思)

先定义两个变量:Project project = e.getData(PlatformDataKeys.PROJECT);和VirtualFile file = e.getData(PlatformDataKeys.VIRTUAL_FILE);(如果要获取当前文件的光标相关信息,如光标所在行,被光标引用的字符串等信息用EDITOR)
然后:
// 项目名,即获取调用此插件的当前项目的名字,输出为demo-test-plugin-dev
String projectName = project.getName();
// C:/Users/liqi.wang/IdeaProjects/demo-test-plugin-dev
String projectBasePath = project.getBasePath();
// file://C:/Users/liqi.wang/IdeaProjects/demo-test-plugin-dev(这个和上面的区别就是这里获得的是BasePath目录的文件)
VirtualFile baseDir = project.getBaseDir();
// java
String typeName = file.getExtension();
// Entrance.java
String fileName = file.getName();
// C:/Users/liqi.wang/IdeaProjects/demo-test-plugin-dev/src/Entrance.java
String canonicalPath = file.getCanonicalPath();

 5.2对于plugin.xml的配置的group-id有:1.HelpMenu是上面的Help;2.EditorPopupMenu.GoTo是右键当前文件的GoTo栏,而如果直接EditorPopupMenu则是直接在打开的文件上右键的一级菜单栏;

而ProjectViewPopupMenu则是右键左侧的Project中的如文件、目录时弹窗的列表;

5.3如果要开发在Settings里能配置的插件是new GUI Form,如果是插件按钮点击后有窗体是new Dialog;

posted on 2018-10-10 09:57  Silentdoer  阅读(3727)  评论(0编辑  收藏  举报