package com.chrisfolger.needsmoredojo.intellij.inspections;
import com.chrisfolger.needsmoredojo.core.settings.DojoSettings;
import com.intellij.codeInspection.LocalQuickFix;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
public class AddExceptionQuickFix implements LocalQuickFix
{
private PsiElement define;
private PsiElement parameter;
private String absolutePath;
public AddExceptionQuickFix(PsiElement define, PsiElement parameter, String absolutePath) {
this.absolutePath = absolutePath;
this.define = define;
this.parameter = parameter;
}
@NotNull
@Override
public String getName() {
if(absolutePath != null)
{
return "Flag " + absolutePath + " as a mismatched imports exception";
}
else
{
return "Flag " + define.getText() + " as a mismatched imports exception";
}
}
@NotNull
@Override
public String getFamilyName() {
return "Needs More Dojo";
}
@Override
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor problemDescriptor)
{
if(absolutePath != null)
{
ServiceManager.getService(project, DojoSettings.class).getAmdImportNamingExceptionsList().add(absolutePath + "(" + parameter.getText());
}
else
{
ServiceManager.getService(project, DojoSettings.class).getAmdImportNamingExceptionsList().add(define.getText().replaceAll("\"|'", "") + "(" + parameter.getText());
}
}
}