Coverage Summary for Class: TocBlockParser (io.heapy.kotmark.ext.toc.internal)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| TocBlockParser |
100%
(2/2)
|
|
100%
(3/3)
|
100%
(11/11)
|
| TocBlockParser$Factory |
100%
(2/2)
|
100%
(4/4)
|
100%
(5/5)
|
100%
(63/63)
|
| Total |
100%
(4/4)
|
100%
(4/4)
|
100%
(8/8)
|
100%
(74/74)
|
package io.heapy.kotmark.ext.toc.internal
import io.heapy.kotmark.ext.toc.TableOfContents
import io.heapy.kotmark.parser.block.AbstractBlockParser
import io.heapy.kotmark.parser.block.AbstractBlockParserFactory
import io.heapy.kotmark.parser.block.BlockContinue
import io.heapy.kotmark.parser.block.BlockStart
import io.heapy.kotmark.parser.block.MatchedBlockParser
import io.heapy.kotmark.parser.block.ParserState
internal class TocBlockParser(marker: String) : AbstractBlockParser() {
override val block = TableOfContents(marker)
override fun tryContinue(parserState: ParserState): BlockContinue? = null
class Factory(private val markers: Set<String>) : AbstractBlockParserFactory() {
override fun tryStart(state: ParserState, matchedBlockParser: MatchedBlockParser): BlockStart? {
if (state.indent >= 4) return null
val marker = state.line.content.substring(state.nextNonSpaceIndex).trimEnd(' ', '\t')
if (marker !in markers) return null
return BlockStart.of(TocBlockParser(marker)).atIndex(state.line.content.length)
}
}
}