From b08a89da1370fc872bcced07911d37ae47f18828 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 6 Mar 2014 17:02:45 +0100 Subject: [PATCH] cache scope attribute keys to reduce daemon garbage --- .../options/colors/ScopeAttributesUtil.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/analysis-impl/src/com/intellij/application/options/colors/ScopeAttributesUtil.java b/platform/analysis-impl/src/com/intellij/application/options/colors/ScopeAttributesUtil.java index 4466f6873325..530d7a096603 100644 --- a/platform/analysis-impl/src/com/intellij/application/options/colors/ScopeAttributesUtil.java +++ b/platform/analysis-impl/src/com/intellij/application/options/colors/ScopeAttributesUtil.java @@ -16,11 +16,21 @@ package com.intellij.application.options.colors; import com.intellij.openapi.editor.colors.TextAttributesKey; +import com.intellij.util.containers.ConcurrentFactoryMap; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class ScopeAttributesUtil { + @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") + private static final ConcurrentFactoryMap ourCache = new ConcurrentFactoryMap() { + @Nullable + @Override + protected TextAttributesKey create(String scope) { + return TextAttributesKey.find("SCOPE_KEY_" + scope); + } + }; @NotNull public static TextAttributesKey getScopeTextAttributeKey(@NotNull String scope) { - return TextAttributesKey.find("SCOPE_KEY_" + scope); + return ourCache.get(scope); } }