diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/ConfigureGroovyLibraryNotificationProvider.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/ConfigureGroovyLibraryNotificationProvider.java index 7e53a01f1088..4a918f38b76b 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/ConfigureGroovyLibraryNotificationProvider.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/ConfigureGroovyLibraryNotificationProvider.java @@ -24,10 +24,12 @@ import com.intellij.openapi.project.IndexNotReadyException; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootEvent; import com.intellij.openapi.roots.ModuleRootListener; +import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.EditorNotificationPanel; import com.intellij.ui.EditorNotifications; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.GroovyFileType; import java.util.Collections; @@ -77,6 +79,8 @@ public class ConfigureGroovyLibraryNotificationProvider implements EditorNotific final Module module = ModuleUtil.findModuleForFile(file, myProject); if (module == null) return null; + if (isMavenModule(module)) return null; + for (GroovyFrameworkConfigNotification configNotification : GroovyFrameworkConfigNotification.EP_NAME.getExtensions()) { if (configNotification.hasFrameworkStructure(module)) { if (!configNotification.hasFrameworkLibrary(module)) { @@ -96,4 +100,12 @@ public class ConfigureGroovyLibraryNotificationProvider implements EditorNotific return null; } + private static boolean isMavenModule(@NotNull Module module) { + for (VirtualFile root : ModuleRootManager.getInstance(module).getContentRoots()) { + if (root.findChild("pom.xml") != null) return true; + } + + return false; + } + } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyPropertyUtils.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyPropertyUtils.java index 01d35abf7cae..7703bfdeee05 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyPropertyUtils.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GroovyPropertyUtils.java @@ -84,6 +84,10 @@ public class GroovyPropertyUtils { return null; } + /** + * @deprecated use PropertyUtil.getAllProperties() instead. + */ + @Deprecated() public static List getAllPropertyGetters(@NotNull PsiClass aClass, @Nullable Boolean isStatic, boolean checkSuperClasses) { PsiMethod[] methods; if (checkSuperClasses) { 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; + } }