package com.haskforce.psi.references;
import com.haskforce.HaskellLanguage;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiNamedElement;
import com.intellij.psi.PsiReference;
import com.intellij.psi.PsiReferenceProvider;
import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NotNull;
/**
* Injects additional references into elements that supports
* reference contributors
*/
public class HaskellReferenceProvider extends PsiReferenceProvider {
@NotNull
@Override
public PsiReference[] getReferencesByElement(@NotNull PsiElement element,
@NotNull ProcessingContext context) {
if (!element.getLanguage().is(HaskellLanguage.INSTANCE)) {
return PsiReference.EMPTY_ARRAY;
}
if (element instanceof PsiNamedElement) {
PsiNamedElement se = (PsiNamedElement) element;
return new PsiReference[]{new HaskellReference(se, se.getTextRange())};
}
return PsiReference.EMPTY_ARRAY;
}
}