@Nullable
 private static PsiReference findReferenceAt(final PsiFile psiFile, final int offset) {
   if (psiFile == null) return null;
   int offsetInElement = offset;
   PsiElement child = psiFile.getFirstChild();
   while (child != null) {
     final int length = child.getTextLength();
     if (length <= offsetInElement) {
       offsetInElement -= length;
       child = child.getNextSibling();
       continue;
     }
     return child.findReferenceAt(offsetInElement);
   }
   return null;
 }