diff options
author | Ting-Yuan Huang <laszio@google.com> | 2021-10-15 21:20:15 -0700 |
---|---|---|
committer | laszio <ting-yuan@users.noreply.github.com> | 2021-10-18 15:00:40 -0700 |
commit | a38ac896fa80a659907485c02bfa688b7d79ca25 (patch) | |
tree | 645e165302a85dff78d5293fcdefd02362d94ad7 /api | |
parent | ab1227711c16ade0bff8e6cc2810d97991bd56d1 (diff) | |
download | ksp-a38ac896fa80a659907485c02bfa688b7d79ca25.tar.gz |
Add CodeGenerator.associateWithClasses
So that changes in unreachable classes can invalidate corresponding
outputs and trigger re-processing correctly.
The implementation creates an internal, virtual NoSourceFile for each
class to propagate dirtyness.
Diffstat (limited to 'api')
-rw-r--r-- | api/src/main/kotlin/com/google/devtools/ksp/processing/CodeGenerator.kt | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/api/src/main/kotlin/com/google/devtools/ksp/processing/CodeGenerator.kt b/api/src/main/kotlin/com/google/devtools/ksp/processing/CodeGenerator.kt index d9312cf7..0e429c54 100644 --- a/api/src/main/kotlin/com/google/devtools/ksp/processing/CodeGenerator.kt +++ b/api/src/main/kotlin/com/google/devtools/ksp/processing/CodeGenerator.kt @@ -77,6 +77,25 @@ interface CodeGenerator { */ fun associate(sources: List<KSFile>, packageName: String, fileName: String, extensionName: String = "kt") + /** + * Associate [classes] to an output file. + * + * @param classes are [KSClassDeclaration]s from which this output is built. Only those that are obtained directly + * from [Resolver] are required. + * @param packageName corresponds to the relative path of the generated file; using either '.'or '/' as separator. + * @param fileName file name + * @param extensionName If "kt" or "java", this file will participate in subsequent compilation. + * Otherwise its creation is only considered in incremental processing. + * @return OutputStream for writing into files. + * @see [CodeGenerator] for more details. + */ + fun associateWithClasses( + classes: List<KSClassDeclaration>, + packageName: String, + fileName: String, + extensionName: String = "kt" + ) + val generatedFile: Collection<File> } |