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;

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/silentdoer/p/9764666.html
Copyright © 2011-2022 走看看