Intellij Idea插件:解析Kotlin参考的方法是什么

时间:2018-01-05 10:32:13

标签: kotlin intellij-plugin

我正在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。

0 个答案:

没有答案