自定义idea插件

自定义idea插件

开发一块自己Idea插件

前言

自己平时用idea开发,就琢磨着idea插件的开发。在这里介绍一下idea大致开发的流程。和自己没事开发的两个简单的idea插件。一个是毒鸡汤插件,一个是代码阅读笔记插件。idea插件开发的资料网上确实不多,学习途径呢,主要是看官方文档和找一些其它的开源插件项目阅读源码。

自定义idea插件

使用DevKit插件开发流程

  1. 搭建开发环境
  2. 创建一个插件项目
  3. 创建动作(插件具体内容的开发)
  4. 运行和调试插件
  5. 部署插件
  6. 发布插件

环境准备

  1. 安装IDEA
  2. 在IDEA中Plugin DevKit,为开发IDEA插件提供支持
  3. 配置IntelliJ Platform Plugin SDK

创建一个插件项目

  1. file->new Project

    自定义idea插件

  2. 填写工程名称

    自定义idea插件

  3. 工程创建成功,工程目录如下,plugin.xml是核心配置文件

    自定义idea插件

  4. 核心配置文件说明

    
    

创建一个动作action

  1. 创建action
    自定义idea插件
  2. 填写相关参数
  • ① 自定义idea插件 action的基本信息,其中Name属性的值作为将来菜单的文本内容
  • ② 作为Tools菜单下的子菜单
  • ③ 子菜单位置放在第一个
  • ④ 为子菜单添加快捷键
自定义idea插件

  1. 编写菜单的通知内容

    
    

运行和调试插件

  1. 和我正常调试java代码一样,也可以在需要的位置打上断点。
自定义idea插件

2. 运行结果

自定义idea插件

部署插件

  1. 打包
自定义idea插件

2. 部署(从硬盘选择安装文件的方式)

自定义idea插件

发布插件

注册idea账号访问plugins.jetbrains.com/author/me/

  1. 登录插件库
自定义idea插件

2. 选择打包好的插件,进行上传,等待审核结果。一般需要2-3个工作日出结果。如果成功了,别人就可以在线搜索咱们开发的插件了。

自定义idea插件

小试牛刀之毒鸡汤插件

需求

需求描述
  • 在idea启动的时候,弹出对话框,展示一碗毒鸡汤。当再干一碗的时候,我们切换内容。
自定义idea插件

需求分析
  1. 怎么抓住idea启动的这个时间点?
  2. 如何显示一个对话框?
  3. 怎么添加按钮的事件?
  4. 毒鸡汤内容的来源?

代码编写

Components组件
组件类型 描述 接口 plugins.xml加载配置素 ApplicationComponent 在IDEA启动的时候初始化,整个IDEA中只有一个实例。 ApplicationComponent ProjectComponent IDEA会为每一个Project实例创建对应级别的Component ProjectComponent ModuleComponent IDEA会为每一个已经加载的Project中的每一个模块(Module)创建Module级别的Component ModuleComponent

自定义idea插件

Application 级别的 components 在 IDEA 启动时加载 初始化:调用 方法。所以我们覆写方法,找到idea启动的时点。

弹出对话框

翻阅官方文档www.jetbrains.org/intellij/sd…


自定义idea插件

自定义按钮,并添加事件

覆写方法。


毒鸡汤内容来源
  • 获取网上的毒鸡汤API地址,api.nextrt.com/V1/Dutang。
  • 为了使用RestTemplate发送Http请求,添加3个依赖包。
自定义idea插件

使用RestTemplate发送http请求毒鸡汤API


  • 布局
自定义idea插件

进入正题之笔记插件

需求

需求描述
  • 在idea中选择任意文本,添加笔记的标题和内容。最后可以将笔记按照指定特定模板,生成markdown文章。
  • 选中任意文本右键弹出包含自定义的子菜单
自定义idea插件

  • 子菜单弹出对话框,在对话框中,编辑这条笔记的标题和内容,添加到笔记列表
自定义idea插件

  • 填写文档的标题,生成文档。选择生成文档保存的目录
自定义idea插件

  • 打开生成的文档,展示生成的文档
自定义idea插件

需求分析
  1. 如何添加一个右键之后的子菜单
  2. 如何获取编辑器中已经选中的文本
  3. 如何弹出对话,获取用户编辑的笔记内容
  4. 如何使用ToolWindow展示笔记列表
  5. 如何在ToolWindow中添加表格
  6. 如何让用户选择文档生成的目录
  7. 如何将笔记列表静态化生成文档

代码编写

创建工程

新创建一个工程叫做MarkBook,作为我们的工程名,也作为这个插件产品的名称


添加一个右键之后的子菜单
  • 创建action,注意选择EditorPopupMenu,顺便设置了快捷键方式ctrl+p
自定义idea插件

  • 创建字后自动生成的配置文件和PopupAction类


  • 测试结果
自定义idea插件

获取编辑器中已经选中的文本
  • 修改对象

弹出对话框,获取用户编辑的笔记内容
  • 创建

    
    
完善笔记内容
  • 确定一条笔记需要的字段创建NoteData类

  • 找一个存储位置

  • 获取文件名称和类型,存储在全局变量

  • 添加笔记到笔记列表集合

如何创建一个ToolWindow
  • 创建一个GUI Form
自定义idea插件

  • 创建之后自动生成的NoteListWindow

  • 创建NoteListWindowFactory

  • 配置加载toolWindow扩展内容

在ToolWindow中添加表格
  • 在数据中心添加内容

  • 定义表格初始化设置,并在构造方法中调用

  • 在按钮的事件中添加

  • 设置关闭

  • 设置清空列表

让用户选择文档生成的目录
  • 添加文件选择,获取用户选择的目录

自定义idea插件

将笔记列表静态化生成文档
  • 定义处理的接口

  • 编写Freemarker的抽象类

  • 编写继承。实现抽象方法

  • 添加处理操作

  • 完善提示
  • 对话框提示

  • 通知提示

今天的文章
自定义idea插件分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/136893.html

(0)
编程小号编程小号
上一篇 2024-09-02 09:11
下一篇 2024-09-02 09:30

相关推荐