mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] KTIJ-39619 Reformat code
(cherry picked from commit 14114766eb0a1bbc4d492f034ae93a5c482185fb) IJ-CR-215390 GitOrigin-RevId: 83b4c8e35d67dc66c339ac82dd17496ed7e410d4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b03142199a
commit
0b0dbf8a0d
+96
-96
@@ -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",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user