diff --git a/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java b/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java index a5507687795e..4e6caaa0174f 100644 --- a/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java +++ b/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java @@ -44,9 +44,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; /** * @author yole @@ -159,6 +157,9 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { @Nullable public static Module getPrimaryModule(Project project) { + if (!canAttachToProject()) { + return null; + } for (Module module : ModuleManager.getInstance(project).getModules()) { final VirtualFile[] roots = ModuleRootManager.getInstance(module).getContentRoots(); for (VirtualFile root : roots) { @@ -173,15 +174,21 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { public static List getSortedModules(Project project) { List result = new ArrayList(); final Module primaryModule = getPrimaryModule(project); - if (primaryModule != null) { - result.add(primaryModule); - } final Module[] modules = ModuleManager.getInstance(project).getModules(); for (Module module : modules) { if (module != primaryModule) { result.add(module); } } + Collections.sort(result, new Comparator() { + @Override + public int compare(Module module, Module module2) { + return module.getName().compareTo(module2.getName()); + } + }); + if (primaryModule != null) { + result.add(0, primaryModule); + } return result; } }