mirror of
https://github.com/JakeWharton/mosaic.git
synced 2025-11-01 20:20:19 +08:00
Introduce Compose ktlint rules (#267)
This commit is contained in:
@ -99,7 +99,7 @@ internal class MosaicNode(
|
||||
override var parentData: Any? = null
|
||||
private set
|
||||
|
||||
var modifiers: Modifier = Modifier
|
||||
var modifier: Modifier = Modifier
|
||||
set(value) {
|
||||
topLayer = value.foldOut(bottomLayer) { element, lowerLayer ->
|
||||
when (element) {
|
||||
|
||||
@ -28,7 +28,7 @@ public fun Box(
|
||||
val measurePolicy = rememberBoxMeasurePolicy(contentAlignment, propagateMinConstraints)
|
||||
Layout(
|
||||
content = { BoxScopeInstance.content() },
|
||||
modifiers = modifier,
|
||||
modifier = modifier,
|
||||
debugInfo = { "Box(alignment=$contentAlignment, propagateMinConstraints=$propagateMinConstraints)" },
|
||||
measurePolicy = measurePolicy,
|
||||
)
|
||||
|
||||
@ -20,7 +20,7 @@ public fun Column(
|
||||
val measurePolicy = columnMeasurePolicy(verticalArrangement, horizontalAlignment)
|
||||
Layout(
|
||||
content = { ColumnScopeInstance.content() },
|
||||
modifiers = modifier,
|
||||
modifier = modifier,
|
||||
debugInfo = { "Column(arrangement=$verticalArrangement, alignment=$horizontalAlignment)" },
|
||||
measurePolicy = measurePolicy,
|
||||
)
|
||||
|
||||
@ -37,15 +37,16 @@ internal sealed class NoContentMeasureScope {
|
||||
|
||||
@Composable
|
||||
@MosaicComposable
|
||||
@Suppress("ktlint:compose:param-order-check") // Order is correct, check just can't tell.
|
||||
internal fun Layout(
|
||||
modifiers: Modifier = Modifier,
|
||||
modifier: Modifier = Modifier,
|
||||
debugInfo: () -> String = { "Layout()" },
|
||||
measurePolicy: NoContentMeasurePolicy,
|
||||
) {
|
||||
Node(
|
||||
measurePolicy = NoContentMeasurePolicyMeasurePolicy(measurePolicy),
|
||||
modifiers = modifiers,
|
||||
debugPolicy = { debugInfo() + " x=$x y=$y w=$width h=$height${modifiers.toDebugString()}" },
|
||||
modifier = modifier,
|
||||
debugPolicy = { debugInfo() + " x=$x y=$y w=$width h=$height${modifier.toDebugString()}" },
|
||||
factory = NodeFactory,
|
||||
)
|
||||
}
|
||||
@ -63,20 +64,21 @@ private class NoContentMeasurePolicyMeasurePolicy(
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Suppress("ktlint:compose:param-order-check") // Order is what we want.
|
||||
public fun Layout(
|
||||
content: @Composable () -> Unit,
|
||||
modifiers: Modifier = Modifier,
|
||||
modifier: Modifier = Modifier,
|
||||
debugInfo: () -> String = { "Layout()" },
|
||||
measurePolicy: MeasurePolicy,
|
||||
) {
|
||||
Node(
|
||||
content = content,
|
||||
measurePolicy = measurePolicy,
|
||||
modifiers = modifiers,
|
||||
modifier = modifier,
|
||||
debugPolicy = {
|
||||
buildString {
|
||||
append(debugInfo())
|
||||
append(" x=$x y=$y w=$width h=$height${modifiers.toDebugString()}")
|
||||
append(" x=$x y=$y w=$width h=$height${modifier.toDebugString()}")
|
||||
children.joinTo(this, separator = "") {
|
||||
"\n" + it.toString().prependIndent(" ")
|
||||
}
|
||||
|
||||
@ -14,11 +14,12 @@ import com.jakewharton.mosaic.ui.unit.Constraints
|
||||
|
||||
@Composable
|
||||
@MosaicComposable
|
||||
@Suppress("ktlint") // TODO why doesn't "ktlint:compose:param-order-check" work here?
|
||||
internal inline fun Node(
|
||||
content:
|
||||
@Composable @MosaicComposable
|
||||
() -> Unit = {},
|
||||
modifiers: Modifier,
|
||||
modifier: Modifier,
|
||||
measurePolicy: MeasurePolicy,
|
||||
debugPolicy: DebugPolicy,
|
||||
noinline factory: () -> MosaicNode,
|
||||
@ -27,7 +28,7 @@ internal inline fun Node(
|
||||
factory = factory,
|
||||
update = {
|
||||
set(measurePolicy) { this.measurePolicy = measurePolicy }
|
||||
set(modifiers) { this.modifiers = modifiers }
|
||||
set(modifier) { this.modifier = modifier }
|
||||
set(debugPolicy) { this.debugPolicy = debugPolicy }
|
||||
},
|
||||
content = content,
|
||||
|
||||
@ -20,7 +20,7 @@ public fun Row(
|
||||
val measurePolicy = rowMeasurePolicy(horizontalArrangement, verticalAlignment)
|
||||
Layout(
|
||||
content = { RowScopeInstance.content() },
|
||||
modifiers = modifier,
|
||||
modifier = modifier,
|
||||
debugInfo = { "Row(arrangement=$horizontalArrangement, alignment=$verticalAlignment)" },
|
||||
measurePolicy = measurePolicy,
|
||||
)
|
||||
|
||||
@ -17,11 +17,11 @@ import com.jakewharton.mosaic.ui.unit.Constraints
|
||||
*/
|
||||
@Composable
|
||||
@NonRestartableComposable
|
||||
public fun Spacer(modifier: Modifier) {
|
||||
public fun Spacer(modifier: Modifier = Modifier) {
|
||||
Layout(
|
||||
content = EmptySpacerContent,
|
||||
measurePolicy = SpacerMeasurePolicy,
|
||||
modifiers = modifier,
|
||||
modifier = modifier,
|
||||
debugInfo = { "Spacer()" },
|
||||
)
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ public fun <T> Static(
|
||||
}
|
||||
}
|
||||
},
|
||||
modifiers = Modifier,
|
||||
modifier = Modifier,
|
||||
debugPolicy = {
|
||||
children.joinToString(prefix = "Static()") { "\n" + it.toString().prependIndent(" ") }
|
||||
},
|
||||
|
||||
@ -31,7 +31,7 @@ public fun Text(
|
||||
layout.measure()
|
||||
layout(layout.width, layout.height)
|
||||
},
|
||||
modifiers = modifier.drawBehind {
|
||||
modifier = modifier.drawBehind {
|
||||
layout.lines.forEachIndexed { row, line ->
|
||||
drawText(row, 0, line, color, background, style)
|
||||
}
|
||||
@ -59,7 +59,7 @@ public fun Text(
|
||||
layout.measure()
|
||||
layout(layout.width, layout.height)
|
||||
},
|
||||
modifiers = modifier.drawBehind {
|
||||
modifier = modifier.drawBehind {
|
||||
layout.lines.forEachIndexed { row, line ->
|
||||
drawText(row, 0, line, color, background, style)
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ class DebugRenderingTest {
|
||||
val nodes = mosaicNodes {
|
||||
Row {
|
||||
Text("Hello ")
|
||||
Layout(modifiers = Modifier.drawBehind { throw UnsupportedOperationException() }) {
|
||||
Layout(modifier = Modifier.drawBehind { throw UnsupportedOperationException() }) {
|
||||
layout(5, 1)
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,7 +105,7 @@ class LayoutTest {
|
||||
Row {
|
||||
Text("..")
|
||||
Layout(
|
||||
modifiers = Modifier.drawBehind {
|
||||
modifier = Modifier.drawBehind {
|
||||
repeat(4) { row ->
|
||||
drawText(row, 0, "XXXX")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user