mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-10-28 18:50:30 +00:00
improvements in ksp parts
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
11
ksp/generator/src/main/kotlin/ResolveSubclasses.kt
Normal file
11
ksp/generator/src/main/kotlin/ResolveSubclasses.kt
Normal file
@@ -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