[kotlin] KTIJ-36850 Extract AbstractImportsTest.registerClassImportFilterExtensions

Note: not supported in K2 Mode as of now

GitOrigin-RevId: 23cdabb660710a506f98499de0bc3d63647176ea
This commit is contained in:
Roman Golyshev
2025-12-15 18:26:37 +00:00
committed by intellij-monorepo-bot
parent 84d29d7fb1
commit d841a7aeb1
5 changed files with 25 additions and 6 deletions
@@ -40,6 +40,10 @@ abstract class AbstractK2OptimizeImportsTest : AbstractImportsTest() {
override val nameCountToUseStarImportDefault: Int
get() = Integer.MAX_VALUE
override fun registerClassImportFilterExtensions(classImportFilterVetoRegexRules: MutableList<String>) {
// Not supported in K2 Mode
}
}
abstract class AbstractK2JvmOptimizeImportsTest : AbstractK2OptimizeImportsTest() {
@@ -97,6 +97,10 @@ abstract class AbstractFirShortenRefsTest : AbstractImportsTest() {
override val nameCountToUseStarImportDefault: Int
get() = Integer.MAX_VALUE
override fun registerClassImportFilterExtensions(classImportFilterVetoRegexRules: MutableList<String>) {
// Not supported in K2 Mode
}
private fun getShorteningResultFile(): File = dataFile().withExtension("txt")
private fun findDeclarationsToShorten(file: PsiFile): List<KtNamedDeclaration> {
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
import org.jetbrains.kotlin.idea.core.formatter.KotlinPackageEntry
import org.jetbrains.kotlin.idea.formatter.kotlinCustomSettings
import org.jetbrains.kotlin.idea.test.*
import org.jetbrains.kotlin.idea.util.ClassImportFilter
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
import org.jetbrains.kotlin.psi.KtFile
import java.io.File
@@ -80,11 +79,7 @@ abstract class AbstractImportsTest : KotlinLightCodeInsightFixtureTestCase() {
codeStyleSettings.PACKAGES_TO_USE_STAR_IMPORTS.addEntry(KotlinPackageEntry(it.trim(), true))
}
InTextDirectivesUtils.findLinesWithPrefixesRemoved(fileText, "// CLASS_IMPORT_FILTER_VETO_REGEX:").forEach {
val regex = Regex(".*${it.trim()}.*")
val filterExtension = ClassImportFilter { classInfo, _ -> !classInfo.fqName.asString().matches(regex) }
ClassImportFilter.EP_NAME.point.registerExtension(filterExtension, testRootDisposable)
}
registerClassImportFilterExtensions(InTextDirectivesUtils.findLinesWithPrefixesRemoved(fileText, "// CLASS_IMPORT_FILTER_VETO_REGEX:"))
val log = if (runTestInWriteCommand) {
project.executeWriteCommand<String?>("") { doTest(file) }
@@ -118,6 +113,8 @@ abstract class AbstractImportsTest : KotlinLightCodeInsightFixtureTestCase() {
protected open fun updateScriptDependencies(psiFile: KtFile) {}
protected abstract fun registerClassImportFilterExtensions(classImportFilterVetoRegexRules: MutableList<String>)
// returns test log
protected abstract fun doTest(file: KtFile): String?
@@ -2,10 +2,20 @@
package org.jetbrains.kotlin
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.util.ClassImportFilter
import org.jetbrains.kotlin.psi.KtFile
import kotlin.text.trim
abstract class AbstractK1ImportsTest : AbstractImportsTest() {
override fun updateScriptDependencies(psiFile: KtFile) {
ScriptConfigurationManager.updateScriptDependenciesSynchronously(psiFile)
}
override fun registerClassImportFilterExtensions(classImportFilterVetoRegexRules: MutableList<String>) {
classImportFilterVetoRegexRules.forEach {
val regex = Regex(".*${it.trim()}.*")
val filterExtension = ClassImportFilter { classInfo, _ -> !classInfo.fqName.asString().matches(regex) }
ClassImportFilter.EP_NAME.point.registerExtension(filterExtension, testRootDisposable)
}
}
}
@@ -34,6 +34,10 @@ abstract class AbstractK1OptimizeImportsTest : AbstractImportsTest() {
override val nameCountToUseStarImportDefault: Int
get() = Integer.MAX_VALUE
override fun registerClassImportFilterExtensions(classImportFilterVetoRegexRules: MutableList<String>) {
// Not supported in K2 Mode
}
}
abstract class AbstractK1JvmOptimizeImportsTest : AbstractK1OptimizeImportsTest() {