in src/commonMain/kotlin/org/intellij/markdown/html/HtmlGenerator.kt [124:159]
fun trimIndents(text: CharSequence, indent: Int): CharSequence {
if (indent == 0) {
return text
}
val buffer = StringBuilder()
var lastFlushed = 0
var offset = 0
while (offset < text.length) {
if (offset == 0 || text[offset - 1] == '\n') {
buffer.append(text.subSequence(lastFlushed, offset))
var indentEaten = 0
eatIndentLoop@
while (indentEaten < indent && offset < text.length) {
when (text[offset]) {
' ' -> indentEaten++
'\t' -> indentEaten += 4 - indentEaten % 4
else -> break@eatIndentLoop
}
offset++
}
if (indentEaten > indent) {
buffer.append(" ".repeat(indentEaten - indent))
}
lastFlushed = offset
}
offset++
}
buffer.append(text.subSequence(lastFlushed, text.length))
return buffer
}