[mod-commands] PerformFixesTask: check applicability of ModCommandAction

GitOrigin-RevId: 0ec8eb7e9006d5eaf60cbbb0ea4c20ad77e619a7
This commit is contained in:
Tagir Valeev
2024-03-21 15:00:08 +01:00
committed by intellij-monorepo-bot
parent ded8a3793c
commit eafa7acdb7

View File

@@ -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<CommonProblemDes
override fun <D : CommonProblemDescriptor> collectFix(fix: QuickFix<D>, 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<ModCommand, RuntimeException> {
ReadAction.nonBlocking(Callable { fix.perform(myProject, descriptor) })