diff --git a/json/resources/intellij.json.xml b/json/resources/intellij.json.xml index 5e2a2495600c..37d0124a7dec 100644 --- a/json/resources/intellij.json.xml +++ b/json/resources/intellij.json.xml @@ -194,6 +194,8 @@ dynamic="true"/> + = create("com.intellij.json.jsonSchemaQuickFixSuppressor") + } + + fun shouldSuppressFix(file: PsiFile, quickFixClass: Class): Boolean +} \ No newline at end of file diff --git a/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt b/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt index 4d2c1ffbe25f..9ab60b3aeaa8 100644 --- a/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt +++ b/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt @@ -19,6 +19,7 @@ import com.intellij.psi.PsiFile import com.intellij.psi.createSmartPointer import com.intellij.psi.util.parentOfType import com.jetbrains.jsonSchema.extension.JsonLikeSyntaxAdapter +import com.jetbrains.jsonSchema.extension.JsonSchemaQuickFixSuppressor import com.jetbrains.jsonSchema.impl.JsonCachedValues import com.jetbrains.jsonSchema.impl.JsonOriginalPsiWalker import kotlinx.coroutines.Dispatchers @@ -39,6 +40,9 @@ open class AddOptionalPropertiesIntention : IntentionAction { override fun isAvailable(project: Project, editor: Editor, file: PsiFile): Boolean { val containingObject = findContainingObjectNode(editor, file) ?: return false + if (JsonSchemaQuickFixSuppressor.EXTENSION_POINT_NAME.extensionList.any { + it.shouldSuppressFix(file, AddOptionalPropertiesIntention::class.java) + }) return false return JsonCachedValues.hasComputedSchemaObjectForFile(containingObject.containingFile) }