From 852f9f04d7f20f2c48bb740380d36baa03cbcdc4 Mon Sep 17 00:00:00 2001 From: Piotr Tomiak Date: Tue, 12 May 2020 09:42:16 +0200 Subject: [PATCH] WEB-45429 SVG: Attributes are shown as invalid when using `svg:` prefix IDEA-CR-62489 GitOrigin-RevId: 0e3e5266b197f03b374f833aa175cb5fb11f6292 --- .../html/dtd/HtmlAttributeDescriptorImpl.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/dtd/HtmlAttributeDescriptorImpl.java b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/dtd/HtmlAttributeDescriptorImpl.java index e23199f19b91..f18b3a810b8e 100644 --- a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/dtd/HtmlAttributeDescriptorImpl.java +++ b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/dtd/HtmlAttributeDescriptorImpl.java @@ -17,8 +17,8 @@ package com.intellij.psi.impl.source.html.dtd; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiReference; import com.intellij.psi.xml.XmlElement; +import com.intellij.util.containers.ContainerUtil; import com.intellij.xml.XmlAttributeDescriptor; import com.intellij.xml.impl.BasicXmlAttributeDescriptor; import com.intellij.xml.impl.XmlEnumerationDescriptor; @@ -113,23 +113,25 @@ public class HtmlAttributeDescriptorImpl extends BasicXmlAttributeDescriptor { @Override public PsiElement getValueDeclaration(XmlElement attributeValue, String value) { - String s = myCaseSensitive ? value : StringUtil.toLowerCase(value); + String searchValue = null; + if (!myCaseSensitive) { + String[] enumeratedValues = isEnumerated() ? getEnumeratedValues() : null; + if (enumeratedValues != null) { + searchValue = ContainerUtil.find(getEnumeratedValues(), v -> v.equalsIgnoreCase(value)); + } + if (searchValue == null) { + searchValue = StringUtil.toLowerCase(value); + } + } else { + searchValue = value; + } //noinspection unchecked return delegate instanceof XmlEnumerationDescriptor ? - ((XmlEnumerationDescriptor)delegate).getValueDeclaration(attributeValue, s) : + ((XmlEnumerationDescriptor)delegate).getValueDeclaration(attributeValue, searchValue) : super.getValueDeclaration(attributeValue, value); } - @SuppressWarnings("unchecked") - @Override - public PsiReference[] getValueReferences(XmlElement element, @NotNull String text) { - if (delegate instanceof XmlEnumerationDescriptor) { - return ((XmlEnumerationDescriptor)delegate).getValueReferences(element, text); - } - return super.getValueReferences(element, text); - } - public boolean isCaseSensitive() { return myCaseSensitive; } -} +} \ No newline at end of file