Skip to content

Commit 80a80aa

Browse files
committed
feat: specify correct originatingFiles to optimize ksp output invalidation
1 parent 5490e4e commit 80a80aa

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

libs/processors/src/main/java/org/wordpress/android/processor/RemoteConfigProcessor.kt

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package org.wordpress.android.processor
55

66
import com.google.devtools.ksp.KspExperimental
7+
import com.google.devtools.ksp.containingFile
78
import com.google.devtools.ksp.getAnnotationsByType
89
import com.google.devtools.ksp.processing.CodeGenerator
910
import com.google.devtools.ksp.processing.Resolver
@@ -65,40 +66,45 @@ class RemoteConfigProcessor(
6566
.writeTo(
6667
codeGenerator,
6768
aggregating = true,
69+
originatingKSFiles = remoteFeatures.map { it.containingFile!! }
6870
)
6971
}
7072

7173
private fun generateRemoteFieldsConfigDefaults(resolver: Resolver) {
72-
val remoteFieldDefaults =
74+
val remoteFields =
7375
resolver.getSymbolsWithAnnotation("org.wordpress.android.annotation.RemoteFieldDefaultGenerater")
7476
.toList()
75-
.associate { element: KSAnnotated ->
76-
element.getAnnotationsByType(RemoteFieldDefaultGenerater::class)
77-
.toList()
78-
.first()
79-
.let { annotation ->
80-
annotation.remoteField to annotation.defaultValue
81-
}
82-
}
77+
val remoteFieldDefaults = remoteFields
78+
.associate { element: KSAnnotated ->
79+
element.getAnnotationsByType(RemoteFieldDefaultGenerater::class)
80+
.toList()
81+
.first()
82+
.let { annotation ->
83+
annotation.remoteField to annotation.defaultValue
84+
}
85+
}
8386

8487
RemoteFieldConfigDefaultsBuilder(remoteFieldDefaults).getContent()
8588
.writeTo(
8689
codeGenerator,
8790
aggregating = true,
91+
originatingKSFiles = remoteFields.map { it.containingFile!! }
8892
)
8993
}
9094

9195
private fun generateFeaturesInDevelopment(resolver: Resolver) {
92-
val featuresInDevelopmentDefaults =
96+
val featuresInDevelopment =
9397
resolver.getSymbolsWithAnnotation("org.wordpress.android.annotation.FeatureInDevelopment")
9498
.filterIsInstance<KSClassDeclaration>()
9599
.toList()
96-
.map { it.simpleName.asString() }
100+
val featuresInDevelopmentDefaults = featuresInDevelopment
101+
.map { it.simpleName.asString() }
97102

98103
FeaturesInDevelopmentDefaultsBuilder(featuresInDevelopmentDefaults).getContent()
99104
.writeTo(
100105
codeGenerator,
101106
aggregating = true,
107+
originatingKSFiles = featuresInDevelopment.map { it.containingFile!! }
102108
)
103109
}
104110

@@ -108,6 +114,7 @@ class RemoteConfigProcessor(
108114
).getContent().writeTo(
109115
codeGenerator,
110116
aggregating = true,
117+
originatingKSFiles = remoteFeatures.map { it.containingFile!! }
111118
)
112119
}
113120
}

0 commit comments

Comments
 (0)