Merge remote-tracking branch 'ksp/main' into feature/testJvmToolchains * ksp/main: (39 commits) expand array for java default array values. fallback to resolved java type in case of type argument substitution failure fix java array argument variance Fix mapping of TypeAliasDescriptor to KsTypeAlias fix type resolution scopes for nested local class. AA: add missing annotations on backing fileds into properties. workaround for classpath snapshot issue exclude resources from ktlint AA:add placeholder for Resolver.getPackageAnnotations Resolver.getPackagesWithAnnotation Add Resolver.getPackageAnnotations Resolver.getPackagesWithAnnotation api. These new APIs provides capability to inspect java package level annotations. CI: upload AA test reports AA: add test case for nested annotation fix nested annotation type resolution with usesite target fix annotation default value evaluation for array initializers Java shadow dir: handle absolute paths AA: support local declarations in property accessors. support local declarations in accessors for getSymbolsWithAnnotation support local declarations for property accessors AA: update CodeGeneratorImpl Generate Java to a new root in each round ... # Conflicts: # gradle.properties
Welcome to KSP!
Kotlin Symbol Processing (KSP) is an API that you can use to develop lightweight compiler plugins. KSP provides a simplified compiler plugin API that leverages the power of Kotlin while keeping the learning curve at a minimum. Compared to KAPT, annotation processors that use KSP can run up to 2x faster.
Most of the documentation of KSP can be found on kotlinlang.org. Here are some handy links:
Please let us know what you think about KSP by filing a Github issue or connecting with our team in the #ksp channel in the Kotlin Slack workspace!
If you are interested in sending PRs, please also check out the Contributor guide.
Here are some planned features that have not yet been completely implemented: