在IntelliJ插件中,我希望从源代码中获取10
PsiElement
的值SOME_CONST
:
package mypackage;
public class Example {
public void someMethod() {
otherMethod(SOME_CONST);
}
...
private static final int SOME_CONST = 10;
}
我有PsiElement elem
SOME_CONST
。我想我必须以某种方式找到参考文献。但我只找到空名单。例如:
public void actionPerformed(AnActionEvent e) {
...
final int offset = editor.getCaretModel().getOffset();
final PsiElement elem = psiFile.findElementAt(offset);
final PsiReference[] references = elem.getReferences();
references
长度为零。
这也找不到任何东西:
final Query<PsiReference> refs = ReferencesSearch.search(elem);
final PsiReference ref = refs.findFirst();
如何访问10
?
答案 0 :(得分:1)
标识符本身没有任何引用,因此您需要使用PsiElement.getParent()
向上移动树,直到找到具有引用的元素。
ReferencesSearch.search(elem)
找到将指向指定元素的引用,这与您需要的相反。