PSI元素

原文链接:
http://www.jetbrains.org/intellij/sdk/docs/basics/architectural_overview/psi_elements.html

PSI(程序结构接口)文件表示PSI元素的层次结构(所谓的PSI树)。 单个PSI文件可以包括特定编程语言中的若干PSI树。 PSI元素又可以具有子PSI元素。

PSI元素和单个PSI元素级别上的操作用于探索源代码的内部结构,这由IntelliJ平台解释。例如你可以使用PSI元素进行代码分析,如代码检查或意图操作。

PsiElement类是PSI元素的基类。

我怎样得到一个PSI元素?

  • 操作:e.getData(LangDataKeys.PSI_ELEMENT)

注意:如果当前编辑器打开并且光标所在元素是引用,这将返回解析引用的结果。 这可能不是你所需要的。

  • 文件偏移: PsiFile.findElementAt()

注意:这返回指定偏移量最低级别的元素,通常是一个词法记号。大多数情况,你需要使用PsiTreeUtil.getParentOfType() 找出你真正需要的元素。

  • 迭代PSI文件:使用PsiRecursiveElementWalkingVisitor
  • 解析引用:PsiReference.resolve()

我能用它来做什么?

查看PSI指导手册

你可能感兴趣的:(PSI元素)