diff --git a/plugins/yaml/src/org/jetbrains/yaml/schema/YamlArrayAdapter.java b/plugins/yaml/src/org/jetbrains/yaml/schema/YamlArrayAdapter.java index 9627ae5dc392..052d1300f80a 100644 --- a/plugins/yaml/src/org/jetbrains/yaml/schema/YamlArrayAdapter.java +++ b/plugins/yaml/src/org/jetbrains/yaml/schema/YamlArrayAdapter.java @@ -3,6 +3,7 @@ package org.jetbrains.yaml.schema; import com.intellij.openapi.util.NotNullLazyValue; import com.intellij.psi.PsiElement; +import com.intellij.util.containers.ContainerUtil; import com.jetbrains.jsonSchema.extension.adapters.JsonArrayValueAdapter; import com.jetbrains.jsonSchema.extension.adapters.JsonObjectValueAdapter; import com.jetbrains.jsonSchema.extension.adapters.JsonValueAdapter; @@ -11,6 +12,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.yaml.psi.YAMLSequence; import org.jetbrains.yaml.psi.YAMLSequenceItem; import org.jetbrains.yaml.psi.YAMLValue; +import org.jetbrains.yaml.psi.YamlTagRecogniser; import java.util.ArrayList; import java.util.List; @@ -34,7 +36,11 @@ public final class YamlArrayAdapter implements JsonArrayValueAdapter { @Override public boolean isArray() { PsiElement tag = myArray.getTag(); - return tag == null || "!!seq".equals(tag.getText()); + if (tag == null) return true; + + String tagText = tag.getText(); + return "!!seq".equals(tagText) + || ContainerUtil.exists(YamlTagRecogniser.EP_NAME.getExtensionList(), extension -> extension.isRecognizedTag(tagText)); } @Override diff --git a/plugins/yaml/src/org/jetbrains/yaml/schema/YamlObjectAdapter.java b/plugins/yaml/src/org/jetbrains/yaml/schema/YamlObjectAdapter.java index 4dfa6510fa49..1514eabfe7bf 100644 --- a/plugins/yaml/src/org/jetbrains/yaml/schema/YamlObjectAdapter.java +++ b/plugins/yaml/src/org/jetbrains/yaml/schema/YamlObjectAdapter.java @@ -7,6 +7,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.ObjectUtils; +import com.intellij.util.containers.ContainerUtil; import com.jetbrains.jsonSchema.extension.adapters.JsonArrayValueAdapter; import com.jetbrains.jsonSchema.extension.adapters.JsonObjectValueAdapter; import com.jetbrains.jsonSchema.extension.adapters.JsonPropertyAdapter; @@ -27,7 +28,11 @@ public final class YamlObjectAdapter implements JsonObjectValueAdapter { @Override public boolean isObject() { PsiElement tag = myObject.getTag(); - return tag == null || "!!map".equals(tag.getText()); + + if (tag == null) return true; + String tagText = tag.getText(); + return "!!map".equals(tagText) + || ContainerUtil.exists(YamlTagRecogniser.EP_NAME.getExtensionList(), extension -> extension.isRecognizedTag(tagText)); } @Override