Merge branch 'master' into uta/rainbow
authorAlexey Utkin <alexey.utkin@jetbrains.com>
Fri, 19 Aug 2016 19:03:34 +0000 (22:03 +0300)
committerAlexey Utkin <alexey.utkin@jetbrains.com>
Fri, 19 Aug 2016 19:03:34 +0000 (22:03 +0300)
# Conflicts:
# platform/analysis-impl/src/com/intellij/codeHighlighting/RainbowHighlighter.java
# platform/analysis-impl/src/com/intellij/codeInsight/daemon/RainbowVisitor.java

1  2 
platform/analysis-impl/src/com/intellij/codeHighlighting/RainbowHighlighter.java

index 13f287e990dabbf0a7cddc61ff65c36f5b362e78,f74e74b45e49f24683408ca9eae33e9a1fd2cbee..ffadaea460cf0ef6f010c9e3cb17ce88bcdace12
@@@ -64,13 -69,9 +69,13 @@@ public class RainbowHighlighter 
      return Registry.is("editor.rainbow.identifiers", false);
    }
  
 +  public static void setRainbowEnabled(boolean enabled) {
 +    Registry.get("editor.rainbow.identifiers").setValue(enabled);
 +  }
 +
    @NotNull
-   public Color calculateForeground(int colorIndex) {
-     return myRainbowColors.get(Math.abs(colorIndex) % myRainbowColors.size());
+   private Color calculateForeground(int colorIndex) {
+     return myRainbowColors[colorIndex];
    }
  
    public int getColorsCount() {
    }
  
    public HighlightInfo getInfo(int colorIndex, @Nullable PsiElement id, @Nullable TextAttributesKey colorKey) {
 -    if (id == null) {
 -      return null;
 -    }
 +    return id == null ? null : getInfoBuilder(colorIndex, colorKey).range(id).create();
 +  }
 +
 +  public HighlightInfo getInfo(int colorIndex, int start, int end, @Nullable TextAttributesKey colorKey) {
 +    return getInfoBuilder(colorIndex, colorKey).range(start, end).create();
 +  }
 +
-   public int getColorIndex(HashMap<String, Integer> id2index, @NotNull String id, int idHash) {
-     Integer colorIndex = id2index.get(id);
-     if (colorIndex == null) {
-       colorIndex = Math.abs(idHash);
-       Map<Integer, Integer> index2usage = new HashMap<Integer, Integer>();
-       id2index.values().forEach(i -> {
-         Integer useCount = index2usage.get(i);
-         index2usage.put(i, useCount == null ? 1 : ++useCount);
-       });
-       int colorsCount = getColorsCount();
-       out:
-       for (int cutoff = 0; ; ++cutoff) {
-         for (int i = 0; i < colorsCount; ++i) {
-           colorIndex %= colorsCount;
-           Integer useCount = index2usage.get(colorIndex % colorsCount);
-           if (useCount == null) useCount = 0;
-           if (useCount == cutoff) break out;
-           ++colorIndex;
-         }
-       }
-       id2index.put(id, colorIndex);
-     }
-     return colorIndex;
-   }
 +  @NotNull
 +  protected HighlightInfo.Builder getInfoBuilder(int colorIndex, @Nullable TextAttributesKey colorKey) {
      if (colorKey == null) {
        colorKey = DefaultLanguageHighlighterColors.LOCAL_VARIABLE;
      }