Coverage Summary for Class: TableTextContentNodeRenderer (io.heapy.kotmark.ext.gfm.tables.internal)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| TableTextContentNodeRenderer |
100%
(1/1)
|
100%
(7/7)
|
100%
(4/4)
|
100%
(20/20)
|
100%
(68/68)
|
package io.heapy.kotmark.ext.gfm.tables.internal
import io.heapy.kotmark.ext.gfm.tables.TableBlock
import io.heapy.kotmark.ext.gfm.tables.TableBody
import io.heapy.kotmark.ext.gfm.tables.TableCell
import io.heapy.kotmark.ext.gfm.tables.TableHead
import io.heapy.kotmark.ext.gfm.tables.TableRow
import io.heapy.kotmark.node.Node
import io.heapy.kotmark.renderer.text.TextContentNodeRendererContext
class TableTextContentNodeRenderer(
private val context: TextContentNodeRendererContext,
) : TableNodeRenderer() {
private val writer = context.writer
override fun renderBlock(node: TableBlock) {
writer.pushTight(true)
renderChildren(node)
writer.popTight()
writer.block()
}
override fun renderHead(node: TableHead) {
renderChildren(node)
}
override fun renderBody(node: TableBody) {
renderChildren(node)
}
override fun renderRow(node: TableRow) {
renderChildren(node)
writer.block()
}
override fun renderCell(node: TableCell) {
renderChildren(node)
if (node.next != null) {
writer.write('|')
writer.whitespace()
}
}
private fun renderChildren(parent: Node) {
var child = parent.firstChild
while (child != null) {
val next = child.next
context.render(child)
child = next
}
}
}