IntelliJ插件开发教程之新建Action

简介: 认识Action在IDE编辑器中可以通过右键打开选项,如下图所示,这里的动作便是Action,同时在顶部的ToolBar也会有相应的Action,如下图所示。可能大家对我这个IDE的UI有点陌生,其实这是2022.3版本的IDEA开启了New UI,NEW UI还是内测中,需要手动开启,设置位置在:Settings->appearance&behavior -> New UI

认识Action

在IDE编辑器中可以通过右键打开选项,如下图所示,这里的动作便是Action,同时在顶部的ToolBar也会有相应的Action,如下图所示。可能大家对我这个IDE的UI有点陌生,其实这是2022.3版本的IDEA开启了New UI,NEW UI还是内测中,需要手动开启,设置位置在:Settings->appearance&behavior -> New UI。

新建Action

本文示例代码可以点击文末阅读原文获取,拿MessageDialogAction进行讲解,这个Action做的事情就是通过Dialog展示当前选择的文本。所有Action都要继承自AnAction并实现actionPerformed方法,Action执行时便会回调这个方法。

同时需要在plugin.xml文件注册这个Action之后,这个Action才能生效。所有Action都在actions标签中进行注册,首先通过action标签注册,通过group标签可以将Action进行组合,add-to-group表示添加到某个组里面,可以添加到编辑器右键选项(EditorPopupMenu)和菜单栏(ToolsMenu)。

<actions>
        <action id="messageDialogAction"
                text="MessageDialog测试"
                class="com.example.ideaplugindemo.action.MessageDialogAction"/>
        <group id="notificationTest" popup="true"
               text="通知测试">
            <add-to-group group-id="EditorPopupMenu" anchor="after" relative-to-action="$Paste"/>
            <add-to-group group-id="ToolsMenu" anchor="first"/>
            <reference ref="messageDialogAction"/>
        </group>
</actions>

能干什么

actionPerformed方法传入AnActionEvent参数,通过这个参数我们可以获取到很多信息,比如通过DataContext获取到编辑器对象,通过编辑器对象就可以做很多事情,如下是通过CaretModel获取到当前选择的文本。

Editor editor = CommonDataKeys.EDITOR.getData(e.getDataContext());
String selectedText = Optional.ofNullable(editor)
    .map(Editor::getCaretModel)
    .map(CaretModel::getPrimaryCaret)
    .map(Caret::getSelectedText)
    .orElse("")
int result = Messages.showYesNoCancelDialog(e.getProject(), "Yes or no dialog 测试 测试,你选择的是" + selectedText, "Plugin Demo",
    "Yes", "No", "Cancel", Messages.getQuestionIcon());

 

相关文章
|
IDE Java Maven
Idea安装及项目设置配置和基本使用
Idea安装及项目设置配置和基本使用
310 0
Idea安装及项目设置配置和基本使用
|
3月前
|
Java 数据库连接 Spring
如何在IDEA中自定义模板、快速生成完整的代码?
这篇文章介绍了如何在IntelliJ IDEA中使用easycode插件自定义代码生成模板,以快速生成Spring Boot、MyBatis等项目中常见的Controller、Service、Dao、Mapper等组件的代码。
如何在IDEA中自定义模板、快速生成完整的代码?
Idea 如何新建一个groovy的项目(图文详细解释)
Idea 如何新建一个groovy的项目(图文详细解释)
533 1
|
Java 程序员
IntelliJ IDEA创建项目以及注意事项
本文将为大家展现如何在IntelliJ IDEA创建一个项目(如何方便地管理自己地项目),使用博主的创建步骤可以让老铁们的项目结构清晰明了。 我将严格按照公司的管理结构:项目->模块->包->类来演示。
377 0
IntelliJ IDEA创建项目以及注意事项
|
IDE 开发工具 git
2021 最新 IntelliJ IDEA 详细配置步骤演示(图文版)
2021 最新 IntelliJ IDEA 详细配置步骤演示(图文版)
519 0
2021 最新 IntelliJ IDEA 详细配置步骤演示(图文版)
|
机器学习/深度学习 NoSQL Java
《IntelliJ IDEA 插件开发》第四节:扩展创建工程向导步骤,开发DDD脚手架
一、前言 二、需求目的 三、案例开发 1. 工程结构 2. UI 工程配置窗体 3. 配置工程步骤创建 4. 开发脚手架服务 5. 调用脚手架服务 6. 配置模板工程 四、测试验证 五、总结 六、系列推荐
881 0
《IntelliJ IDEA 插件开发》第四节:扩展创建工程向导步骤,开发DDD脚手架
|
Java Spring
IDEA 文档插件 DocView 版本更新:修改 UI 并支持 IDEA 2020.3 !
近期工作开始忙起来,各种忙,连阅读 Spring 源码都暂停了,Doc View 也暂时搁置计划,虽然想有很多功能,但是总是要慢慢来的。
256 0
|
Java 测试技术 API
《IntelliJ IDEA 插件开发》第一节:两种方式创建插件工程
一、前言 二、需求目的 三、环境说明 四、模板方式创建 1. 创建引导 2. 工程结构 3. plugin.xml 配置 4. MyAction 事件入口 5. 运行测试 五、Gradle 方式创建 1. 创建引导 2. 工程结构 3. build.gradle 配置 4. MyAction 事件入口 5. 运行测试 六、总结
1352 0
《IntelliJ IDEA 插件开发》第一节:两种方式创建插件工程
|
前端开发 Java 数据库连接
【springcloud合集】03:IDEA新建父工程project
【springcloud合集】03:IDEA新建父工程project
379 0
【springcloud合集】03:IDEA新建父工程project