[amper] AMPER-656 Don't show "Fill in all properties from JSON schema"

GitOrigin-RevId: dbb9f11880a2a8eb1db4a00c458f07071c553b2a
This commit is contained in:
Anton Lobov
2024-05-22 13:35:49 +02:00
committed by intellij-monorepo-bot
parent eec4e7570a
commit 4b686de69e
3 changed files with 27 additions and 0 deletions

View File

@@ -194,6 +194,8 @@
dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonWidgetSuppressor"
interface="com.jetbrains.jsonSchema.extension.JsonWidgetSuppressor" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonSchemaQuickFixSuppressor"
interface="com.jetbrains.jsonSchema.extension.JsonSchemaQuickFixSuppressor" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonLiteralChecker" interface="com.intellij.json.codeinsight.JsonLiteralChecker"
dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.catalog.exclusion"

View File

@@ -0,0 +1,21 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.jetbrains.jsonSchema.extension
import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.extensions.ExtensionPointName.Companion.create
import com.intellij.psi.PsiFile
/**
* Implement to suppress a JSON schema-related quick fix or intention action for your file
* Currently supported actions to suppress are:
* - AddOptionalPropertiesIntention
*/
interface JsonSchemaQuickFixSuppressor {
companion object {
@JvmStatic
val EXTENSION_POINT_NAME: ExtensionPointName<JsonSchemaQuickFixSuppressor> = create("com.intellij.json.jsonSchemaQuickFixSuppressor")
}
fun shouldSuppressFix(file: PsiFile, quickFixClass: Class<out IntentionAction>): Boolean
}

View File

@@ -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)
}