ralf
05/20/2020, 3:42 AMPackageFragmentProviderExtension
? I’m always looking at the Android Synthetic implementation, but it’s quite complicated.
My goal is only to generate a new top level property without a setter in a new package. I see good examples how to generate the property here: https://github.com/JetBrains/kotlin/blob/5636227857545fb11ae2790fca55934b0f88a468/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/res/syntheticDescriptorGeneration.kt Only the PackageFragmentProvider code is extremely confusing.shikasd
05/20/2020, 9:58 AMshikasd
05/20/2020, 10:05 AMclass T : PackageFragmentProvider {
override fun getPackageFragments(fqName: FqName): List<PackageFragmentDescriptor> =
when (fqName == "me.shika") {
true -> listOf(customDescriptor)
false -> emptyList()
}
class CustomDescriptor : PackageFragmentDescriptorImpl() {
override fun getMemberScope(): MemberScope =
object : MemberScopeImpl() {
override fun getContributedFunctions(
name: Name,
location: LookupLocation
): Collection<SimpleFunctionDescriptor> =
if (name == "myCustomProp") {
listOf(genProperty(name))
} else {
emptyList()
}
}
}
}
shikasd
05/20/2020, 10:06 AMshikasd
05/20/2020, 11:12 AMralf
05/20/2020, 5:11 PMshikasd
05/20/2020, 7:46 PM