From 62c8325357d7c02aff6db93b1cf62c4d44c275a2 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 2 Dec 2013 16:31:17 +0100 Subject: [PATCH] cache GroovyHotSwapper.containsGroovyClasses (IDEA-116851) --- .../plugins/groovy/debugger/GroovyHotSwapper.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java index c4e8fad5da1f..7653e39010fb 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java @@ -20,6 +20,9 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.psi.util.CachedValueProvider; +import com.intellij.psi.util.CachedValuesManager; +import com.intellij.psi.util.PsiModificationTracker; import com.intellij.util.PathUtil; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.GroovyFileTypeLoader; @@ -51,7 +54,17 @@ public class GroovyHotSwapper extends JavaProgramPatcher { return false; } - private static boolean containsGroovyClasses(Project project) { + private static boolean containsGroovyClasses(final Project project) { + return CachedValuesManager.getManager(project).getCachedValue(project, new CachedValueProvider() { + @Nullable + @Override + public Result compute() { + return Result.create(calcContainsGroovyClasses(project), PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT); + } + }); + } + + private static boolean calcContainsGroovyClasses(Project project) { final List extensions = new ArrayList(); for (String extension : GroovyFileTypeLoader.getAllGroovyExtensions()) { extensions.add("." + extension);