improvements in ksp parts

This commit is contained in:
InsanusMokrassar committed 2024-10-17 21:04:41 +06:00
1 parent 8ce7d37b72
commit 496117d517
5 files changed
+49 -2

No files matched your search

@@ -0,0 +1,13 @@
package dev.inmo.micro_ksp.generator
import com.google.devtools.ksp.symbol.KSClassDeclaration
val KSClassDeclaration.buildSubFileName: String
get() {
val parentDeclarationCaptured = parentDeclaration
val simpleNameString = simpleName.asString()
return when (parentDeclarationCaptured) {
is KSClassDeclaration -> parentDeclarationCaptured.buildSubFileName
else -> ""
} + simpleNameString
}
@@ -0,0 +1,8 @@
package dev.inmo.micro_ksp.generator
import com.google.devtools.ksp.symbol.KSClassDeclaration
val KSClassDeclaration.companion
get() = declarations.firstNotNullOfOrNull {
(it as? KSClassDeclaration)?.takeIf { it.isCompanionObject }
}
@@ -0,0 +1,11 @@
package dev.inmo.micro_ksp.generator
import com.google.devtools.ksp.symbol.KSClassDeclaration
fun KSClassDeclaration.resolveSubclasses(): List<KSClassDeclaration> {
return (getSealedSubclasses().flatMap {
it.resolveSubclasses()
}.ifEmpty {
sequenceOf(this)
}).toList()
}