美文网首页
(一)IntelliJ 插件开发——新建IntelliJ Pla

(一)IntelliJ 插件开发——新建IntelliJ Pla

作者: 秋水畏寒 | 来源:发表于2020-03-03 21:54 被阅读0次

官方文档

https://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system/prerequisites.html

Github

https://github.com/kungyutucheng/my_gradle_plugin

运行环境

macOS 10.14.5
IntelliJ idea 2019.2.4

新建工程

步骤一 步骤二

填写GroupID和ArtifactId

步骤三

填写工程目录位置等

创建成功之后的工程目录结构

my_gradle_plugin
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ └── resources
│ └── META-INF
│ └── plugin.xml
└── test
├── java
└── resources

运行简单的插件工程

创建Action

package com.kungyu.action;

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;

/**
 * @author wengyongcheng
 * @since 2020/2/28 9:18 上午
 */
public class PopupDialogAction extends AnAction {
    @Override
    public void actionPerformed(@NotNull AnActionEvent e) {

    }

    @Override
    public void update(@NotNull AnActionEvent e) {

    }
}

鼠标移动到类名 PopupDialogAction ,按住 option + enter,触发action注册窗口:


触发action 注册action

创建成功之后,在plugin.xml中可以看到多了这么一段代码:

<actions>
    <action id="com.kungyu.action.PopupDialogAction" class="com.kungyu.action.PopupDialogAction"
                text="pop dialog action" description="action example">
        <add-to-group group-id="ToolsMenu" anchor="first"/>
    </action>
</actions>
运行程序
运行结果

可以看到Tools菜单下已经增加了Pop Dialog Action

实现 actionPerformed

// 获取当前工程
Project project = e.getProject();
// e.getPresentation() 获取当前组建
StringBuffer dialogMsg = new StringBuffer(e.getPresentation().getText() + " selected");
String dialogTitle = e.getPresentation().getDescription();
 // 获取当前选中对象
Navigatable nav = e.getData(CommonDataKeys.NAVIGATABLE);
if (nav != null) {
    // 选中对象文件名或者目录名称,此处为全路径
    dialogMsg.append(String.format("\nSelected elements:%s", nav.toString()));
}
Messages.showMessageDialog(project, dialogMsg.toString(), dialogTitle.toString(), Messages.getInformationIcon());
实现actionPerformed后效果

相关文章

网友评论

      本文标题:(一)IntelliJ 插件开发——新建IntelliJ Pla

      本文链接:https://www.haomeiwen.com/subject/uwpckhtx.html