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);
}
}