zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    【图论】2-SAT 问题
    【网络流】费用流(基于Capacity Scaling)
    CF gym 102483(NWERC 2018) A题 解答
    【网络流】最小点权覆盖集、最大点权独立集
    【网络流】最大密度子图
    【网络流】最大权闭合图
    简易 vim 配置
    生成函数基础
    「NOI.AC」NOI挑战赛第二场
    SDOI2020 退役记
  • 原文地址:https://www.cnblogs.com/silentdoer/p/9764666.html
Copyright © 2011-2022 走看看