首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在intellij中探索PSITree?

如何在intellij中探索PSITree?
EN

Stack Overflow用户
提问于 2017-06-28 14:31:46
回答 1查看 119关注 0票数 1

我想要构建一个Intellij插件,它用特定的注释标识scala类。

例:

代码语言:javascript
复制
@RunWith(classOf[SimpleTestRunner])

当我使用最后一个代码段的PSITree插件构建PSIViewer时,我得到了这个树

代码语言:javascript
复制
ScalaFile:Dummy.scala(0,36)
  PsiErrorElement:Wrong top statement declaration(0,0)
    <empty list>
  PsiElement(@)('@')(0,1)
  MethodCall(1,35)
    ReferenceExpression: RunWith(1,8)
      PsiElement(identifier)('RunWith')(1,8)
    ArgumentList(8,35)
      PsiElement(()('(')(8,9)
      GenericCall(9,34)
        ReferenceExpression: classOf(9,16)
          PsiElement(identifier)('classOf')(9,16)
        TypeArgumentsList(16,34)
          PsiElement([)('[')(16,17)
          SimpleType: SimpleTestRunner(17,33)
            CodeReferenceElement: SimpleTestRunner(17,33)
              PsiElement(identifier)('SimpleTestRunner')(17,33)
          PsiElement(])(']')(33,34)
      PsiElement())(')')(34,35)

现在,我尝试使用导航元素"ReferenceExpression,ArgumentList,GenericCall“访问子节点,我知道如何递归访问树,但不知道该查找什么。

那么,有人能告诉我表示这些元素的接口是什么吗?或者有某种实用类可以帮助我这样做吗?

EN

Stack Overflow用户

回答已采纳

发布于 2017-06-28 19:22:23

我想你有Scala插件的源代码吧?

接口(实际上是Scala特性)是在org.jetbrains.plugins.scale.lang.psi.api包中定义的。例如,您可以在那里找到./expr/ScGenericCall.scala。树中的每个元素都有一个相应的Sc.scala文件来定义它。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44805485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档