Collection<File> (@NotNull VirtualFile sourceFile, @NotNull Collection<File> aliveCachedFiles) { Collection<File> filesToDelete = new HashSet<>(); for (File codeFencePluginSystemPath : getPluginSystemPaths()) { for (File sourceFileCacheDirectory : getChildren(codeFencePluginSystemPath)) { if (isCachedSourceFile(sourceFileCacheDirectory, sourceFile) && aliveCachedFiles.isEmpty()) { filesToDelete.add(sourceFileCacheDirectory); continue; } for (File file : getChildren(sourceFileCacheDirectory)) { if (!isCachedSourceFile(sourceFileCacheDirectory, sourceFile) || aliveCachedFiles.contains(file)) continue; filesToDelete.add(file); } } } return filesToDelete; }