scopes editor: fix 'include recursively' button for module groups nodes

If modules are grouped automatically accordingly to their qualified names it should add proper module name pattern instead of using 'group:' prefix (IDEA-185763).
This commit is contained in:
nik
2018-01-29 17:35:02 +03:00
parent a09d6fd75c
commit b52ea25e3f
3 changed files with 19 additions and 4 deletions
@@ -64,8 +64,7 @@ public class PackagePatternProvider extends PatternDialectProvider {
final String scope = scope1;
if (node instanceof ModuleGroupNode){
if (!recursively) return null;
@NonNls final String modulePattern = "group:" + ((ModuleGroupNode)node).getModuleGroup().toString();
return new PatternPackageSet("*..*", scope, modulePattern);
return new PatternPackageSet("*..*", scope, ProjectPatternProvider.getGroupModulePattern((ModuleGroupNode)node));
} else if (node instanceof ModuleNode) {
if (!recursively) return null;
final String modulePattern = ((ModuleNode)node).getModuleName();
@@ -22,6 +22,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.psi.PsiFile;
import com.intellij.util.PlatformIcons;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.util.Set;
@@ -76,4 +77,9 @@ public class ModuleGroupNode extends PackageDependenciesNode {
public int hashCode() {
return myModuleGroup == null ? 0 : myModuleGroup.hashCode();
}
@NotNull
public Project getProject() {
return myProject;
}
}
@@ -24,6 +24,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.ToggleAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleGrouperKt;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectRootManager;
@@ -83,8 +84,7 @@ public class ProjectPatternProvider extends PatternDialectProvider {
public PackageSet createPackageSet(final PackageDependenciesNode node, final boolean recursively) {
if (node instanceof ModuleGroupNode) {
if (!recursively) return null;
@NonNls final String modulePattern = "group:" + ((ModuleGroupNode)node).getModuleGroup().toString();
return new FilePatternPackageSet(modulePattern, "*//*");
return new FilePatternPackageSet(getGroupModulePattern((ModuleGroupNode)node), "*//*");
}
else if (node instanceof ModuleNode) {
if (!recursively) return null;
@@ -127,6 +127,16 @@ public class ProjectPatternProvider extends PatternDialectProvider {
return AllIcons.General.ProjectTab;
}
@NotNull
static String getGroupModulePattern(ModuleGroupNode node) {
if (ModuleGrouperKt.isQualifiedModuleNamesEnabled(node.getProject())) {
return node.getModuleGroup().getQualifiedName() + "*";
}
else {
return "group:" + node.getModuleGroup().toString();
}
}
private static final class CompactEmptyMiddlePackagesAction extends ToggleAction {
private final Runnable myUpdate;