1 import com.google.devtools.ksp.processing.* 2 import com.google.devtools.ksp.symbol.* 3 4 class EchoProcessor(val codeGenerator: CodeGenerator, val logger: KSPLogger) : SymbolProcessor { 5 var invoked = false 6 processnull7 override fun process(resolver: Resolver): List<KSAnnotated> { 8 if (invoked) { 9 return emptyList() 10 } 11 invoked = true 12 13 val allInputs = resolver.getAllFiles().map { it.fileName.split(".").first() }.sorted().joinToString("_") 14 15 logger.warn("EchoProcessor: $allInputs") 16 17 codeGenerator.createNewFile(Dependencies(true), "", "($allInputs)").close() 18 19 return emptyList() 20 } 21 } 22 23 class EchoProcessorProvider : SymbolProcessorProvider { createnull24 override fun create(env: SymbolProcessorEnvironment): SymbolProcessor { 25 return EchoProcessor(env.codeGenerator, env.logger) 26 } 27 } 28