Merge remote-tracking branch 'origin/master' into develar/is
[idea/community.git] / platform / analysis-impl / src / com / intellij / codeInsight / daemon / impl / HighlightInfo.java
index d228c87b3614fff685bd7ffaf56cd39e2245a0b7..f2c83228205ce7fc52f23147cdf907a67006b273 100644 (file)
@@ -183,21 +183,16 @@ public class HighlightInfo implements Segment {
     TextAttributes attributes = getAttributesByType(element, type, colorsScheme);
     if (element != null &&
         RainbowHighlighter.isRainbowEnabled() &&
     TextAttributes attributes = getAttributesByType(element, type, colorsScheme);
     if (element != null &&
         RainbowHighlighter.isRainbowEnabled() &&
-        !isByPass(element) &&
         isLikeVariable(type.getAttributesKey())) {
         isLikeVariable(type.getAttributesKey())) {
-      String text = element.getContainingFile().getText();
-      String name = text.substring(startOffset, endOffset);
-      attributes = new RainbowHighlighter(colorsScheme).getAttributes(name, attributes);
+      PsiFile containingFile = element.getContainingFile();
+      if (!RainbowVisitor.existsPassSuitableForFile(containingFile)) {
+        CharSequence text = containingFile.getViewProvider().getContents().subSequence(startOffset, endOffset);
+        attributes = new RainbowHighlighter(colorsScheme).getAttributes(text.toString(), attributes);
+      }
     }
     return attributes;
   }
 
     }
     return attributes;
   }
 
-  @Contract("null -> false")
-  public static boolean isByPass(@Nullable PsiElement element) {
-    return element != null
-           && RainbowVisitor.existsPassSuitableForFile(element.getContainingFile());
-  }
-
   @Contract("null -> false")
   private static boolean isLikeVariable(TextAttributesKey key) {
     if (key == null) return false;
   @Contract("null -> false")
   private static boolean isLikeVariable(TextAttributesKey key) {
     if (key == null) return false;