mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
Java: order imports correctly when layout specifies package without subpackages (IDEA-360701)
(cherry picked from commit 5398813a84a6046eaad776debfe7c75c0d8527e8) GitOrigin-RevId: aa5274b93a06f8f4bc5b381064c7aa1de238fea3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
24519bc121
commit
982a5b4d9c
@@ -175,7 +175,7 @@ public final class ImportHelper{
|
||||
PackageEntry[] entries = settings.IMPORT_LAYOUT_TABLE.getEntries();
|
||||
for (int i = 0; i < imports.size(); i++) {
|
||||
Import anImport = imports.get(i);
|
||||
entryForName[i] = findEntryIndex(anImport.name(), anImport.isStatic(), entries);
|
||||
entryForName[i] = findEntryIndex(ImportUtils.getPackageOrClassName(anImport.name()), anImport.isStatic(), entries);
|
||||
}
|
||||
|
||||
List<Import> resultList = new ArrayList<>(imports.size());
|
||||
|
||||
@@ -12,6 +12,50 @@ import org.intellij.lang.annotations.Language;
|
||||
@SuppressWarnings("ALL")
|
||||
public class LightOptimizeImportsTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
|
||||
public void testImportLayoutWithoutSubpackages() {
|
||||
myFixture.addClass("package aaa; public class AAA {}");
|
||||
myFixture.addClass("package bbb; public class BBB {}");
|
||||
myFixture.addClass("package ccc; public class CCC {}");
|
||||
|
||||
@Language("JAVA") String text = """
|
||||
package main;
|
||||
|
||||
import aaa.AAA;
|
||||
import bbb.BBB;
|
||||
import ccc.CCC;
|
||||
|
||||
public class Main {
|
||||
void usage() {
|
||||
new AAA();
|
||||
new BBB();
|
||||
new CCC();
|
||||
}
|
||||
}
|
||||
""";
|
||||
myFixture.configureByText(JavaFileType.INSTANCE, text);
|
||||
|
||||
JavaCodeStyleSettings javaSettings = JavaCodeStyleSettings.getInstance(getProject());
|
||||
javaSettings.IMPORT_LAYOUT_TABLE.insertEntryAt(new PackageEntry(false, "bbb", false), 1);
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), () -> JavaCodeStyleManager.getInstance(getProject()).optimizeImports(getFile()));
|
||||
|
||||
@Language("JAVA") String result = """
|
||||
package main;
|
||||
|
||||
import aaa.AAA;
|
||||
import ccc.CCC;
|
||||
import bbb.BBB;
|
||||
|
||||
public class Main {
|
||||
void usage() {
|
||||
new AAA();
|
||||
new BBB();
|
||||
new CCC();
|
||||
}
|
||||
}
|
||||
""";
|
||||
myFixture.checkResult(result);
|
||||
}
|
||||
|
||||
public void testSingleImportConflictingWith2Others() {
|
||||
myFixture.addClass("package p; public class A1 {}");
|
||||
myFixture.addClass("package p; public class A2 {}");
|
||||
|
||||
Reference in New Issue
Block a user