开发一块自己Idea插件
前言
自己平时用idea开发,就琢磨着idea插件的开发。在这里介绍一下idea大致开发的流程。和自己没事开发的两个简单的idea插件。一个是毒鸡汤插件,一个是代码阅读笔记插件。idea插件开发的资料网上确实不多,学习途径呢,主要是看官方文档和找一些其它的开源插件项目阅读源码。
使用DevKit插件开发流程
- 搭建开发环境
- 创建一个插件项目
- 创建动作(插件具体内容的开发)
- 运行和调试插件
- 部署插件
- 发布插件
环境准备
- 安装IDEA
- 在IDEA中Plugin DevKit,为开发IDEA插件提供支持
- 配置IntelliJ Platform Plugin SDK
创建一个插件项目
-
file->new Project
-
填写工程名称
-
工程创建成功,工程目录如下,plugin.xml是核心配置文件
-
核心配置文件说明
创建一个动作action
- 创建action
- 填写相关参数
- ① action的基本信息,其中Name属性的值作为将来菜单的文本内容
- ② 作为Tools菜单下的子菜单
- ③ 子菜单位置放在第一个
- ④ 为子菜单添加快捷键
-
编写菜单的通知内容
运行和调试插件
- 和我正常调试java代码一样,也可以在需要的位置打上断点。
2. 运行结果
部署插件
- 打包
2. 部署(从硬盘选择安装文件的方式)
发布插件
注册idea账号访问plugins.jetbrains.com/author/me/
- 登录插件库
2. 选择打包好的插件,进行上传,等待审核结果。一般需要2-3个工作日出结果。如果成功了,别人就可以在线搜索咱们开发的插件了。
小试牛刀之毒鸡汤插件
需求
需求描述
- 在idea启动的时候,弹出对话框,展示一碗毒鸡汤。当再干一碗的时候,我们切换内容。
需求分析
- 怎么抓住idea启动的这个时间点?
- 如何显示一个对话框?
- 怎么添加按钮的事件?
- 毒鸡汤内容的来源?
代码编写
Components组件
组件类型 描述 接口 plugins.xml加载配置素 ApplicationComponent 在IDEA启动的时候初始化,整个IDEA中只有一个实例。 ApplicationComponent ProjectComponent IDEA会为每一个Project实例创建对应级别的Component ProjectComponent ModuleComponent IDEA会为每一个已经加载的Project中的每一个模块(Module)创建Module级别的Component ModuleComponent
Application 级别的 components 在 IDEA 启动时加载 初始化:调用 方法。所以我们覆写方法,找到idea启动的时点。
弹出对话框
翻阅官方文档www.jetbrains.org/intellij/sd…
自定义按钮,并添加事件
覆写方法。
毒鸡汤内容来源
- 获取网上的毒鸡汤API地址,api.nextrt.com/V1/Dutang。
- 为了使用RestTemplate发送Http请求,添加3个依赖包。
使用RestTemplate发送http请求毒鸡汤API
- 布局
进入正题之笔记插件
需求
需求描述
- 在idea中选择任意文本,添加笔记的标题和内容。最后可以将笔记按照指定特定模板,生成markdown文章。
- 选中任意文本右键弹出包含自定义的子菜单
- 子菜单弹出对话框,在对话框中,编辑这条笔记的标题和内容,添加到笔记列idea自定义插件表
- 填写文档的标题,生成文档。选择生成文档保存的目录
- 打开生成的文档,展示生成的文档
需求分析
- 如何添加一个右键之后的子菜单
- 如何获取编辑器中已经选中的文本
- 如何弹出对话,获取用户编辑的笔记内容
- 如何使用ToolWindow展示笔记列表
- 如何在ToolWindow中添加表格
- 如何让用户选择文档生成的目录
- 如何将笔记列表静态化生成文档
代码编写
创建工程
新创建一个工程叫做MarkBook,作为我们的工程名,也作为这个插件产品的名称
添加一个右键之后的子菜单
- 创建action,注意选择EditorPopupMenu,顺便设置了快捷键方式ctrl+p
- 创建字后自动生成的配置文件和PopupAction类
- 测试结果
获取编辑器中已经选中的文本
- 修改对象
弹出对话框,获取用户编辑的笔记内容
-
创建
完善笔记内容
- 确定一条笔记需要的字段创建NoteData类
- 找一个存储位置
- 获取文件名称和类型,存储在全局变量
- 添加笔记到笔记列表集合
如何创建一个ToolWindow
- 创建一个GUI Form
- 创建之后自动生成的NoteListWindow
- 创建NoteListWindowFactory
- 配置加载toolWindow扩展内容
在ToolWindow中添加表格
- 在数据中心添加内容
- 定义表格初始化设置,并在构造方法中调用
- 在按钮的事件中添加
- 设置关闭
- 设置清空列表
让用户选择文档生成的目录
- 添加文件选择,获取用户选择的目录
将笔记列表静态化生成文档
- 定义处理的接口
- 编写Freemarker的抽象类
- 编写继承。实现抽象方法
- 添加处理操作
- 完善提示
- 对话框提示
- 通知提示
今天的文章
idea自定义插件分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/137472.html