package com.haskforce.psi.references;
import com.haskforce.HaskellLanguage;
import com.haskforce.psi.HaskellGendecl;
import com.haskforce.psi.HaskellVars;
import com.intellij.patterns.PsiElementPattern;
import com.intellij.psi.PsiNamedElement;
import com.intellij.psi.PsiReferenceContributor;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.psi.PsiReferenceRegistrar;
/**
* Adds references so they later can be resolved.
*/
public class HaskellReferenceContributor extends PsiReferenceContributor {
@Override
public void registerReferenceProviders(PsiReferenceRegistrar registrar) {
PsiElementPattern.Capture<PsiNamedElement> variableCapture =
PlatformPatterns.psiElement(PsiNamedElement.class).withParent(HaskellVars.class).withParent(HaskellGendecl.class).withLanguage(HaskellLanguage.INSTANCE);
registrar.registerReferenceProvider(variableCapture,
new HaskellReferenceProvider());
}
}