package com.eslint.fixes; import com.eslint.ESLintBundle; import com.eslint.utils.JSBinaryExpressionUtil; import com.intellij.lang.ASTNode; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author idok */ public class EqeqeqActionFix extends BaseActionFix { public EqeqeqActionFix(PsiElement element) { super(element); } @NotNull @Override public String getText() { return ESLintBundle.message("inspection.fix.eqeqeq"); } @Override public void invoke(@NotNull Project project, @NotNull PsiFile psiFile, @Nullable("is null when called from inspection") Editor editor, @NotNull PsiElement element, @NotNull PsiElement end) throws IncorrectOperationException { ASTNode op = JSBinaryExpressionUtil.getOperator(element); Document document = PsiDocumentManager.getInstance(project).getDocument(element.getContainingFile()); String replace = ""; if (op.getText().equals("==")) { replace = "==="; } else if (op.getText().equals("!=")) { replace = "!=="; } document.replaceString(op.getStartOffset(), op.getStartOffset() + op.getTextLength(), replace); } }