官方文档
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注册窗口:


创建成功之后,在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());

网友评论