很想知道 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 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
?
标识符本身没有任何引用,因此您需要使用 PsiElement.getParent()
在树上向上移动,直到找到一个确实有引用的元素。
ReferencesSearch.search(elem)
查找指向 到 指定元素的引用,这与您需要的相反。
在 IntelliJ 插件中,我想从源代码中获取 PsiElement
SOME_CONST
的值 10
,例如:
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
?
标识符本身没有任何引用,因此您需要使用 PsiElement.getParent()
在树上向上移动,直到找到一个确实有引用的元素。
ReferencesSearch.search(elem)
查找指向 到 指定元素的引用,这与您需要的相反。