类com.intellij.psi.impl.source.resolve.reference.impl.providers.PsiFileReference源码实例Demo

下面列出了怎么用com.intellij.psi.impl.source.resolve.reference.impl.providers.PsiFileReference的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: consulo   文件: FileReferenceContextUtil.java
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;
}
 
源代码2 项目: consulo   文件: PsiDynaReference.java
@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;
}
 
 类所在包
 类方法
 同包方法