mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Generate module-info: Use UniqueNameGenerator for module-info names (IDEA-184148)
This commit is contained in:
+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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user