EditorColorPalette (@NotNull Function<? super TextAttributes, ? extends Color> attrColorReader, boolean filterOutRainbowAttrKeys) { final MultiMap<Color, TextAttributesKey> colors = new MultiMap<>(); for (TextAttributesKey key : getTextAttributeKeys(filterOutRainbowAttrKeys)) { TextAttributes attributes = myColorsScheme.getAttributes(key); if (attributes != null) { Color usedColor = attrColorReader.fun(attributes); if (usedColor != null) { colors.putValue(usedColor, key); } } } myColors.putAllValues(colors); return this; }