Refactor header-level code in ToC builder
authorLanius Trolling <lanius@laniustrolling.dev>
Tue, 23 Jul 2024 17:15:42 +0000 (13:15 -0400)
committerLanius Trolling <lanius@laniustrolling.dev>
Tue, 23 Jul 2024 17:15:42 +0000 (13:15 -0400)
src/jvmMain/kotlin/info/mechyrdia/lore/ParserBuilder.kt

index 7cbe750da906a373fd9af0a3e60e6eb1f941e06c..17ecfb4d1eee6fd161cd20a3316af83ae9579801 100644 (file)
@@ -42,9 +42,11 @@ class TableOfContentsBuilder {
                if (level > levels.size)
                        levels.add(1)
                else {
-                       val newLevels = levels.take(level).mapIndexed { i, n -> if (i == level - 1) n + 1 else n }
+                       val baseLevels = levels.take(level - 1)
+                       val addedLevel = levels[level - 1] + 1
                        levels.clear()
-                       levels.addAll(newLevels)
+                       levels.addAll(baseLevels)
+                       levels.add(addedLevel)
                }
                
                val number = levels.joinToString(separator = ".") { it.toString() }