Idea Plugin Dev-15-07-xml doc api
XML DOM API
本文适用于创建自定义 Web 服务器集成或一些 UI 以轻松编辑 XML 的插件作者。
它描述了 IntelliJ 平台中的文档对象模型 (DOM) -
一种使用 DTD 或基于模式的 XML 模型的简单方法。 将涵盖以下主题:使用 DOM 本身(读/写标签内容、属性和子标签)以及通过将 UI 连接到 DOM 在 UI 中轻松编辑 XML。
假定读者熟悉 Ja...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-06-UAST - Unified Abstract Syntax Tree
UAST
UAST(统一抽象语法树)是针对 JVM(Java 虚拟机)的不同编程语言的 PSI 上的抽象层。
它提供了一个统一的 API,用于处理公共语言元素,如类和方法声明、文字值和控制流运算符。
不同的 JVM 语言有自己的 PSI,但许多 IDE 功能,如检查、装订线标记、引用注入和许多其他功能,对所有这些语言都以相同的方式工作。
使用 UAST 允许使用单一实现提供可在所有支...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-05-Element Patterns
Element Patterns
元素模式提供了一种通用的方式来指定对象的条件。
插件作者使用它们来检查 PSI 元素是否匹配特定结构。
正如字符串的正则表达式测试(子)字符串是否与特定模式匹配一样,元素模式用于对 PSI 元素的嵌套结构设置条件。
它们在 IntelliJ 平台中的两个主要应用程序是:
指定在为自定义语言实现完成贡献者时应在何处进行自动完成。
指定通过 PSI ...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-04-Indexing and PSI Stubs
索引
索引框架提供了一种快速定位特定元素的方法,例如,在大型代码库中包含特定单词或具有特定名称的方法的文件。
插件开发者可以使用IDE自身构建的现有索引,也可以构建和使用自己的索引。
它支持两种主要类型的索引:
基于文件的索引
存根索引
基于文件的索引直接建立在文件的内容之上。
存根索引建立在序列化的存根树之上。
源文件的存根树是其 ...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-03-PSI cookbook
PSI Cookbook
此页面提供了使用 PSI(程序结构接口)的最常见操作的方法。
与开发自定义语言插件不同,它是关于使用现有语言(例如 Java)的 PSI。
一般
如果我知道文件的名称但不知道路径,如何找到文件?
FilenameIndex.getFilesByName()
我如何找到使用特定 PSI 元素的位置?
ReferencesSearch.search()
...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-02-File View Providers
FileViewProvider
文件视图提供程序 (FileViewProvider) 管理对单个文件中多个 PSI 树的访问。
例如,一个 JSPX 页面有一个单独的 PSI 树用于其中的 Java 代码 (PsiJavaFile),一个单独的树用于 XML 代码 (XmlFile),一个单独的树用于整个 JSP (JspFile)。
每个 PSI 树都覆盖了文件的全部内容,并在可...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-15-01-什么是 PSI? Program Structure Interface (PSI)
PSI
程序结构接口,通常简称为 PSI,是 IntelliJ 平台中的一个层,负责解析文件和创建语法和语义代码模型,为平台的许多功能提供支持。
PSI files
PSI(程序结构接口)文件是结构的根,将文件内容表示为特定编程语言中元素的层次结构。
PsiFile 类是所有 PSI 文件的公共基类,而特定语言的文件通常由其子类表示。
例如,PsiJavaFile 类表示一个 Ja...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-14-01-Project Structure
Project Structure
本主题考虑基于 IntelliJ 平台和相关主题的项目概念,例如模块、构面、库和 SDK。 讨论了可用于管理项目和模块的项目结构和 Java 类。
项目及其组件 Project and Its Components
本节简要讨论 IDEA 项目结构、项目组件和相关术语。
有关项目及其组件的更多信息,请参阅 IntelliJ IDEA Web 帮助...
2017-10-13 02:24:52 |
Java