平台与插件开发概览¶
IntelliJ Platform 是 JetBrains IDE 的公共底座。插件通过扩展点、Action、服务、编辑器 API、PSI、VFS、索引、UI 组件和构建系统接入 IDE,从而实现语言支持、框架支持、代码分析、代码生成、工具窗口、调试器集成、项目模型集成等能力。
你在开发什么¶
常见插件可以分成几类:
| 插件类型 | 典型能力 | 常用 API |
|---|---|---|
| IDE UI 扩展 | 菜单、工具栏、弹窗、Tool Window、设置页 | Action System、Swing UI DSL、Configurable |
| 编辑器增强 | 补全、跳转、提示、意图动作、代码检查 | Completion、Reference、Annotator、Inspection、Intention |
| 语言支持 | 词法、语法、PSI、格式化、重构、运行配置 | Lexer、Parser、PsiElement、Formatter、RunConfiguration |
| 项目/构建集成 | 导入外部项目、同步依赖、识别模块 | Project Model、External System、Workspace Model |
| 发布型产品插件 | Marketplace、签名、兼容性验证、渠道发布 | Gradle Plugin、Plugin Verifier、Marketplace API |
基本组成¶
一个插件通常包含:
build.gradle.kts:声明 IntelliJ Platform Gradle Plugin、目标 IDE、依赖插件、测试框架和发布配置。src/main/resources/META-INF/plugin.xml:插件元数据、依赖、扩展点、Action、服务声明。- Kotlin 或 Java 源码:实现 Action、服务、扩展、检查、补全等逻辑。
src/test与testData:面向 IDE 模型的功能测试。- 图标、HTML 描述、消息资源文件:用于 Marketplace、检查说明、国际化等。
推荐技术栈¶
新项目建议使用:
- Kotlin 作为主要语言。
- IntelliJ Platform Gradle Plugin 2.x。
- JDK 版本跟随目标平台:2024.2 及之后的平台通常使用 Java 21;2022.3 及之后至少使用 Java 17。
- JetBrains Plugin Verifier 验证兼容性。
- GitHub Actions 或其他 CI 自动运行测试、构建、验证和发布。
兼容性思维¶
插件开发最大的长期成本通常不是第一个功能,而是跨 IDE 版本维护:
- 插件 ID 发布后不要修改,否则已有用户无法自然升级。
- 不要依赖
internal、impl或未标记为开放 API 的类,除非你愿意承担升级成本。 - 对 IDE 构建号使用清晰的
since-build,谨慎设置until-build。 - 每次升级目标平台时运行测试和 Plugin Verifier。
- 关注官方的 Incompatible Changes 页面和 Marketplace Developer News。