热得到PsiElement标识符的定义?

时间:2017-05-13 11:56:03

标签: java intellij-idea intellij-plugin

在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

1 个答案:

答案 0 :(得分:1)

标识符本身没有任何引用,因此您需要使用PsiElement.getParent()向上移动树,直到找到具有引用的元素。

ReferencesSearch.search(elem)找到将指向指定元素的引用,这与您需要的相反。