diff --git a/image-svg-impl/src/main/java/consulo/images/svg/impl/codeInsight/SVGColorProvider.java b/image-svg-impl/src/main/java/consulo/images/svg/impl/codeInsight/SVGColorProvider.java index be0f5c2..298cb10 100644 --- a/image-svg-impl/src/main/java/consulo/images/svg/impl/codeInsight/SVGColorProvider.java +++ b/image-svg-impl/src/main/java/consulo/images/svg/impl/codeInsight/SVGColorProvider.java @@ -12,6 +12,9 @@ import consulo.ui.color.ColorValue; import consulo.ui.color.RGBColor; import consulo.ui.util.ColorValueUtil; +import consulo.util.collection.HashingStrategy; +import consulo.util.collection.Maps; +import consulo.util.lang.lazy.LazyValue; import consulo.xml.psi.xml.XmlAttribute; import consulo.xml.psi.xml.XmlTokenType; import jakarta.annotation.Nonnull; @@ -194,20 +197,16 @@ public ColorValue getColorValue() { return colorValue; } - private static final Map colorsMap = new HashMap<>(); - - public static ColorValue getColorValue(String name) { - return colorsMap.get(name.toLowerCase(Locale.ROOT)); - } - - private static void initColorsMap() { + private static final LazyValue> colorsMap = LazyValue.notNull(() -> { + Map map = Maps.newHashMap(HashingStrategy.caseInsensitive()); for (NamedColor c : values()) { - colorsMap.put(c.getName(), c.getColorValue()); + map.put(c.name(), c.getColorValue()); } - } + return map; + }); - static { - initColorsMap(); + public static ColorValue getColorValue(String name) { + return colorsMap.get().get(name); } }