关于SDK文档指南
通过阅读IntelliJ源代码,大致将代码分为以下几部分,此划分非出自官方难免有些纰漏,了解各部分的功能会对开发工作有很大帮助。
Base Platform:包括基础平台支持,多线程任务,消息传递,Project Structure工程结构,library,SDK等。
Action System:Action动作系统,开发者可以通过插件向菜单和工具栏添加新项目来自定义IntelliJ平台UI。
PSI:构建丰富的代码语法和语义模型,代码完成代码检测都是基于此完成。
VFS:它封装了大部分对活动文件的处理操作,在不同平台上提供了统一的文件API。
GUI: 常用界面的封装,对话框,工具栏,文件选择器,Notification等。
Editor Basics:获取文档,文本操作,代码定位,编辑器事件处理系统。
Plugin:插件机制,让第三方可以扩展IDE功能。
Others:其他功能,代码检测,代码完成等其他工具代码。
本指南分为几个部分,类似于教科书. 每个部分都基于前一部分的内容,但没有必要按顺序阅读指南. Key Topics页面旨在链接到能够理解体系结构并开始构建插件所必需的页面.
All source links and reference lists target IntelliJ Platform 2022.2.1.
第一部分 — 插件
描述如何创建可以扩展 IntelliJ Platform 的插件. 包括有关如何设置项目,注册扩展点,确定 IntelliJ Platform 的特定版本以及如何打包,部署和测试插件的详细信息.
第二部分 — 基础平台
描述了体系结构的基础层,它提供了许多功能和实用程序,例如组件模型,用户界面,文档和编辑器,虚拟文件系统,设置和线程以及后台任务. 基础平台层基本上包含 IntelliJ Platform 的功能,该功能不针对语言功能或解析.
第三部分 — 项目模型
项目模型文档,它表示当前加载的项目的文件和配置,以及用于构建项目的构建系统.
第四部分 — PSI
Program Structure Interface 程序结构接口(PSI)为许多不同的文件类型构建语法和语义模型. 本节介绍如何使用PSI,导航和操作语法树,还介绍了强大的引用系统,它允许语法树节点引用语义模型中的项. 它还详细说明了PSI如何创建和使用索引.
第五部分 — 功能
Describes how to extend and interact with various features that use the PSI layer, such as code completion, navigation, Alt+Enter items, intentions, refactorings, and more. See also the section on Custom Languages below for language-specific features that are only applicable when adding support for a new language.
第六部分 — 测试
描述用于编写涵盖插件功能的自动化测试的可用基础结构.
第七部分 — 自定义语言
插件经常扩展对现有语言的支持,例如向Java文件添加检查. 本节介绍如何为 IntelliJ Platform 添加对新语言的支持, 从默认情况下不支持该语言,创建解析器,语法和语义模型以及构建在顶层的所有功能.
第八部分 — 产品特定
IntelliJ Platform 中的许多功能都是语言和产品无关的. 例如,代码检查在Java中的工作方式与在Ruby中的工作方式相同,只是语法树和语义信息不同. 本节介绍产品特定功能,例如特定项目模型差异以及如何在插件中定位它们.
第九部分 — 自定义IDE
记录如何使用 IntelliJ Platform 创建新的自定义IDE, 而不是给现有产品添加插件,例如 WebStorm或Android Studio.
附录I — 资源
链接到有用的资源, 术语, 扩展点和监听器列表, 探索 IntelliJ Platform API 如何浏览API的技巧以及 学习资源.
附录 II — API和兼容性
了解 验证插件兼容性 和 backwards-incompatible API 改动以及每个主要IntelliJ Platform版本中的 值得留意的API改动以及新功能.
附录 III — 工具
常用的有用工具及指南 Gradle IntelliJ Plugin.