public void optimizeAttributeMap() {
    EditorColorsScheme parentScheme = this.parentScheme;
    if (parentScheme == null) {
      return;
    }

    attributesMap.entrySet().removeIf(entry -> {
      String keyName = entry.getKey();
      TextAttributes attrs = entry.getValue();
      TextAttributesKey key = TextAttributesKey.find(keyName);
      if (attrs == INHERITED_ATTRS_MARKER) {
        return !hasExplicitlyDefinedAttributes(parentScheme, key);
      }
      TextAttributes parent = parentScheme instanceof DefaultColorsScheme ?
                              ((DefaultColorsScheme)parentScheme).getAttributes(key, false) : parentScheme.getAttributes(key);
      return Comparing.equal(parent, attrs);
    });

    colorMap.keySet().removeAll(colorMap.keySet().stream().filter(key -> {
      Color color = colorMap.get(key);
      if (color == INHERITED_COLOR_MARKER) {
        return !hasExplicitlyDefinedColors(parentScheme, key);
      }

      Color parent = parentScheme instanceof DefaultColorsScheme
                     ? ((DefaultColorsScheme)parentScheme).getColor(key, false)
                     : parentScheme.getColor(key);
      return Comparing.equal(parent, color == NULL_COLOR_MARKER ? null : color);
    }).collect(Collectors.toSet()));
  }
public void optimizeAttributeMap()