package com.chrisfolger.needsmoredojo.intellij.inspections; import com.chrisfolger.needsmoredojo.core.amd.importing.UnusedImportsRemover; import com.intellij.codeInspection.LocalQuickFix; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.lang.javascript.psi.impl.JSChangeUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; public class IgnoreImportQuickFix implements LocalQuickFix { private PsiElement define; private PsiElement parameter; public IgnoreImportQuickFix(PsiElement define, PsiElement parameter) { this.define = define; this.parameter = parameter; } @NotNull @Override public String getName() { return "Don't flag " + define.getText() + " as unused"; } @NotNull @Override public String getFamilyName() { return "Needs More Dojo"; } private void addIgnoreStatement() { PsiElement element = JSChangeUtil.createJSTreeFromText(define.getProject(), UnusedImportsRemover.IGNORE_COMMENT).getPsi(); define.getParent().addAfter(element, define); } @Override public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor problemDescriptor) { CommandProcessor.getInstance().executeCommand(project, new Runnable() { @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { addIgnoreStatement(); } }); } }, "Ignore unused import", "Ignore unused import"); } }