【发布时间】:2020-03-05 05:31:25
【问题描述】:
我想制作一个插件,为某些特定的 kotlin 文件生成一些模板代码。现在我需要从 PsiElement 或 VirtualFile 获取 KtClass。我尝试了一些代码如下,但它不起作用。
val psiFile = e.getData(CommonDataKeys.PSI_FILE)
psiFile ?: return
val editor = e.getData(CommonDataKeys.EDITOR)
editor ?: return
println(psiFile.name)
val pe = psiFile.findElementAt(editor.caretModel.offset)
if (pe != null) {
println(pe.text)
} else {
println("PE is null")
}
val kt = PsiTreeUtil.getParentOfType(pe, KtClass::class.java)
kt?.run {
println(this.text)
}
PS:我发现有2个PsiTreeUtils,一个来自org.jetbrains.kotlin.com.intellij.psi.util包,一个来自com.intellij.psi.util,不知道该用哪个
【问题讨论】:
标签: intellij-plugin intellij-platform-psi