{"id":13593207,"url":"https://github.com/fuzhengwei/guide-idea-plugin","last_synced_at":"2025-04-05T17:06:14.877Z","repository":{"id":43750776,"uuid":"428957848","full_name":"fuzhengwei/guide-idea-plugin","owner":"fuzhengwei","description":"IDEA Plugin 插件开发可以帮助研发人员提升能效，解决一些实际场景中的共性问题。但最近在折腾IDEA插件开发的时候，市面的资料确实不多，也没有成体系完整的开发指导手册，所以就遇到了很多不知道就不会的事情，需要一点点查询搜索源码、验证API接口，最终把各项功能实现，当然在这个过程中也确实踩了不少坑！接下来在这个专栏会把一些关于 IDEA 插件开发用到的各项知识做成案例输出出来，帮助有需要的研发伙伴，一起建设 IDEA Plugin","archived":false,"fork":false,"pushed_at":"2022-10-13T22:32:20.000Z","size":10096,"stargazers_count":455,"open_issues_count":2,"forks_count":120,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-29T16:05:27.688Z","etag":null,"topics":["idea","idea-plugin","swing"],"latest_commit_sha":null,"homepage":"https://bugstack.cn/md/assembly/idea-plugin/2021-08-27-%E6%8A%80%E6%9C%AF%E8%B0%83%E7%A0%94%EF%BC%8CIDEA%20%E6%8F%92%E4%BB%B6%E6%80%8E%E4%B9%88%E5%BC%80%E5%8F%91%EF%BC%9F.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuzhengwei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-17T08:03:32.000Z","updated_at":"2025-03-27T11:26:42.000Z","dependencies_parsed_at":"2022-09-12T01:30:20.332Z","dependency_job_id":null,"html_url":"https://github.com/fuzhengwei/guide-idea-plugin","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzhengwei%2Fguide-idea-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzhengwei%2Fguide-idea-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzhengwei%2Fguide-idea-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzhengwei%2Fguide-idea-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuzhengwei","download_url":"https://codeload.github.com/fuzhengwei/guide-idea-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247369952,"owners_count":20927928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["idea","idea-plugin","swing"],"created_at":"2024-08-01T16:01:17.720Z","updated_at":"2025-04-05T17:06:14.827Z","avatar_url":"https://github.com/fuzhengwei.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# IntelliJ IDEA 插件开发 - 教程\n\n\u003e 你好，我是小傅哥，[《重学Java设计模式》](https://item.jd.com/13218336.html) 图书作者，一线互联网 Java 工程师、架构师。[:pencil2: 虫洞栈，博主](https://bugstack.cn) 👉 如果你是刚入行、在外包、跨语言学习、想跳槽大厂、缺少学习动力等，可以阅读小傅哥的成长故事，这个系列包括了我的个人在外包到大厂的成长、跳槽的过程、互联网的学习经历 Go -\u003e [关于小傅哥](https://bugstack.cn/md/about/me/2020-08-25-13%E5%B9%B4%E6%AF%95%E4%B8%9A%EF%BC%8C%E7%94%A8%E4%B8%A4%E5%B9%B4%E6%97%B6%E9%97%B4%E4%BB%8E%E5%A4%96%E5%8C%85%E8%B5%B0%E8%BF%9B%E4%BA%92%E8%81%94%E7%BD%91%E5%A4%A7%E5%8E%82.html)\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://bugstack.cn\" style=\"text-decoration:none\"\u003e\u003cimg src=\"https://bugstack.cn/images/system/CodeGuide-LOGO.png?raw=true\" width=\"256px\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\t\u003ca href=\"https://bugstack.cn/md/other/guide-to-reading.html\"\u003e\u003cimg src=\"https://bugstack.cn/images/system/CodeGuide-Read.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://bugstack.cn/images/personal/qrcode.png\"\u003e\u003cimg src=\"https://bugstack.cn/images/system/CodeGuide-WeiXinCode.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://bugstack.cn/md/knowledge/pdf/2021-01-26-Java%E9%9D%A2%E7%BB%8F%E6%89%8B%E5%86%8CPDF%E4%B8%8B%E8%BD%BD.html\"\u003e\u003cimg src=\"https://bugstack.cn/images/system/CodeGuide-JavaPDF.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://mp.weixin.qq.com/s/VthCUlT8oAJqKOoq5_NzSQ\"\u003e\u003cimg src=\"https://bugstack.cn/images/system/CodeGuide-Lottery.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/fuzhengwei/CodeGuide\"\u003e\u003cimg src=\"https://badgen.net/github/stars/fuzhengwei/CodeGuide?icon=github\u0026color=4ab8a1\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003ctable\u003e\n        \u003ctr\u003e\n            \u003ctd align=“center\"\u003e添加微信：fustack\u003c/td\u003e\n            \u003ctd align=“center\"\u003e关注公众号：bugstack虫洞栈\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd align=“center\"\u003e\u003cimg src=\"https://bugstack.cn/images/personal/fustack.png\" width=\"128px\"\u003e\u003c/td\u003e\n            \u003ctd align=“center\"\u003e\u003cimg src=\"https://bugstack.cn/images/personal/qrcode.png\" width=\"128px\"\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/table\u003e\n\u003c/div\u003e\n\u003cbr/\u003e  \n\n## ⛳ **目录**\n\n- [学习说明](https://github.com/fuzhengwei/guide-idea-plugin#bookmark-%E5%AD%A6%E4%B9%A0%E8%AF%B4%E6%98%8E)\n- [目录\u0026源码](https://github.com/fuzhengwei/guide-idea-plugin#pencil-%E7%AB%A0%E8%8A%82%E7%9B%AE%E5%BD%95)\n- [问题交流](https://github.com/fuzhengwei/guide-idea-plugin#paw_prints-%E9%97%AE%E9%A2%98%E4%BA%A4%E6%B5%81)\n\n## :bookmark: 学习说明\n\n`我又要冲IDEA插件开发了！`\n\nIDEA Plugin 插件开发可以帮助研发人员提升能效，解决一些实际场景中的共性问题。但最近在折腾IDEA插件开发的时候，市面的资料确实不多，也没有成体系完整的开发指导手册，所以就遇到了很多不知道就不会的事情，需要一点点查询搜索源码、验证API接口，最终把各项功能实现，当然在这个过程中也确实踩了不少坑！接下来在这个专栏会把一些关于 IDEA 插件开发用到的各项知识做成案例输出出来，帮助有需要的研发伙伴，一起建设 IDEA Plugin\n\n![](https://bugstack.cn/assets/images/middleware/middleware-5-2.png)\n\n- 开发方式：在官网的描述中，创建IDEA插件工程的方式有两种分别是，IntelliJ Platform Plugin 模版创建和 Gradle 构建方式。\n- 框架入口：一个 IDEA 插件开发完，要考虑把它嵌入到哪，比如是从 IDEA 窗体的 Edit、Tools 等进入配置还是把窗体嵌入到左、右工具条还是IDEA窗体下的对话框。\n- UI：思考的是窗体需要用到什么语言开发，没错，用的就是 Swing、Awt 的技术能力。\n- API：在 IDEA 插件开发中，一般都是围绕工程进行的，那么基本要从通过 IDEA 插件 JDK 开发能力中获取到工程信息、类信息、文件信息等。\n- 外部功能：这一个是用于把插件能力与外部系统结合，比如你是需要把拿到的接口上传到服务器，还是从远程下载文件等等。\n\n![](https://github.com/fuzhengwei/guide-idea-plugin/blob/main/docs/knowledge-220123-01.png)\n\n- 📚PDF下载：[https://download.csdn.net/download/Yao__Shun__Yu/77484299](https://download.csdn.net/download/Yao__Shun__Yu/77484299)\n\n## :pencil: 目录\n\n- 第1章：开发入门\n\n    - [第1节：IDEA 插件怎么开发](https://bugstack.cn/md/assembly/idea-plugin/2021-08-27-%E6%8A%80%E6%9C%AF%E8%B0%83%E7%A0%94%EF%BC%8CIDEA%20%E6%8F%92%E4%BB%B6%E6%80%8E%E4%B9%88%E5%BC%80%E5%8F%91%EF%BC%9F.html)\n    - [第2节：IDEA 插件怎么发布](https://bugstack.cn/md/assembly/idea-plugin/2021-08-29-%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5%EF%BC%8CIDEA%20%E6%8F%92%E4%BB%B6%E6%80%8E%E4%B9%88%E5%8F%91%E5%B8%83%EF%BC%9F.html)\n\n- 第2章：基础功能\n\n    - [第3节：两种方式创建插件工程](https://bugstack.cn/md/assembly/idea-plugin/2021-10-18-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC%E4%B8%80%E8%8A%82%EF%BC%9A%E4%B8%A4%E7%A7%8D%E6%96%B9%E5%BC%8F%E5%88%9B%E5%BB%BA%E6%8F%92%E4%BB%B6%E5%B7%A5%E7%A8%8B.html)\n        - [`guide-idea-plugin-create-project-by-platform`](https://github.com/fuzhengwei/guide-idea-plugin-create-project-by-platform)\n        - [`guide-idea-plugin-create-project-by-gradle`](https://github.com/fuzhengwei/guide-idea-plugin-create-project-by-gradle)\n    - [第4节：配置窗体和侧边栏窗体的使用](https://bugstack.cn/md/assembly/idea-plugin/2021-11-03-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC%E4%BA%8C%E8%8A%82%EF%BC%9A%E9%85%8D%E7%BD%AE%E7%AA%97%E4%BD%93%E5%92%8C%E4%BE%A7%E8%BE%B9%E6%A0%8F%E7%AA%97%E4%BD%93%E7%9A%84%E4%BD%BF%E7%94%A8.html)\n        - [`guide-idea-plugin-tool-window`](https://github.com/fuzhengwei/guide-idea-plugin-tool-window)\n    - [第5节：开发工具栏和Tab页，展示股票行情和K线](https://bugstack.cn/md/assembly/idea-plugin/2021-11-18-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC%E4%B8%89%E8%8A%82%EF%BC%9A%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E6%A0%8F%E5%92%8CTab%E9%A1%B5%EF%BC%8C%E5%B1%95%E7%A4%BA%E8%82%A1%E7%A5%A8%E8%A1%8C%E6%83%85%E5%92%8CK%E7%BA%BF.html)\n        - [`guide-idea-plugin-tab`](https://github.com/fuzhengwei/guide-idea-plugin-tab)\n\n- 第3章：基建设计\n\n    - [第6节：扩展创建工程向导步骤，开发DDD脚手架](https://bugstack.cn/md/assembly/idea-plugin/2021-11-24-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC%E5%9B%9B%E8%8A%82%EF%BC%9A%E6%89%A9%E5%B1%95%E5%88%9B%E5%BB%BA%E5%B7%A5%E7%A8%8B%E5%90%91%E5%AF%BC%E6%AD%A5%E9%AA%A4%EF%BC%8C%E5%BC%80%E5%8F%91DDD%E8%84%9A%E6%89%8B%E6%9E%B6.html)\n        - [`guide-idea-plugin-scaffolding`](https://github.com/fuzhengwei/guide-idea-plugin-scaffolding)\n    - [第7节：IDEA工程右键菜单，自动生成ORM代码](https://bugstack.cn/md/assembly/idea-plugin/2021-12-08-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC%E4%BA%94%E8%8A%82%EF%BC%9AIDEA%E5%B7%A5%E7%A8%8B%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%EF%BC%8C%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90ORM%E4%BB%A3%E7%A0%81.html)\n        - [`guide-idea-plugin-orm`](https://github.com/fuzhengwei/guide-idea-plugin-orm)\n    - [第8节：选定对象批量织入“x.set(y.get)”代码，自动生成vo2dto](https://bugstack.cn/md/assembly/idea-plugin/2021-12-14-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC%E5%85%AD%E8%8A%82%EF%BC%9A%E4%BB%A5%E7%BB%87%E5%85%A5%E4%BB%A3%E7%A0%81%E7%9A%84%E6%96%B9%E5%BC%8F%EF%BC%8C%E8%87%AA%E5%8A%A8%E5%A4%84%E7%90%86vo2dto.html)\n        - [`guide-idea-plugin-vo2dto`](https://github.com/fuzhengwei/guide-idea-plugin-vo2dto)\n\n- 第4章：辅助工具\n    \n    - [第9节：通过Inspection机制，对静态代码安全审查](https://bugstack.cn/md/assembly/idea-plugin/2021-12-22-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC7%E8%8A%82%EF%BC%9A%E9%80%9A%E8%BF%87Inspection%E6%9C%BA%E5%88%B6%EF%BC%8C%E4%B8%BA%E9%9D%99%E6%80%81%E4%BB%A3%E7%A0%81%E5%AE%89%E5%85%A8%E5%AE%A1%E6%9F%A5.html)\n        - [`guide-idea-plugin-pmd`](https://github.com/fuzhengwei/guide-idea-plugin-pmd)\n    - [第10节：在插件中引入探针，基于字节码插桩获取执行SQL](https://bugstack.cn/md/assembly/idea-plugin/2022-01-17-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC8%E8%8A%82%EF%BC%9A%E5%9C%A8%E6%8F%92%E4%BB%B6%E4%B8%AD%E5%BC%95%E5%85%A5%E6%8E%A2%E9%92%88%EF%BC%8C%E5%9F%BA%E4%BA%8E%E5%AD%97%E8%8A%82%E7%A0%81%E6%8F%92%E6%A1%A9%E8%8E%B7%E5%8F%96%E6%89%A7%E8%A1%8CSQL.html)\n        - [`guide-idea-plugin-probe`](https://github.com/fuzhengwei/guide-idea-plugin-probe)\n    - [第11节：基于IDEA插件开发和字节码插桩技术，实现研发交付质量自动分析](https://bugstack.cn/md/assembly/idea-plugin/2022-01-23-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC10%E8%8A%82%EF%BC%9A%E5%9F%BA%E4%BA%8E%E5%AD%97%E8%8A%82%E7%A0%81%E6%8F%92%E6%A1%A9%E9%87%87%E9%9B%86%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%AE%9E%E7%8E%B0%E4%BB%A3%E7%A0%81%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E8%87%AA%E5%8A%A8%E5%88%86%E6%9E%90.html)\n        - *本章节可以参考小傅哥的字节码编程系列文章，以及文中案例，编写即可*\n    - [第12节：加载文件生成链表单词树，输入属性时英文校准提醒](https://bugstack.cn/md/assembly/idea-plugin/2022-01-22-%E3%80%8AIntelliJ%20IDEA%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E3%80%8B%E7%AC%AC9%E8%8A%82%EF%BC%9A%E5%8A%A0%E8%BD%BD%E6%96%87%E4%BB%B6%E7%94%9F%E6%88%90%E9%93%BE%E8%A1%A8%E5%8D%95%E8%AF%8D%E6%A0%91%EF%BC%8C%E8%BE%93%E5%85%A5%E5%B1%9E%E6%80%A7%E6%97%B6%E8%8B%B1%E6%96%87%E6%A0%A1%E5%87%86%E6%8F%90%E9%86%92.html)\n        - [`guide-idea-plugin-remind`](https://github.com/fuzhengwei/guide-idea-plugin-remind)\n\n## :paw_prints: 问题交流\n\n![](https://github.com/fuzhengwei/small-spring/blob/main/docs/assets/img/bugstack-md.png?raw=true)\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/fuzhengwei/CodeGuide\"\u003e关注小傅哥，你可以学到的更多！\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e  \n\n- **加群交流**\n\n    本群的宗旨是给大家提供一个良好的技术学习交流平台，所以杜绝一切广告！由于微信群人满 100 之后无法加入，请扫描下方二维码先添加作者 “小傅哥” 微信(fustack)，备注：`Spring学习加群`。\n    \n    \u003cimg src=\"https://bugstack.cn/images/personal/fustack.png\" width=\"180\" height=\"180\"/\u003e\n\n- **公众号(bugstack虫洞栈)**\n\n    沉淀、分享、成长，专注于原创专题案例，以最易学习编程的方式分享知识，让自己和他人都能有所收获。目前已完成的专题有；Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、DDD专题案例、源码分析等。\n    \n    \u003cimg src=\"https://bugstack.cn/images/personal/qrcode.png\" width=\"180\" height=\"180\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuzhengwei%2Fguide-idea-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuzhengwei%2Fguide-idea-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuzhengwei%2Fguide-idea-plugin/lists"}