Я пытаюсь получить PsiClass из файла Kotlin (экземпляр PsiFile - KtFile), но всегда получает значение NULL, в случае Java успешно.
PsiFile psiFile = e.getData(CommonDataKeys.PSI_FILE);
Editor editor = e.getData(CommonDataKeys.EDITOR);
// null in kotlin
PsiClass psiClass = getPsiClass(editor, psiFile);
.....
private PsiClass getPsiClass(Editor editor, PsiFile file) {
int offset = editor.getCaretModel().getOffset();
PsiElement element = file.findElementAt(offset);
if (element == null)
element = file.findElementAt(offset - 1);
if (element == null) {
return null;
} else {
PsiClass target = (PsiClass) PsiTreeUtil.getParentOfType(element, PsiClass.class);
if (target == null) {
element = file.findElementAt(offset - 1);
if (element == null)
return null;
target = (PsiClass) PsiTreeUtil.getParentOfType(element, PsiClass.class);
}
return target instanceof SyntheticElement ? null : target;
}
}