From 46a3939942189c1c4835ebcb2efdeec587c72f5f Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Thu, 9 Jul 2015 12:54:10 +0200 Subject: [PATCH] Unrecognized HTML5 data attributes in Tapestry (IDEA-124505) --- .../Html5CustomAttributeDescriptorsProvider.java | 2 +- .../src/com/intellij/xml/util/HtmlUtil.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java b/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java index fc9fe289efed..1d9533eef727 100644 --- a/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java +++ b/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java @@ -91,7 +91,7 @@ public class Html5CustomAttributeDescriptorsProvider implements XmlAttributeDesc @Override public XmlAttributeDescriptor getAttributeDescriptor(String attributeName, XmlTag context) { - if (context != null && HtmlUtil.isHtml5Context(context) && HtmlUtil.isCustomHtml5Attribute(attributeName)) { + if (context != null && HtmlUtil.isCustomHtml5Attribute(attributeName) && HtmlUtil.tagHasHtml5Schema(context)) { return new AnyXmlAttributeDescriptor(attributeName); } return null; diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java index e7c9168d3e36..02ac9f070abf 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java @@ -26,6 +26,7 @@ import com.intellij.lang.xhtml.XHTMLLanguage; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.registry.Registry; @@ -497,6 +498,18 @@ public class HtmlUtil { return "meta.rnc".equals(name); } + public static boolean tagHasHtml5Schema(@NotNull XmlTag context) { + XmlElementDescriptor descriptor = context.getDescriptor(); + if (descriptor != null) { + XmlNSDescriptor nsDescriptor = descriptor.getNSDescriptor(); + XmlFile descriptorFile = nsDescriptor.getDescriptorFile(); + String descriptorPath = descriptorFile != null ? descriptorFile.getVirtualFile().getPath() : null; + return Comparing.equal(Html5SchemaProvider.getHtml5SchemaLocation(), descriptorPath) || + Comparing.equal(Html5SchemaProvider.getXhtml5SchemaLocation(), descriptorPath); + } + return false; + } + private static class TerminateException extends RuntimeException { private static final TerminateException INSTANCE = new TerminateException(); }