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