Compare commits

...

5 Commits

Author SHA1 Message Date
c5dbd10335 hotfix due to deprecated annotation 2024-10-19 15:39:00 +06:00
ee2521cb01 update dependencies 2024-10-19 15:21:00 +06:00
4625dfb857 replace GenerateSealedWorkaround 2024-10-19 13:44:37 +06:00
b9a2653066 start 0.22.7 2024-10-19 13:41:25 +06:00
fcaa327660 Merge pull request #501 from InsanusMokrassar/0.22.6
0.22.6
2024-10-17 22:40:53 +06:00
8 changed files with 37 additions and 11 deletions

View File

@@ -1,5 +1,14 @@
# Changelog # Changelog
## 0.22.7
* `Versions`:
* `Kotlin`: `2.0.20` -> `2.0.21`
* `Compose`: `1.7.0-rc01` -> `1.7.0`
* `KSP`:
* `Sealed`:
* Change package of `GenerateSealedWorkaround`. Migration: replace `dev.inmo.microutils.kps.sealed.GenerateSealedWorkaround` -> `dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround`
## 0.22.6 ## 0.22.6
* `KSP`: * `KSP`:

View File

@@ -15,5 +15,5 @@ crypto_js_version=4.1.1
# Project data # Project data
group=dev.inmo group=dev.inmo
version=0.22.6 version=0.22.7
android_code_version=272 android_code_version=273

View File

@@ -1,12 +1,12 @@
[versions] [versions]
kt = "2.0.20" kt = "2.0.21"
kt-serialization = "1.7.3" kt-serialization = "1.7.3"
kt-coroutines = "1.9.0" kt-coroutines = "1.9.0"
kslog = "1.3.6" kslog = "1.3.6"
jb-compose = "1.7.0-rc01" jb-compose = "1.7.0"
jb-exposed = "0.55.0" jb-exposed = "0.55.0"
jb-dokka = "1.9.20" jb-dokka = "1.9.20"
@@ -23,7 +23,7 @@ koin = "4.0.0"
okio = "3.9.1" okio = "3.9.1"
ksp = "2.0.20-1.0.25" ksp = "2.0.21-1.0.25"
kotlin-poet = "1.18.1" kotlin-poet = "1.18.1"
versions = "0.51.0" versions = "0.51.0"

View File

@@ -0,0 +1,11 @@
package dev.inmo.micro_utils.ksp.sealed.generator
import com.google.devtools.ksp.KspExperimental
import com.google.devtools.ksp.getAnnotationsByType
import com.google.devtools.ksp.symbol.KSClassDeclaration
import dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround
import dev.inmo.microutils.kps.sealed.GenerateSealedWorkaround as OldGenerateSealedWorkaround
@OptIn(KspExperimental::class)
val KSClassDeclaration.getGenerateSealedWorkaroundAnnotation
get() = (getAnnotationsByType(GenerateSealedWorkaround::class).firstOrNull() ?: getAnnotationsByType(OldGenerateSealedWorkaround::class).firstOrNull())

View File

@@ -19,7 +19,7 @@ import dev.inmo.micro_ksp.generator.buildSubFileName
import dev.inmo.micro_ksp.generator.companion import dev.inmo.micro_ksp.generator.companion
import dev.inmo.micro_ksp.generator.findSubClasses import dev.inmo.micro_ksp.generator.findSubClasses
import dev.inmo.micro_ksp.generator.writeFile import dev.inmo.micro_ksp.generator.writeFile
import dev.inmo.microutils.kps.sealed.GenerateSealedWorkaround import dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround
import java.io.File import java.io.File
class Processor( class Processor(
@@ -53,10 +53,10 @@ class Processor(
ksClassDeclaration: KSClassDeclaration, ksClassDeclaration: KSClassDeclaration,
resolver: Resolver resolver: Resolver
) { ) {
val annotation = ksClassDeclaration.getAnnotationsByType(GenerateSealedWorkaround::class).first() val annotation = ksClassDeclaration.getGenerateSealedWorkaroundAnnotation
val subClasses = ksClassDeclaration.resolveSubclasses( val subClasses = ksClassDeclaration.resolveSubclasses(
searchIn = resolver.getAllFiles(), searchIn = resolver.getAllFiles(),
allowNonSealed = annotation.includeNonSealedSubTypes allowNonSealed = annotation ?.includeNonSealedSubTypes ?: false
).distinct() ).distinct()
val subClassesNames = subClasses.filter { val subClassesNames = subClasses.filter {
when (it.classKind) { when (it.classKind) {
@@ -112,7 +112,7 @@ class Processor(
@OptIn(KspExperimental::class) @OptIn(KspExperimental::class)
override fun process(resolver: Resolver): List<KSAnnotated> { override fun process(resolver: Resolver): List<KSAnnotated> {
(resolver.getSymbolsWithAnnotation(GenerateSealedWorkaround::class.qualifiedName!!)).filterIsInstance<KSClassDeclaration>().forEach { (resolver.getSymbolsWithAnnotation(GenerateSealedWorkaround::class.qualifiedName!!)).filterIsInstance<KSClassDeclaration>().forEach {
val prefix = it.getAnnotationsByType(GenerateSealedWorkaround::class).first().prefix.takeIf { val prefix = (it.getGenerateSealedWorkaroundAnnotation) ?.prefix ?.takeIf {
it.isNotEmpty() it.isNotEmpty()
} ?: it.buildSubFileName.replaceFirst(it.simpleName.asString(), "") } ?: it.buildSubFileName.replaceFirst(it.simpleName.asString(), "")
it.writeFile(prefix = prefix, suffix = "SealedWorkaround") { it.writeFile(prefix = prefix, suffix = "SealedWorkaround") {

View File

@@ -1,6 +1,6 @@
package dev.inmo.micro_utils.ksp.sealed.generator.test package dev.inmo.micro_utils.ksp.sealed.generator.test
import dev.inmo.microutils.kps.sealed.GenerateSealedWorkaround import dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround
@GenerateSealedWorkaround @GenerateSealedWorkaround
sealed interface Test { sealed interface Test {

View File

@@ -1,4 +1,4 @@
package dev.inmo.microutils.kps.sealed package dev.inmo.micro_utils.ksp.sealed
@Retention(AnnotationRetention.BINARY) @Retention(AnnotationRetention.BINARY)
@Target(AnnotationTarget.CLASS) @Target(AnnotationTarget.CLASS)

View File

@@ -0,0 +1,6 @@
package dev.inmo.microutils.kps.sealed
import dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround
@Deprecated("Replaced", ReplaceWith("GenerateSealedWorkaround", "dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround"))
typealias GenerateSealedWorkaround = GenerateSealedWorkaround