PSI元素

走着路睡觉大约 1 分钟

PSI元素

PSI (Program Structure Interface) 文件表示PSI元素的结构(也称之为PSI树)。一个单独的PSI文件(它也是一个PSI元素)可能有多个PSI树(一种编程语言对应一个PSI树,可以查看文档:文件查看器 )。一个PSI元素也可以有 子PSI元素

PSI 元素和单个 PSI 元素级别的操作用于查看源代码在 IntelliJ Platform 中表示出来的内部结构。例如,你可以使用PSI元素分析代码,像代码检查open in new windowintention actionsopen in new window.

PsiElementopen in new window 是所有PSI元素的基类。

如何获取PSI元素

ContextAPI
ActionAnActionEvent.getData(CommonDataKeys.PSI_ELEMENT) open in new window
注意:如果在打开的文本中,文本插件符所在的位置正好是引用对象(Reference ) ,该方法将解析引用对象,对返回引用对象的本体)
PSI FilePsiFile.findElementAt(offset)open in new window :返回指定位置的叶子元素,通常是lexer token. 使用 PsiTreeUtil.getParentOfType() 查找父元素中指定类型的元素
PsiRecursiveElementWalkingVisitoropen in new window
ReferencePsiReference.resolve()open in new window

PSI元素能干啥

参考 PSI功能手册

上次编辑于:
贡献者: zhaojingbo
Loading...