package com.igormaznitsa.ideamindmap.lang.refactoring.references.providers; import com.igormaznitsa.ideamindmap.lang.psi.PsiExtraFile; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.psi.PsiReferenceProvider; import com.intellij.util.ProcessingContext; import javax.annotation.Nonnull; public class PsiExtraFileReferenceProvider extends PsiReferenceProvider { @Nonnull @Override public PsiReference[] getReferencesByElement(@Nonnull PsiElement element, @Nonnull ProcessingContext context) { PsiReference[] result = PsiReference.EMPTY_ARRAY; final PsiExtraFile extraFile = (PsiExtraFile) element; final VirtualFile targetFile = extraFile.findTargetFile(); if (targetFile != null) { final TextRange range = new TextRange(0, extraFile.getTextLength()); result = new PsiReference[] { new PsiExtraFileReference(extraFile, range) }; } return result; } }