1 import com.google.devtools.ksp.processing.* 2 import com.google.devtools.ksp.symbol.* 3 4 class TestProcessor : SymbolProcessor { 5 lateinit var codeGenerator: CodeGenerator 6 lateinit var logger: KSPLogger 7 lateinit var options: Map<String, String> 8 var rounds = 0 9 initnull10 fun init( 11 options: Map<String, String>, 12 kotlinVersion: KotlinVersion, 13 codeGenerator: CodeGenerator, 14 logger: KSPLogger 15 ) { 16 this.logger = logger 17 this.options = options 18 this.codeGenerator = codeGenerator 19 } 20 processnull21 override fun process(resolver: Resolver): List<KSAnnotated> { 22 if (options.containsKey("error")) { 23 throw IllegalStateException("Error on request") 24 } 25 return emptyList() 26 } 27 } 28 29 class TestProcessorProvider : SymbolProcessorProvider { createnull30 override fun create( 31 env: SymbolProcessorEnvironment 32 ): SymbolProcessor { 33 return TestProcessor().apply { 34 init(env.options, env.kotlinVersion, env.codeGenerator, env.logger) 35 } 36 } 37 } 38