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 7653e39010fb..583cbaa094c4 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java @@ -18,20 +18,18 @@ import com.intellij.openapi.roots.LanguageLevelModuleExtension; import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.openapi.util.io.FileUtil; import com.intellij.pom.java.LanguageLevel; -import com.intellij.psi.search.FilenameIndex; +import com.intellij.psi.search.FileTypeIndex; 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; +import org.jetbrains.plugins.groovy.GroovyFileType; import org.jetbrains.plugins.groovy.debugger.filters.GroovyDebuggerSettings; import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import java.util.jar.Attributes; import java.util.regex.Pattern; @@ -45,41 +43,17 @@ public class GroovyHotSwapper extends JavaProgramPatcher { private static final Pattern SPRING_LOADED_PATTERN = Pattern.compile("-javaagent:.+springloaded-core-[^/\\\\]+\\.jar"); - private static boolean endsWithAny(String s, List endings) { - for (String extension : endings) { - if (s.endsWith(extension)) { - return true; - } - } - return false; - } - 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); + return Result.create(FileTypeIndex.containsFileOfType(GroovyFileType.GROOVY_FILE_TYPE, GlobalSearchScope.projectScope(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); - } - final GlobalSearchScope scope = GlobalSearchScope.projectScope(project); - for (String fileName : FilenameIndex.getAllFilenames(project)) { - if (endsWithAny(fileName, extensions)) { - if (!FilenameIndex.getVirtualFilesByName(project, fileName, scope).isEmpty()) { - return true; - } - } - } - return false; - } - private static boolean hasSpringLoadedReloader(JavaParameters javaParameters) { for (String param : javaParameters.getVMParametersList().getParameters()) { if (SPRING_LOADED_PATTERN.matcher(param).matches()) {