The same pass the server had, on the Kotlin side: comments restating what the code says are gone, and the ones recording a measurement, a constraint or an incident are kept but cut to a few lines each. 6540 comment lines to 5674, and 920 lines off the app. Two doc comments had drifted onto the item above the one they describe -- `contextAfter`'s onto `sessionWorking` in Events.kt, and `UsageMonitor`'s equivalent on the server was fixed in the previous commit. Each is back on its own item, which is the only non-comment line this diff moves. The comments are reflowed to the column limit at their own indentation: several were written wide, and ktfmt re-wrapped them into lines holding a single orphan word. `/tmp` script, not kept -- ktfmt is idempotent over the result, which is the check. Left alone deliberately: this codebase's remaining comment density is high because the comments carry things the code cannot say -- what a null means, what a number was measured against, which bug a guard exists for. Of the 238 one-line doc comments in the app, five were pure restatement of the name and were removed; the rest each say something the signature does not. ktfmtFormat, compileDebugKotlin, lintDebug and testDebugUnitTest pass; cargo test (127), clippy --all-targets and fmt still clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.4 KiB
Kotlin
36 lines
1.4 KiB
Kotlin
package com.example.aiapp
|
|
|
|
import androidx.compose.foundation.background
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.ColumnScope
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.draw.clip
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
/**
|
|
* Verbatim text, on the surface that says so: a command about to be run, what a tool printed.
|
|
*
|
|
* A composable rather than a modifier repeated at each site, because the inset is part of it --
|
|
* monospace text drawn hard against the edge of a tinted block reads as a clipping fault, and three
|
|
* copies of "clip, fill, pad" drift apart the first time one is adjusted.
|
|
*
|
|
* The colour is [rawSurface], which is also what a code block inside a reply is given.
|
|
*/
|
|
@Composable
|
|
fun RawBlock(modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit) {
|
|
Column(
|
|
modifier
|
|
.fillMaxWidth()
|
|
// Smaller than a card's radius, and deliberately: this sits *inside* one, and a rounded
|
|
// rectangle drawn at the same radius as the one behind it reads as a misprint.
|
|
.clip(MaterialTheme.shapes.extraSmall)
|
|
.background(rawSurface)
|
|
.padding(horizontal = 8.dp, vertical = 6.dp),
|
|
content = content,
|
|
)
|
|
}
|