【发布时间】:2017-12-01 23:53:01
【问题描述】:
我想构建一个 Intellij 插件,用某些注释来识别 scala 类。
例如:
@RunWith(classOf[SimpleTestRunner])
当我使用 PSIViewer 插件为最后一个代码段构建 PSITree 时,我得到了这棵树
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”访问子级,我知道如何递归访问树,但不知道要查找什么。
那么有人可以告诉我代表这些元素的接口是什么,或者是否有某种实用程序类可以帮助我这样做?
【问题讨论】:
标签: java scala intellij-idea intellij-plugin