下面列出了怎么用com.intellij.psi.impl.source.resolve.reference.impl.providers.PsiFileReference的API类实例代码及写法,或者点击链接到github查看源代码。
private static PsiElement bindElement(final PsiElement element, PsiFileSystemItem item) {
if (item != null && item.isValid() && item.getVirtualFile() != null) {
PsiReference[] refs = element.getReferences();
for (PsiReference ref : refs) {
if (ref instanceof FileReferenceOwner) {
final PsiFileReference fileReference = ((FileReferenceOwner)refs[0]).getLastFileReference();
if (fileReference != null) {
try {
PsiElement newElement = fileReference.bindToElement(item);
if (newElement != null) {
// assertion for troubles like IDEA-59540
LOG.assertTrue(element.getClass() == newElement.getClass(), "Reference " + ref + " violated contract of bindToElement()");
}
return newElement;
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
}
break;
}
}
}
return element;
}
@Override
public PsiFileReference getLastFileReference() {
for (PsiReference reference : myReferences) {
if (reference instanceof FileReferenceOwner) {
return ((FileReferenceOwner)reference).getLastFileReference();
}
}
return null;
}
@Nullable
@Override
public PsiFileReference getLastFileReference() {
return this;
}