跳转至

平台与插件开发概览

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/testtestData:面向 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 发布后不要修改,否则已有用户无法自然升级。
  • 不要依赖 internalimpl 或未标记为开放 API 的类,除非你愿意承担升级成本。
  • 对 IDE 构建号使用清晰的 since-build,谨慎设置 until-build
  • 每次升级目标平台时运行测试和 Plugin Verifier。
  • 关注官方的 Incompatible Changes 页面和 Marketplace Developer News。

官方文档入口