很想知道 PsiElement 标识符的定义吗?

Hot to get the definition of an identifier of a PsiElement?

在 IntelliJ 插件中,我想从源代码中获取 PsiElement SOME_CONST 的值 10,例如:

package mypackage;
public class Example {
  public void someMethod() {
    otherMethod(SOME_CONST);
  }
...
  private static final int SOME_CONST = 10;
}

我有 PsiElement elemSOME_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

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

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