package com.nvlad.yii2support.objectfactory;
import com.intellij.patterns.ElementPattern;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReferenceRegistrar;
import com.jetbrains.php.lang.psi.elements.ArrayCreationExpression;
import com.jetbrains.php.lang.psi.elements.StringLiteralExpression;
import com.nvlad.yii2support.common.Patterns;
import com.nvlad.yii2support.views.ViewsUtil;
import org.jetbrains.annotations.NotNull;
public class ObjectFactoryReferenceContributor extends com.intellij.psi.PsiReferenceContributor {
@Override
public void registerReferenceProviders(@NotNull PsiReferenceRegistrar psiReferenceRegistrar) {
psiReferenceRegistrar.registerReferenceProvider(ElementPattern(), new ObjectFactoryReferenceProvider());
}
private static ElementPattern<PsiElement> ElementPattern() {
return PlatformPatterns.psiElement()
.withParent(PlatformPatterns.or(
PlatformPatterns.psiElement().withParent(ArrayCreationExpression.class),
Patterns.withHashKey()
.withParent(PlatformPatterns.psiElement().withParent(ArrayCreationExpression.class))
));
}
}