Commit fb749f2a authored by Pavel Dolgov's avatar Pavel Dolgov
Browse files

Generate module-info: Use UniqueNameGenerator for module-info names (IDEA-184148)

parent a20a4f5c
Showing with 6 additions and 12 deletions
+6 -12
......@@ -42,7 +42,7 @@ import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.ProjectScope;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.util.containers.ObjectIntHashMap;
import com.intellij.util.text.UniqueNameGenerator;
import gnu.trove.THashMap;
import gnu.trove.THashSet;
import one.util.streamex.StreamEx;
......@@ -568,7 +568,7 @@ public class Java9GenerateModuleDescriptorsAction extends AnAction {
}
private static class UniqueModuleNames {
private final ObjectIntHashMap<String> myCounts = new ObjectIntHashMap<>();
private final UniqueNameGenerator myNameGenerator;
public UniqueModuleNames(@NotNull Project project) {
LOG.assertTrue(!DumbService.isDumb(project), "Module name index should be ready");
......@@ -576,23 +576,17 @@ public class Java9GenerateModuleDescriptorsAction extends AnAction {
JavaModuleNameIndex index = JavaModuleNameIndex.getInstance();
GlobalSearchScope scope = ProjectScope.getAllScope(project);
List<PsiJavaModule> modules = new ArrayList<>();
for (String key : index.getAllKeys(project)) {
for (PsiJavaModule module : index.get(key, project, scope)) {
String name = ReadAction.compute(() -> module.getName());
myCounts.put(name, 1);
}
modules.addAll(index.get(key, project, scope));
}
myNameGenerator = new UniqueNameGenerator(modules, module -> ReadAction.compute(() -> module.getName()));
}
@NotNull
public String getUniqueName(@NotNull Module module) {
String name = NameConverter.convertModuleName(module.getName());
int count = myCounts.get(name, 0);
myCounts.put(name, count + 1);
if (count != 0) {
name += count;
}
return name;
return myNameGenerator.generateUniqueName(name);
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment