我正在Kotlin为Java和Kotlin文件编写一个Intellij插件。 以下代码适用于Java文件:
val node: ASTNode
....
val referencedFieldElement = node.psi.reference!!.resolve()
但它不适用于Kotlin文件,因为没有resolve()方法调用,node.psi.reference返回null。
如何解决Kotlin参考?
我也有一个PsiElement
Kotlin参考。我怎样才能解决它的价值?
以下是一些代码:
class KotlinFoldingBuilder : FoldingBuilderEx() {
override fun buildFoldRegions(root: PsiElement, document: Document, quick: Boolean): Array<FoldingDescriptor> {
....
}
override fun getPlaceholderText(node: ASTNode): String? {
val referencedFieldElement = node.psi.reference!!.resolve()
return referencedFieldElement
}
override fun isCollapsedByDefault(node: ASTNode): Boolean {
return true
}
}
node.psi.reference!!.resolve()
适用于Java文件,但对于Kotlin文件,node.psi.reference
返回null。