Skip to content

Commit

Permalink
Sort generated resource accessor properties to be stable
Browse files Browse the repository at this point in the history
  • Loading branch information
terrakok committed Nov 30, 2023
1 parent 09bd7d5 commit 3655935
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,18 @@ internal fun getResFileSpec(
addModifiers(KModifier.INTERNAL)
val types = resources.map { (type, idToResources) ->
getResourceTypeObject(type, idToResources)
}
}.sortedBy { it.name }
addTypes(types)
}.build())
}.build()

private fun getResourceTypeObject(type: ResourceType, nameToResources: Map<String, List<ResourceItem>>) =
TypeSpec.objectBuilder(type.typeName).apply {
nameToResources.forEach { (name, items) ->
addResourceProperty(name, items)
}
nameToResources.entries
.sortedBy { it.key }
.forEach { (name, items) ->
addResourceProperty(name, items.sortedBy { it.name })
}
}.build()

private fun TypeSpec.Builder.addResourceProperty(name: String, items: List<ResourceItem>) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ import org.jetbrains.compose.resources.ResourceItem
import org.jetbrains.compose.resources.StringResource

internal object Res {
public object fonts {
public val emptyfont: FontResource = FontResource(
"FONT:emptyfont",
setOf(
ResourceItem(setOf(), "composeRes/fonts/emptyFont.otf"),
)
)
}

public object images {
public val vector: ImageResource = ImageResource(
"IMAGE:vector",
Expand Down Expand Up @@ -47,28 +56,19 @@ internal object Res {
)
)

public val str_template: StringResource = StringResource(
"STRING:str_template",
"str_template",
setOf(
ResourceItem(setOf(), "composeRes/values/strings.xml"),
)
)

public val str_arr: StringResource = StringResource(
"STRING:str_arr",
"str_arr",
setOf(
ResourceItem(setOf(), "composeRes/values/strings.xml"),
)
)
}

public object fonts {
public val emptyfont: FontResource = FontResource(
"FONT:emptyfont",
public val str_template: StringResource = StringResource(
"STRING:str_template",
"str_template",
setOf(
ResourceItem(setOf(), "composeRes/fonts/emptyFont.otf"),
ResourceItem(setOf(), "composeRes/values/strings.xml"),
)
)
}
Expand Down

0 comments on commit 3655935

Please sign in to comment.