package com.wix.rt.lang.psi; import com.intellij.lang.ASTNode; import com.intellij.lang.javascript.psi.JSDefinitionExpression; import com.intellij.lang.javascript.psi.impl.JSBinaryExpressionImpl; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Dennis.Ushakov */ public class RTAsExpression extends JSBinaryExpressionImpl { public RTAsExpression(ASTNode node) { super(node); } @Nullable public JSDefinitionExpression getDefinition() { return PsiTreeUtil.getChildOfType(this, JSDefinitionExpression.class); } @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof RTElementVisitor) { ((RTElementVisitor) visitor).visitRTAsExpression(this); } else { super.accept(visitor); } } // public static boolean isAsControllerRef(PsiReference ref, PsiElement parent) { // if (parent instanceof RTAsExpression && ref == parent.getFirstChild()) { // return true; // } // final InjectedLanguageManager injector = InjectedLanguageManager.getInstance(parent.getProject()); // final PsiLanguageInjectionHost host = injector.getInjectionHost(parent); // final PsiElement hostParent = host instanceof XmlAttributeValueImpl ? host.getParent() : null; // final String normalized = hostParent instanceof XmlAttribute ? // DirectiveUtil.normalizeAttributeName(((XmlAttribute) hostParent).getName()) : null; // return "ng-controller".equals(normalized); // } }