Closed mzielinski closed 7 months ago
The warning in Kotlin docs may look a bit worrying, but that's not something we need to care about. This plugin is written for raw annotation processing API that is a part of Java specification - thanks to that we can process both, Java and Kotlin sources using the same implementation. Kapt is basically a tiny abstraction that makes Java's annotation processing possible on Kotlin sources and that's all we need - we're not really looking for Kotlin specific features here, so this approach works for us.
Speaking about KSP:
It could be supported as an alternative processor, purely for Kotlin, but we'd need to write some abstraction to avoid duplicating the same implementation in both tools. I was looking at it a while ago, but it was really unstable, and it'd be quite hard to reflect all current features there. The only real benefit that it'd give us is performance - KSP is simply faster, because it works directly on Kotlin sources. I'm gathering some experience in working with it in Sqiffy, so I'm kinda keeping track of this topic.
Information from kapt official page is:
kapt is in maintenance mode. We are keeping it up-to-date with recent Kotlin and Java releases but have no plans to implement new features. Please use the [Kotlin Symbol Processing API (KSP)](https://kotlinlang.org/docs/ksp-overview.html) for annotation processing. [See the list of libraries supported by KSP](https://kotlinlang.org/docs/ksp-overview.html#supported-libraries).
Are you plan to rewrite it to KSP?