Optimize imports to use "packages to import with *" setting

This commit is contained in:
Valentin Kipyatkov
2015-08-18 14:50:17 +03:00
parent 9b4e3b15c4
commit 30a9a8787e
4 changed files with 29 additions and 0 deletions
@@ -170,6 +170,7 @@ public class KotlinImportOptimizer() : ImportOptimizer {
val descriptors = descriptorsByPackages[packageName]
val fqNames = descriptors.map { it.importableFqNameSafe }.toSet()
val explicitImports = fqNames.size() < codeStyleSettings.NAME_COUNT_TO_USE_STAR_IMPORT
&& packageName.asString() !in codeStyleSettings.PACKAGES_TO_USE_STAR_IMPORTS
if (explicitImports) {
for (fqName in fqNames) {
if (!isImportedByDefault(fqName)) {
@@ -0,0 +1,11 @@
// PACKAGE_TO_USE_STAR_IMPORTS: java
// PACKAGE_TO_USE_STAR_IMPORTS: java.io
// PACKAGES_TO_USE_STAR_IMPORTS: java.util.concurrent
import java.util.concurrent.atomic.AtomicBoolean
import java.io.File
import java.util.ArrayList
val v1: File
val v2: AtomicBoolean
val v3: ArrayList<String>
@@ -0,0 +1,11 @@
// PACKAGE_TO_USE_STAR_IMPORTS: java
// PACKAGE_TO_USE_STAR_IMPORTS: java.io
// PACKAGES_TO_USE_STAR_IMPORTS: java.util.concurrent
import java.io.*
import java.util.ArrayList
import java.util.concurrent.atomic.*
val v1: File
val v2: AtomicBoolean
val v3: ArrayList<String>
@@ -253,6 +253,12 @@ public class OptimizeImportsTestGenerated extends AbstractOptimizeImportsTest {
doTest(fileName);
}
@TestMetadata("PackagesToUseStarImport.kt")
public void testPackagesToUseStarImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/allUnderImports/PackagesToUseStarImport.kt");
doTest(fileName);
}
@TestMetadata("Simple.kt")
public void testSimple() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/allUnderImports/Simple.kt");