diff --git a/platform/lang-impl/src/com/intellij/codeInspection/actions/PerformFixesTask.kt b/platform/lang-impl/src/com/intellij/codeInspection/actions/PerformFixesTask.kt index 78c9dba8513f..9bf7d5f46db7 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/actions/PerformFixesTask.kt +++ b/platform/lang-impl/src/com/intellij/codeInspection/actions/PerformFixesTask.kt @@ -5,11 +5,8 @@ import com.intellij.codeInspection.CommonProblemDescriptor import com.intellij.codeInspection.ProblemDescriptor import com.intellij.codeInspection.QuickFix import com.intellij.lang.LangBundle -import com.intellij.modcommand.ActionContext -import com.intellij.modcommand.ModCommand -import com.intellij.modcommand.ModCommandExecutor +import com.intellij.modcommand.* import com.intellij.modcommand.ModCommandExecutor.BatchExecutionResult -import com.intellij.modcommand.ModCommandQuickFix import com.intellij.openapi.application.ReadAction import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.Project @@ -22,6 +19,10 @@ open class PerformFixesTask(project: Project, descriptors: List collectFix(fix: QuickFix, descriptor: D, project: Project): BatchExecutionResult { if (fix is ModCommandQuickFix) { descriptor as ProblemDescriptor + val action = ModCommandService.getInstance().unwrap(fix) + if (action != null && action.getPresentation(ActionContext.from(descriptor)) == null) { + return ModCommandExecutor.Result.NOTHING + } val command = ProgressManager.getInstance().runProcessWithProgressSynchronously( ThrowableComputable { ReadAction.nonBlocking(Callable { fix.perform(myProject, descriptor) })