package fr.adrienbrault.idea.symfony2plugin.external.locator;
import com.intellij.psi.PsiElement;
import de.espend.idea.php.toolbox.extension.PhpToolboxTargetLocator;
import de.espend.idea.php.toolbox.navigation.locator.TargetLocatorParameter;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.TwigHelper;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class TwigFileToolboxTargetLocator implements PhpToolboxTargetLocator {
@NotNull
@Override
public Collection<PsiElement> getTargets(@NotNull TargetLocatorParameter parameter) {
if(!Symfony2ProjectComponent.isEnabled(parameter.getProject())) {
return Collections.emptyList();
}
String target = parameter.getTarget();
if(!target.toLowerCase().endsWith(".twig")) {
return Collections.emptyList();
}
Collection<PsiElement> psiElements = new HashSet<>();
Collections.addAll(psiElements, TwigHelper.getTemplatePsiElements(parameter.getProject(), target));
return psiElements;
}
}