IDEA插件开发.01之简单入门
环境准备
Idea插件SDK文档在线地址:https://plugins.jetbrains.com/docs/intellij/welcome.html
安装IntelliJ IDEA,这里使用版本2020.1.3 X64
IDEA中安装Plugin DevKit插件
创建插件项目
新建工程。File ->New -> Project
选择工程类型,IntelliJ PlatformPlugin,并选择IDEA自带SDK。点击Next
填写工程名称,点击Finish。
工程结构说明
resources/META-INF/plugin.xml为插件核心配置文件
src为插件源码目录
核心配置文件说明
<idea-plugin><!-- 插件id,要保证唯一 --><id>com.ruijie.shamee.firstplugin.id</id><!-- 插件名称,用于别人在插件市场搜索使用 --><name>FirstPlugin</name><!-- 版本号 --><version>1.0</version><!-- 插件提供方信息 --><vendor email="shamee@qq.com" url="http://www.shamee.com.cn">Shamee</vendor><!-- 插件描述 --><description><![CDATA[Enter short description1 for your plugin here.<br><em>most HTML tags may1 be used</em><em>Test</em>]]></description><!-- 变更日志 --><change-notes><![CDATA[Add change notes1 here.<br><em>most HTML tags may1 be used</em>]]></change-notes><!-- 插件所支持的idea版本号 --><idea-version since-build="173.0"/><!-- 相关的其他以来 --><depends>com.intellij.modules.platform</depends><!-- 扩展的内容 --><extensions defaultExtensionNs="com.intellij"><!-- Add your extensions here --></extensions><!-- 菜单动作 --><actions><!-- Add your actions here --></actions></idea-plugin>
插件编写
插件需求
编写一个IDEA顶部菜单Tools->子菜单。并点击该菜单会弹出一个消息通知。
创建Action
src先创建package,com.shamee.firstplugin
在该package右键->New->Plugin DevKit -> Action
编辑Action
填写Action ID,Class Name, Name,Description。
我们这里需要将该动作添加到IDEA顶部菜单Tools下的子菜单,所以这里的Groups选择ToolsMenu,之后右侧的Anchor选择First,表示该子菜单添加到Tools下的第一个位置。
Keyboard Shortcuts为添加快捷键。
之后点击OK。
配置文件变更
添加完Action后,配置文件plugin.xml下的<actions>会添加一个子标签<action>,内容即为我们填写的action信息。
<!-- 菜单动作 --><actions><!-- Add your actions here --><action id="FirstPluginActionID" class="com.ruijie.shamee.firstplugin.FirstPluginAction" text="测试插件" description="测试插件描述"><add-to-group group-id="ToolsMenu" anchor="first"/><keyboard-shortcut keymap="$default" first-keystroke="ctrl 0"/></action></actions>
同时src下新增了FirstPluginAction类。
Action实现
package com.ruijie.shamee.firstplugin;import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationGroup;
import com.intellij.notification.Notifications;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.ui.MessageType;/*** 插件Action实现,* 这里继承的AnAction为Idea提供的openapi。* 按照不同的插件实现,提供了多种action的继承*/
public class FirstPluginAction extends AnAction {@Overridepublic void actionPerformed(AnActionEvent e) {// 添加NotificationGroup,指定消息通知类型。这里NotificationDisplayType.BALLOON表示为气泡类型// isLogByDefault设置为true,表示除了消息气泡通知还会出发Idea事件通知NotificationGroup notificationGroup = new NotificationGroup("firstplugin.id", NotificationDisplayType.BALLOON, true);// 在NotificationGroup中添加消息通知内容,以及消息类型。这里为MessageType.INFONotification notification = notificationGroup.createNotification("点击测试", MessageType.INFO);// 消息通知Notifications.Bus.notify(notification);}
}
运行
编写完后,运行idea,会重新打开一个idea编辑器。
快捷键ctrl+0也会触发该消息通知。到此第一个没啥卵用的插件编写完成。
打包安装
打包Build->Prepare Plugin Module 'xxx' For Deployment
打包完成后,工程地下生成FirstPlugin.jar
安装。File->Setting->Plugins,点击Installed旁边的齿轮,选择Install Plugin From DIsk...
选择生成的jar,即可安装成功。之后idea重启后,插件便生效。
如果需要发布到插件市场,需要注册idea账号并上idea开发者后台提交上传即可,这里仅作随笔,不上传。
IDEA插件开发.01之简单入门相关推荐
- idea插件开发(01)---最简单的helloworld版,不需要知道原理,先跟我做一个最简单的弹框插件
前言 用了那么多idea插件,也想自己做一个插件,下面就是入门版本 你不需要先知道所有的概念,先跟着我的步骤做一个小;例子,后面再说原理 相关概念看后面一篇 本次以windos系统为例 开始 1.你得 ...
- 微信开发简单入门01
微信开发简单入门 微信的交互原理 消息推送 消息推送 微信的交互原理 手机的微信关注某个公众号,向公众号发送消息到微信服务器,微信服务器转发到指定的URL的服务器;这台指定URL的服务器返回数据到微信 ...
- Bootstrap学习笔记01【快速入门、栅格布局】
Java后端 学习路线 笔记汇总表[黑马程序员] Bootstrap学习笔记01[快速入门.栅格布局][day01] Bootstrap学习笔记02[全局CSS样式.组件和插件.案例_黑马旅游网][d ...
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
音视频基本概念和FFmpeg的简单入门 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如: ...
- Matlab 界面设计简单入门(App Designer)
新版Matlab交互界面基本操作 注意:本教程仅适用于2016b以后版本,建议安装2019b以后最新版本Matlab 与原来的GUIDE不同,新版的App Designer程序编写更加合理,更加好看, ...
- 【CMS建站】写给大家看的网站制作教程03—零基础学网站制作的简单入门指南...
作者 | 杨小爱 来源 | web前端开发(ID:web_qdkf) 在上一篇<[CMS建站]写给大家看的网站制作教程02-网站制作的工具介绍与下载安装>文章中,我详细的讲解了关于制作一个 ...
- CSS简单入门(一)
CSS简单入门(一) CSS是什么 CSS怎么用 CSS选择器(重点+难点) 美化网页(文字,阴影,超链接.列表.渐变-) 盒子模型 浮动 定位 网页定位(特效效果) 1.CSS是什么 1.1 什么是 ...
- 定时任务-Quartz、Mycat简单入门、Linux下安装MySQL、Linux下安装MyCAT、Mycat的数据库分片、Mycat读写分离
表现层:页面 后台管理系统.商城门户.搜索系统.订单系统.商品详情系统.购物车系统 中间件:dubbo 系统之间的通信,服务的统计,rpc协议远程过程调用 同步通信 服务层:实现具体的业务逻辑 商品服 ...
最新文章
- mysql设计数据集市_数据集市设计
- 第十七届全国大学生智能车竞赛智能视觉组培训第一弹
- 全国大学生智能汽车竞赛-讯飞智慧餐厅
- vscode自动修复eslint规范的插件及配置
- 【数学基础】拉格朗日乘子法
- 【openMV与机器视觉】四旋翼飞行控制背景下的PID控制与摄像头算法简介
- 查看Ubuntu系统的版本
- Zabbix---3 监控主机内存使用率
- extundelete数据恢复
- python win32api sendmessage_python win32api模拟后台鼠标点击的问题。
- SCSI代码分析(3)SCSI设备的管理2
- 【转】移动,电信,中行软开,微软,百度等企业工作纯技术性分析
- 终于找到了无毒版的fences1.0(2.0版本要收费的)
- android多媒体stagefright框架,Android多媒体框架下Stagefright的功能扩展.PDF
- [ROS2 基础] 仿真系统和搭建方法
- windows10启动项修复||an operating system wasn't found解决办法
- 电竞LOL数据API接口 - 【赛事列表数据】API调用示例代码
- 4G车牌识别摄像机 瞬间启动 快速唤醒抓拍 超低功耗硬件方案
- XDP技术——linux网络处理的高速公路
- 【免费分享源码】TV影视盒子美化版APP源码/对接苹果cms后台