package com.eslint.utils; import com.intellij.lang.ASTNode; import com.intellij.lang.javascript.JSTokenTypes; import com.intellij.lang.javascript.psi.JSBinaryExpression; import com.intellij.openapi.util.Condition; import com.intellij.psi.PsiElement; import com.intellij.psi.tree.TokenSet; import com.intellij.psi.util.PsiTreeUtil; public final class JSBinaryExpressionUtil { private static final TokenSet BINARY_OPERATIONS = TokenSet.orSet(JSTokenTypes.OPERATIONS, JSTokenTypes.RELATIONAL_OPERATIONS); private JSBinaryExpressionUtil() {} public static ASTNode getOperator(PsiElement element) { PsiElement binary = PsiTreeUtil.findFirstParent(element, new Condition<PsiElement>() { @Override public boolean value(PsiElement psiElement) { return psiElement instanceof JSBinaryExpression; } }); return binary == null ? null : binary.getNode().getChildren(BINARY_OPERATIONS)[0]; } }