idea 拉取gitee代码_手把手撸一个 IDEA 插件
点击上方"IT牧场",选择"设为星标"
技术干货每日送达!
作者:乱来梦游神
来源 :https://urlify.cn/Eja6zu
前段时间看到公众号一篇关于IDEA插件开发的文章,感觉写的太过于简单,所以想自己写一个IDEA插件开发的系列,从实战的角度讲解IDEA插件开发的流程。
我会通过几个实际的例子演示一个插件的开发,通过几个实际的例子让玩家对于插件开发有个笼统的认识,实际例子完成后,我会从黑铁讲起,一点点的剖析IDEA插件的内涵,至于能不能升到最强王者那就看命运了。
啰嗦了这几句话,那就让我们开始吧。
IDEA插件名词
首先我先介绍几个插件的名词,这样能够保证后边的语境不会出现理解偏差,这里我会进行类比,因为是插件是用java开发,而会java的人一定知道spring全家桶,所以我会拿spring里面的概念进行类比,当然这里不会列举所有,会先列举需要的部分。
(1)Actions:这货就跟controller类似,简单一点来说,当用户点击idea的某个按钮你自己开发的菜单时就会调用的方法。所有的action都需要继承 com.intellij.openapi.actionSystem.AnAction 这个抽象类,实现actionPerformed方法即可,至于按钮在什么位置,则是有add-group相关参数进行配置,这个后边得连载中详细解释。
(2)Services:这货就跟spring普通的类有点相似,他的定义分为两种,分别是应用级别和工程级别,通俗一点讲就是spring里面的普通的bean,当然应用级别代表单例的Bean,工程级别则是多例的Bean(这里不够贴切,可以先理解为单例,等后边的文章再细品)。
(3)demo配置文件(完整代码地址:https://gitee.com/yuanzizhenxin/PluginDemo):
实例开始
接下来我会拿https://gitee.com/yuanzizhenxin/PluginDemo 这个工程作为实例,用刚介绍的东西讲解这个简单的实例,那么,让我们开始实战讲解吧。
(1)功能介绍:弹窗当前时间,并理解application级别和project级别的service的区别。
(2)代码下载及IDEA开发环境配置:
首先需要下载IDEA社区版本即可,下载gradle并配置好,使用git将项目https://gitee.com/yuanzizhenxin/PluginDemo 下载到本地,使用idea打开。
(3)插件演示:
A、首先整个demo的入口是plugin.xml里面的
这里参数的具体含义我会单独的章节进行讲解,先知道这是入口action的配置,他的位置是在下图红框处。
B、idea打开工程,等gradle初始化完成后找到下图的按钮,并双击运行,这样就能够运行一个新的idea,这个就是沙箱里面的idea(可以理解为一个全新的idea)。
C、点击在A步骤说明的action的位置,点击ActionDemo,就能看到idea中间弹窗提示。
(4)插件代码讲解:
这里action首先继承了AnAction类,并重写了actionPerformed方法,记住所有的插件action都是这样声明。
在action中获取service的方法则是
ServiceManager.getService(XXXX.class);//或者ServiceManager.getService(anActionEvent.getProject(), XXXX.class);
//弹窗则是 Messages.showMessageDialog(“内容”, "标题", Messages.getInformationIcon());
综上看来,一个插件无非就这么几个东西,剩下的就交给阅读以下源码了,很简单,祝各位成功!
干货分享
最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取!
•001:《Java并发与高并发解决方案》学习笔记;•002:《深入JVM内核——原理、诊断与优化》学习笔记;•003:《Java面试宝典》•004:《Docker开源书》•005:《Kubernetes开源书》•006:《DDD速成(领域驱动设计速成)》•007:全部•008:加技术讨论群
近期热文
•彻底解决 GitHub 拉取代码网速慢的问题•基于 SpringBoot2 和 Netty 实现一个简易的RPC通信框架•一本彻底搞懂MySQL索引优化EXPLAIN百科全书•盘点 10 个代码重构的小技巧•性能测试如何定位瓶颈?偶发超时?看高手如何快速排查问题•震精!Spring Boot内存泄露,排查竟这么难!
想知道更多?长按/扫码关注我吧↓↓↓>>>技术讨论群<<<喜欢就点个"在看"呗^_^
idea 拉取gitee代码_手把手撸一个 IDEA 插件相关推荐
- vscode中如何拉取git代码_工具 | 手把手教你在VSCode中使用Git
在一个目录下clone项目: git clone XXXXXX.git 使用VScode 打开项目 右击通过Code打开. 使用vscode提交代码 1.打开下面视图,添加一行文字: ## 测试提交 ...
- git gui怎么拉取项目代码_这些Git命令都不会,还是不要去面试了
前言 以下,项目中经常使用的Git命令,汇总到这里以便与你能快速的学习和掌握Git命令,在文章最后有惊喜哟,一定要看到最后啊! 使用的 Git版本:git version 2.24.0 命令 git ...
- idea使用svn拉取项目代码_使用 IDEA 搭建 Hadoop3.1.1 项目
Hadoop 的版本是 3.1.1 1. 启动 Hadoop 服务 $ start-all.sh 2. 新建 IDEA 的 Maven 项目 2.1 选中 Maven,Project SDK 选择为 ...
- 【OpenGL】六、Visual Studio 2019 配置 GitHub ( 提取和拉取简介 | 拉取远程代码 )
文章目录 一.提取和拉取简介 二.拉取远程代码 一.提取和拉取简介 在 " 团队资源管理器 " 主页中 , 选择 " 同步 " 选项 , 在同步页面中 , 有 ...
- 拉取gitee上面的项目方法
拉取gitee上面的项目方法 还是实例解决一切吧: 首先进入到软件未打开项目的界面,如果你现在处于打开项目状态 ctrl + shift +a--输入close project: 在URL里输如版本 ...
- 第一次使用git拉取公司代码,报错未能顺利结束 (退出码 128)
原因是之前借用了别人的GitLab账号拉取过代码,然后这个账号和密码被存在本地了,需要进入控制面板修改就可以了. 1.解决拉取代码报错128 1.打开控制面板,找到"凭据管理器": ...
- SVN拉取项目代码(checkout)和远程强制关闭一个现有链接
一.checkout代码 创建文件夹,在哪个盘都可以 在文件夹中鼠标右击选择SVN Check out 弹出: 写入svn URL ==> ok, 小技巧:拉取项目代码时先不忙拉取代码可以将sv ...
- git获取代码,拉取最新代码,更新代码等
有句话说的很好:git是弓,我们的代码是箭,github就是靶子.我们需要把自己的代码存放到github的仓库上. 下图为截取的阮一峰博客的关于git常用命令总结的一张图片: 1.一开始从零获取代码 ...
- Git和Github本地上传下载及拉取他人代码
Git和Github本地上传下载及拉取他人代码 闻道有先后,术业有专攻(自己瞎搞一两个小时,没有后端老王15分钟来的透彻) 一:通过Git把Github上的代码下载到本地 !首先是什么!!下载Git, ...
最新文章
- 前端性能毫秒必争方案(一)HTTP请求
- C#操作Excel导入导出
- 2.3.4 信号量机制
- IDEA2021创建Java Web项目
- Servlet 数据库访问
- git 远程仓库回滚
- XMLHttpRequest的方法
- 报错:Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfr
- 使用Newtonsoft JsonConvert反序列化Json数据到DataTable
- 拥塞控制,图文并茂(挺丰富,借鉴较多大佬的思想)
- vs2010旗舰版产品密钥
- 软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法
- 安卓盒子root--包好
- oracle 12c 自增序列
- keep跑步记录伪造_Keep、悦跑圈、咕咚、悦动圈,四个跑步App比对
- [生存志] 第20节 历代大事件概览 隋朝
- 固态硬盘是什么接口_SATA M.2 PCIe?一分钟教你认识固态硬盘接口
- 电邮里面是图片怎么下载_这是最有效的采访后谢谢您的电子邮件
- 14.Yum详解,yum安装,查找,info,反向查找,组,依赖,缓存等所有操作
- .NET主流的ORM框架
热门文章
- 杭电2066一个人的旅行
- C++ unsigned long 转化为 unsigned char*
- kafka集群安装部署
- 鸿蒙撕系统裂安卓阵营,鸿蒙系统年底问世 安卓阵营是不是该瑟瑟发抖了
- 怎么看电脑是不是linux系统,怎么查看自己的电脑系统是什么版本
- 嵌入式操作系统内核原理和开发(实时调度)
- 嵌入式操作系统内核原理和开发(固定内存分配算法)
- android 控件突然变小,android中自定义控件
- strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
- tomcat启动成功 未加载项目_新里程|尚品食品国际贸易合伙人项目成功启动