From 7c20722ec8f9b9ddee094ece6af121299083d4f6 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Mon, 13 Dec 2010 14:01:08 +0300 Subject: [PATCH] IDEA-61888 (Grails GSP editor to support navigation to related layout via meta tag) --- .../getters/HtmlAttributeValueGetter.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java b/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java index b5fc673fbad4..6916ffbc6cec 100644 --- a/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java +++ b/xml/impl/src/com/intellij/psi/filters/getters/HtmlAttributeValueGetter.java @@ -21,6 +21,7 @@ import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlTag; import com.intellij.xml.util.XmlUtil; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.nio.charset.Charset; @@ -47,8 +48,9 @@ public class HtmlAttributeValueGetter extends XmlAttributeValueGetter { XmlAttribute attribute = (XmlAttribute)context; @NonNls String name = attribute.getName(); final XmlTag tag = attribute.getParent(); + if (tag == null) return null; - @NonNls String tagName = tag != null ? tag.getName() : ""; + @NonNls String tagName = tag.getName(); if (!myCaseSensitive) { name = name.toLowerCase(); tagName = tagName.toLowerCase(); @@ -84,7 +86,7 @@ public class HtmlAttributeValueGetter extends XmlAttributeValueGetter { "Proxy-Authenticate", "Proxy-Authorization", "Range", "Referer", "Refresh", "Retry-After", "Server", "TE", "Trailer", "Transfer-Encoding", "Upgrade", "User-Agent", "Vary", "Via", "Warning", "WWW-Authenticate"}; } - else if("content".equals(name) && "meta".equals(tagName)) { + else if("content".equals(name) && "meta".equals(tagName) && getAttribute(tag, "name") == null) { return new String[] {"application/activemessage", "application/andrew-inset", "application/applefile", "application/atomicmail", "application/dca-rft", "application/dec-dx", "application/mac-binhex40" , "application/mac-compactpro", "application/macwriteii", "application/msword", "application/news-message-id", "application/news-transmission", "application/octet-stream" , "application/oda", "application/pdf", "application/postscript", "application/powerpoint", "application/remote-printing", "application/rtf" @@ -114,4 +116,19 @@ public class HtmlAttributeValueGetter extends XmlAttributeValueGetter { return null; } + + @Nullable + private XmlAttribute getAttribute(@NotNull XmlTag tag, @NotNull String attributeName) { + if (myCaseSensitive) { + return tag.getAttribute(attributeName); + } + + for (XmlAttribute xmlAttribute : tag.getAttributes()) { + if (attributeName.equalsIgnoreCase(xmlAttribute.getName())) { + return xmlAttribute; + } + } + + return null; + } }