mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2026-11-11 06:22:59 +00:00
improvements in ksp parts
This commit is contained in:
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()
|
||||
}
|
||||
Reference in new issue
Block a user