diff --git a/ksp/core-processor/jvm/src/dev/programadorthi/routing/ksp/RoutingProcessor.kt b/ksp/core-processor/jvm/src/dev/programadorthi/routing/ksp/RoutingProcessor.kt index c5efe95..5b0d8ec 100644 --- a/ksp/core-processor/jvm/src/dev/programadorthi/routing/ksp/RoutingProcessor.kt +++ b/ksp/core-processor/jvm/src/dev/programadorthi/routing/ksp/RoutingProcessor.kt @@ -33,12 +33,16 @@ import io.ktor.util.Attributes public class RoutingProcessorProvider : SymbolProcessorProvider { override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { - return RoutingProcessor(codeGenerator = environment.codeGenerator) + return RoutingProcessor( + codeGenerator = environment.codeGenerator, + options = environment.options + ) } } private class RoutingProcessor( private val codeGenerator: CodeGenerator, + private val options: Map, ) : SymbolProcessor { private var invoked = false @@ -316,7 +320,7 @@ private class RoutingProcessor( FileSpec .builder( packageName = "dev.programadorthi.routing.generated", - fileName = "ModuleRoutes" + fileName = "${options["Routing_Module_Name"] ?: "Module"}Routes", ) .addFileComment("Generated by Kotlin Routing") .addFunction(this) diff --git a/ksp/gradle-plugin/src/main/kotlin/dev/programadorthi/routing/gradle/KotlinRoutingGradlePlugin.kt b/ksp/gradle-plugin/src/main/kotlin/dev/programadorthi/routing/gradle/KotlinRoutingGradlePlugin.kt index 7574d61..4d910fb 100644 --- a/ksp/gradle-plugin/src/main/kotlin/dev/programadorthi/routing/gradle/KotlinRoutingGradlePlugin.kt +++ b/ksp/gradle-plugin/src/main/kotlin/dev/programadorthi/routing/gradle/KotlinRoutingGradlePlugin.kt @@ -15,6 +15,15 @@ class KotlinRoutingGradlePlugin : Plugin { "KSP plugin not found. Please, apply ksp plugin before routing plugin" } + val kspExtension = extensions.findByName("ksp") ?: error("KSP config not found") + val argMethod = kspExtension.javaClass.getMethod("arg", String::class.java, String::class.java) + val customModuleName = project.path + .split(Regex("""\W""")) + .joinToString(separator = "", prefix = "_") { part -> + part.replaceFirstChar { it.titlecase() } + } + argMethod.invoke(kspExtension, "Routing_Module_Name", customModuleName) + val kex = kotlinExtension if (kex is KotlinSingleTargetExtension<*>) { dependencies.add("ksp", PROCESSOR)