highlight unresolved references at *StyleName attributes as warnings, test
authorEugene Kudelevsky <Eugene.Kudelevsky@jetbrains.com>
Mon, 12 Apr 2010 15:27:03 +0000 (19:27 +0400)
committerEugene Kudelevsky <Eugene.Kudelevsky@jetbrains.com>
Mon, 12 Apr 2010 15:27:03 +0000 (19:27 +0400)
xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java

index c02a672d756bfe156adcffdae971b866c6593650..c1ac11c46fc44613c5dafaf735a38d2ef103e1ae 100644 (file)
@@ -300,7 +300,7 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV
         tag,
         localizedMessage,
         isInjectedHtmlTagForWhichNoProblemsReporting((HtmlTag)tag) ?
         tag,
         localizedMessage,
         isInjectedHtmlTagForWhichNoProblemsReporting((HtmlTag)tag) ?
-          HighlightInfoType.INFORMATION : 
+          HighlightInfoType.INFORMATION :
           SeverityRegistrar.getInstance(tag.getProject()).getHighlightInfoTypeBySeverity(profile.getErrorLevel(key, tag).getSeverity()),
         intentionAction,
         basicIntention);
           SeverityRegistrar.getInstance(tag.getProject()).getHighlightInfoTypeBySeverity(profile.getErrorLevel(key, tag).getSeverity()),
         intentionAction,
         basicIntention);
@@ -345,7 +345,7 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV
   private static boolean skipValidation(PsiElement context) {
     return context.getUserData(DO_NOT_VALIDATE_KEY) != null;
   }
   private static boolean skipValidation(PsiElement context) {
     return context.getUserData(DO_NOT_VALIDATE_KEY) != null;
   }
-  
+
   public static void setSkipValidation(@NotNull PsiElement element) {
     element.putUserData(DO_NOT_VALIDATE_KEY, "");
   }
   public static void setSkipValidation(@NotNull PsiElement element) {
     element.putUserData(DO_NOT_VALIDATE_KEY, "");
   }
@@ -537,8 +537,15 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV
             ", start offset: " + referenceRange.getStartOffset() + ", end offset: " + referenceRange.getEndOffset());
           }
 
             ", start offset: " + referenceRange.getStartOffset() + ", end offset: " + referenceRange.getEndOffset());
           }
 
+          HighlightInfoType type = getTagProblemInfoType(PsiTreeUtil.getParentOfType(value, XmlTag.class));
+          if (type.getSeverity(null).compareTo(HighlightInfoType.WARNING.getSeverity(null)) > 0 && value instanceof XmlAttributeValue) {
+            PsiElement parent = value.getParent();
+            if (parent instanceof XmlAttribute && ((XmlAttribute)parent).getName().toLowerCase().endsWith("stylename")) {
+              type = HighlightInfoType.WARNING;
+            }
+          }
           HighlightInfo info = HighlightInfo.createHighlightInfo(
           HighlightInfo info = HighlightInfo.createHighlightInfo(
-            getTagProblemInfoType(PsiTreeUtil.getParentOfType(value, XmlTag.class)),
+            type,
             startOffset + referenceRange.getStartOffset(),
             startOffset + referenceRange.getEndOffset(),
             description
             startOffset + referenceRange.getStartOffset(),
             startOffset + referenceRange.getEndOffset(),
             description