[kotlin] KTIJ-39619 Reformat code

(cherry picked from commit 14114766eb0a1bbc4d492f034ae93a5c482185fb)

IJ-CR-215390

GitOrigin-RevId: 83b4c8e35d67dc66c339ac82dd17496ed7e410d4
This commit is contained in:
Andrey Cherkasov
2026-07-30 08:50:53 +00:00
committed by intellij-monorepo-bot
parent b03142199a
commit 0b0dbf8a0d
@@ -40,22 +40,22 @@ private val PROCESSOR_PATH_SEPARATOR: String = System.getProperties().getPropert
internal const val LOMBOK_FQN: String = "lombok.Lombok"
class KaptGradleKotlinCompilerPluginProjectConfigurator : AbstractGradleKotlinCompilerPluginProjectConfigurator() {
override val kotlinCompilerPluginId: String = KAPT_PLUGIN_ID
override val kotlinCompilerPluginId: String = KAPT_PLUGIN_ID
override fun getKotlinPluginExpression(forKotlinDsl: Boolean): String =
if (forKotlinDsl) "kotlin(\"kapt\")" else "id \"org.jetbrains.kotlin.kapt\""
override fun getKotlinPluginExpression(forKotlinDsl: Boolean): String =
if (forKotlinDsl) "kotlin(\"kapt\")" else "id \"org.jetbrains.kotlin.kapt\""
override fun PsiFile.addCustomization(addVersion: Boolean, sourceModule: Module, changedFiles: ChangedConfiguratorFiles) {
configureKaptDependenciesIfNeeded(changedFiles)
override fun PsiFile.addCustomization(addVersion: Boolean, sourceModule: Module, changedFiles: ChangedConfiguratorFiles) {
configureKaptDependenciesIfNeeded(changedFiles)
if (!sourceModule.hasLombokDependency()) return
if (!sourceModule.hasLombokDependency()) return
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
KAPT_PLUGIN_ID,
changedFiles,
KAPT_KEEP_JAVAC_PROCESSORS_OPTION,
)
}
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
KAPT_PLUGIN_ID,
changedFiles,
KAPT_KEEP_JAVAC_PROCESSORS_OPTION,
)
}
}
private fun PsiFile.configureKaptDependenciesIfNeeded(changedFiles: ChangedConfiguratorFiles) {
@@ -143,58 +143,58 @@ private fun PsiElement.addNewLinesIfNeeded() {
}
class KaptGradleProjectPostConfigurator : AbstractKotlinCompilerProjectPostConfigurator(KAPT_PLUGIN_ID) {
override fun isApplicable(module: Module): Boolean =
module.isGradleModule &&
compilerPluginProjectConfigurators(module).isNotEmpty() &&
!module.hasKaptGradlePluginConfigured() &&
module.hasNonLombokAnnotationProcessor() &&
!module.hasKspGradlePluginConfigured()
override fun isApplicable(module: Module): Boolean =
module.isGradleModule &&
compilerPluginProjectConfigurators(module).isNotEmpty() &&
!module.hasKaptGradlePluginConfigured() &&
module.hasNonLombokAnnotationProcessor() &&
!module.hasKspGradlePluginConfigured()
}
internal fun Module.hasLombokDependency(): Boolean =
JavaLibraryUtil.hasLibraryClass(this, LOMBOK_FQN)
JavaLibraryUtil.hasLibraryClass(this, LOMBOK_FQN)
internal fun Module.hasNonLombokAnnotationProcessor(): Boolean {
val annotationProcessingConfiguration = CompilerConfiguration.getInstance(project).getAnnotationProcessingConfiguration(this)
if (annotationProcessingConfiguration.isEnabled) {
val processors = annotationProcessingConfiguration.processors
if (processors.any { !it.startsWith("lombok.") }) return true
val annotationProcessingConfiguration = CompilerConfiguration.getInstance(project).getAnnotationProcessingConfiguration(this)
if (annotationProcessingConfiguration.isEnabled) {
val processors = annotationProcessingConfiguration.processors
if (processors.any { !it.startsWith("lombok.") }) return true
val processorPath = annotationProcessingConfiguration.processorPath
.split(PROCESSOR_PATH_SEPARATOR)
.filter { it.isNotBlank() }
if (processorPath.any { !it.isLombokProcessorPath() }) return true
}
val processorPath = annotationProcessingConfiguration.processorPath
.split(PROCESSOR_PATH_SEPARATOR)
.filter { it.isNotBlank() }
if (processorPath.any { !it.isLombokProcessorPath() }) return true
}
return KNOWN_NON_LOMBOK_PROCESSOR_CLASSES.any { JavaLibraryUtil.hasLibraryClass(this, it) }
return KNOWN_NON_LOMBOK_PROCESSOR_CLASSES.any { JavaLibraryUtil.hasLibraryClass(this, it) }
}
internal fun Module.hasKaptGradlePluginConfigured(): Boolean {
val buildScript = getBuildScriptPsiFile() ?: return false
val manipulator = GradleBuildScriptSupport.getManipulator(buildScript)
return manipulator.isConfigured(kaptPluginExpression(buildScript is KtFile)) ||
manipulator.isConfiguredWithOldSyntax(KAPT_GRADLE_PLUGIN_NAME) ||
manipulator.isConfiguredWithOldSyntax("kotlin-kapt")
val buildScript = getBuildScriptPsiFile() ?: return false
val manipulator = GradleBuildScriptSupport.getManipulator(buildScript)
return manipulator.isConfigured(kaptPluginExpression(buildScript is KtFile)) ||
manipulator.isConfiguredWithOldSyntax(KAPT_GRADLE_PLUGIN_NAME) ||
manipulator.isConfiguredWithOldSyntax("kotlin-kapt")
}
internal fun Module.hasKspGradlePluginConfigured(): Boolean {
val buildScript = getBuildScriptPsiFile() ?: return false
return KSP_GRADLE_PLUGIN_REGEX.containsMatchIn(buildScript.text) ||
KSP_DEPENDENCY_REGEX.containsMatchIn(buildScript.text)
val buildScript = getBuildScriptPsiFile() ?: return false
return KSP_GRADLE_PLUGIN_REGEX.containsMatchIn(buildScript.text) ||
KSP_DEPENDENCY_REGEX.containsMatchIn(buildScript.text)
}
internal fun PsiFile.configureKaptForLombokIfNeeded(sourceModule: Module, changedFiles: ChangedConfiguratorFiles) {
if (!sourceModule.hasKaptGradlePluginConfigured()) return
if (!sourceModule.hasKaptGradlePluginConfigured()) return
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
KAPT_PLUGIN_ID,
changedFiles,
KAPT_KEEP_JAVAC_PROCESSORS_OPTION,
)
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
KAPT_PLUGIN_ID,
changedFiles,
KAPT_KEEP_JAVAC_PROCESSORS_OPTION,
)
}
internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, changedFiles: ChangedConfiguratorFiles) {
val parentDirectory = (virtualFile ?: originalFile.virtualFile )?.parent ?: return
val parentDirectory = (virtualFile ?: originalFile.virtualFile)?.parent ?: return
val configFile = sourceModule.findLombokConfigFile(parentDirectory) ?: return
val configFilePath = configFile.toNioPath()
val parentPath = parentDirectory.toNioPath()
@@ -223,10 +223,10 @@ private fun Module.findLombokConfigFile(parentDirectory: VirtualFile): VirtualFi
}
private fun String.isLombokProcessorPath(): Boolean =
substringAfterLast('/').substringAfterLast('\\').contains("lombok", ignoreCase = true)
substringAfterLast('/').substringAfterLast('\\').contains("lombok", ignoreCase = true)
private fun String.isLombokDependencyNotation(): Boolean =
split(':').getOrNull(1) == "lombok" || contains("lombok", ignoreCase = true)
split(':').getOrNull(1) == "lombok" || contains("lombok", ignoreCase = true)
private fun MatchResult.toKaptProcessorDependency(): KaptProcessorDependency? {
val sourceConfiguration = GradleProcessorDependencyConfiguration.byName(groupValues[2]) ?: return null
@@ -246,10 +246,10 @@ private fun MatchResult.toKaptProcessorDependency(): KaptProcessorDependency? {
}
private fun kaptPluginExpression(forKotlinDsl: Boolean): String =
if (forKotlinDsl) "kotlin(\"kapt\")" else "id \"org.jetbrains.kotlin.kapt\""
if (forKotlinDsl) "kotlin(\"kapt\")" else "id \"org.jetbrains.kotlin.kapt\""
private fun kaptDependencyNotation(configuration: String, dependency: String): String =
"$configuration(\"$dependency\")"
"$configuration(\"$dependency\")"
private data class KaptProcessorDependency(
val match: MatchResult,
@@ -262,76 +262,76 @@ private data class KaptProcessorDependency(
private data class KaptDependency(val configuration: String, val notation: String)
private enum class GradleProcessorDependencyConfiguration(
val dependencyConfiguration: String,
val kaptConfiguration: String,
val dropOriginal: Boolean = false,
val acceptsAnyProcessor: Boolean,
val dependencyConfiguration: String,
val kaptConfiguration: String,
val dropOriginal: Boolean = false,
val acceptsAnyProcessor: Boolean,
) {
ANNOTATION_PROCESSOR("annotationProcessor", "kapt", dropOriginal = true, acceptsAnyProcessor = true),
TEST_ANNOTATION_PROCESSOR("testAnnotationProcessor", "kaptTest", acceptsAnyProcessor = true),
IMPLEMENTATION("implementation", "kapt", acceptsAnyProcessor = false),
TEST_IMPLEMENTATION("testImplementation", "kaptTest", acceptsAnyProcessor = false);
ANNOTATION_PROCESSOR("annotationProcessor", "kapt", dropOriginal = true, acceptsAnyProcessor = true),
TEST_ANNOTATION_PROCESSOR("testAnnotationProcessor", "kaptTest", acceptsAnyProcessor = true),
IMPLEMENTATION("implementation", "kapt", acceptsAnyProcessor = false),
TEST_IMPLEMENTATION("testImplementation", "kaptTest", acceptsAnyProcessor = false);
companion object {
private val byDependencyConfiguration = entries.associateBy { it.dependencyConfiguration }
companion object {
private val byDependencyConfiguration = entries.associateBy { it.dependencyConfiguration }
fun byName(name: String): GradleProcessorDependencyConfiguration? =
byDependencyConfiguration[name]
}
fun byName(name: String): GradleProcessorDependencyConfiguration? =
byDependencyConfiguration[name]
}
}
private data class GradleProcessorPath(val groupId: String, val artifactId: String) {
companion object {
fun of(dependencyNotation: String): GradleProcessorPath? {
val parts = dependencyNotation.split(':')
val groupId = parts.getOrNull(0)?.takeIf { it.isNotBlank() } ?: return null
val artifactId = parts.getOrNull(1)?.takeIf { it.isNotBlank() } ?: return null
return GradleProcessorPath(groupId, artifactId)
companion object {
fun of(dependencyNotation: String): GradleProcessorPath? {
val parts = dependencyNotation.split(':')
val groupId = parts.getOrNull(0)?.takeIf { it.isNotBlank() } ?: return null
val artifactId = parts.getOrNull(1)?.takeIf { it.isNotBlank() } ?: return null
return GradleProcessorPath(groupId, artifactId)
}
}
}
}
private val PROCESSOR_DEPENDENCY_REGEX = Regex(
"""(?m)^(\s*)(annotationProcessor|testAnnotationProcessor|implementation|testImplementation)\s*(?:\(\s*)?["']([^"']+)["']\s*\)?"""
"""(?m)^(\s*)(annotationProcessor|testAnnotationProcessor|implementation|testImplementation)\s*(?:\(\s*)?["']([^"']+)["']\s*\)?"""
)
private val KAPT_DEPENDENCY_REGEX = Regex("""(?m)^\s*(kapt|kaptTest)\s*(?:\(\s*)?["']([^"']+)["']""")
private val KSP_GRADLE_PLUGIN_REGEX = Regex(
listOf(
"""id\s*\(\s*["']$KSP_GRADLE_PLUGIN_ID_REGEX["']\s*\)""",
"""id\s+["']$KSP_GRADLE_PLUGIN_ID_REGEX["']""",
"""apply\s*\(?\s*plugin\s*[:=]\s*["']$KSP_GRADLE_PLUGIN_ID_REGEX["']\s*\)?""",
"""alias\s*\([^)\n]*\bksp\b[^)\n]*\)""",
).joinToString(separator = "|", prefix = "(?m)(?:", postfix = ")")
listOf(
"""id\s*\(\s*["']$KSP_GRADLE_PLUGIN_ID_REGEX["']\s*\)""",
"""id\s+["']$KSP_GRADLE_PLUGIN_ID_REGEX["']""",
"""apply\s*\(?\s*plugin\s*[:=]\s*["']$KSP_GRADLE_PLUGIN_ID_REGEX["']\s*\)?""",
"""alias\s*\([^)\n]*\bksp\b[^)\n]*\)""",
).joinToString(separator = "|", prefix = "(?m)(?:", postfix = ")")
)
private val KSP_DEPENDENCY_REGEX = Regex(
listOf(
"""^\s*ksp\w*\s*(?:\(\s*)?["']""",
"""^\s*add\s*\(\s*["']ksp\w*["']\s*,""",
).joinToString(separator = "|", prefix = "(?m)(?:", postfix = ")")
listOf(
"""^\s*ksp\w*\s*(?:\(\s*)?["']""",
"""^\s*add\s*\(\s*["']ksp\w*["']\s*,""",
).joinToString(separator = "|", prefix = "(?m)(?:", postfix = ")")
)
private val KNOWN_PROCESSOR_ARTIFACTS = setOf(
GradleProcessorPath("org.mapstruct", "mapstruct-processor"),
GradleProcessorPath("com.google.dagger", "dagger-compiler"),
GradleProcessorPath("com.google.dagger", "hilt-compiler"),
GradleProcessorPath("androidx.room", "room-compiler"),
GradleProcessorPath("org.hibernate.orm", "hibernate-jpamodelgen"),
GradleProcessorPath("org.hibernate", "hibernate-jpamodelgen"),
GradleProcessorPath("io.micronaut", "micronaut-inject-java"),
GradleProcessorPath("com.google.auto.service", "auto-service"),
GradleProcessorPath("com.querydsl", "querydsl-apt"),
GradleProcessorPath("org.mapstruct", "mapstruct-processor"),
GradleProcessorPath("com.google.dagger", "dagger-compiler"),
GradleProcessorPath("com.google.dagger", "hilt-compiler"),
GradleProcessorPath("androidx.room", "room-compiler"),
GradleProcessorPath("org.hibernate.orm", "hibernate-jpamodelgen"),
GradleProcessorPath("org.hibernate", "hibernate-jpamodelgen"),
GradleProcessorPath("io.micronaut", "micronaut-inject-java"),
GradleProcessorPath("com.google.auto.service", "auto-service"),
GradleProcessorPath("com.querydsl", "querydsl-apt"),
)
private val KNOWN_NON_LOMBOK_PROCESSOR_CLASSES = listOf(
"org.mapstruct.ap.MappingProcessor",
"dagger.internal.codegen.ComponentProcessor",
"com.google.dagger.hilt.processor.internal.root.RootProcessor",
"androidx.room.RoomProcessor",
"org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor",
"io.micronaut.annotation.processing.TypeElementVisitorProcessor",
"com.google.auto.service.processor.AutoServiceProcessor",
"com.querydsl.apt.jpa.JPAAnnotationProcessor",
"org.mapstruct.ap.MappingProcessor",
"dagger.internal.codegen.ComponentProcessor",
"com.google.dagger.hilt.processor.internal.root.RootProcessor",
"androidx.room.RoomProcessor",
"org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor",
"io.micronaut.annotation.processing.TypeElementVisitorProcessor",
"com.google.auto.service.processor.AutoServiceProcessor",
"com.querydsl.apt.jpa.JPAAnnotationProcessor",
)