package fr.adrienbrault.idea.symfony2plugin.navigation.controller; import com.intellij.psi.PsiElement; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.dic.RelatedPopupGotoLineMarker; import fr.adrienbrault.idea.symfony2plugin.extension.ControllerActionGotoRelatedCollector; import fr.adrienbrault.idea.symfony2plugin.extension.ControllerActionGotoRelatedCollectorParameter; import fr.adrienbrault.idea.symfony2plugin.routing.Route; import fr.adrienbrault.idea.symfony2plugin.routing.RouteHelper; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class RouteControllerRelatedGotoCollector implements ControllerActionGotoRelatedCollector { @Override public void collectGotoRelatedItems(ControllerActionGotoRelatedCollectorParameter parameter) { for(Route route: RouteHelper.getRoutesOnControllerAction(parameter.getMethod())) { PsiElement routeTarget = RouteHelper.getRouteNameTarget(parameter.getProject(), route.getName()); if(routeTarget != null) { parameter.add(new RelatedPopupGotoLineMarker.PopupGotoRelatedItem(routeTarget, route.getName()).withIcon(Symfony2Icons.ROUTE, Symfony2Icons.ROUTE_LINE_MARKER)); } } } }