Coverage Summary for Class: InsExtension (io.heapy.kotmark.ext.ins)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| InsExtension |
83.3%
(5/6)
|
|
85.7%
(6/7)
|
100%
(22/22)
|
| InsExtension$Companion |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(5/5)
|
| InsExtension$extend$1 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(4/4)
|
| InsExtension$extend$2 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(4/4)
|
| InsExtension$extend$3 |
100%
(2/2)
|
|
100%
(3/3)
|
100%
(14/14)
|
| Total |
90.9%
(10/11)
|
|
92.3%
(12/13)
|
100%
(49/49)
|
package io.heapy.kotmark.ext.ins
import io.heapy.kotmark.Extension
import io.heapy.kotmark.ExtensionsBuilder
import io.heapy.kotmark.ext.ins.internal.InsDelimiterProcessor
import io.heapy.kotmark.ext.ins.internal.InsHtmlNodeRenderer
import io.heapy.kotmark.ext.ins.internal.InsMarkdownNodeRenderer
import io.heapy.kotmark.ext.ins.internal.InsTextContentNodeRenderer
import io.heapy.kotmark.parser.Parser
import io.heapy.kotmark.renderer.NodeRenderer
import io.heapy.kotmark.renderer.html.HtmlRenderer
import io.heapy.kotmark.renderer.markdown.MarkdownNodeRendererContext
import io.heapy.kotmark.renderer.markdown.MarkdownNodeRendererFactory
import io.heapy.kotmark.renderer.markdown.MarkdownRenderer
import io.heapy.kotmark.renderer.text.TextContentRenderer
import kotlin.jvm.JvmStatic
class InsExtension private constructor() :
Parser.ParserExtension,
HtmlRenderer.HtmlRendererExtension,
TextContentRenderer.TextContentRendererExtension,
MarkdownRenderer.MarkdownRendererExtension {
override fun extend(parserConfiguration: Parser.Configuration) {
parserConfiguration.customDelimiterProcessor(InsDelimiterProcessor())
}
override fun extend(rendererConfiguration: HtmlRenderer.Configuration) {
rendererConfiguration.nodeRendererFactory(::InsHtmlNodeRenderer)
}
override fun extend(rendererConfiguration: TextContentRenderer.Configuration) {
rendererConfiguration.nodeRendererFactory(::InsTextContentNodeRenderer)
}
override fun extend(rendererConfiguration: MarkdownRenderer.Configuration) {
rendererConfiguration.nodeRendererFactory(
object : MarkdownNodeRendererFactory {
override val specialCharacters: Set<Char> = setOf('+')
override fun create(context: MarkdownNodeRendererContext): NodeRenderer =
InsMarkdownNodeRenderer(context)
},
)
}
companion object {
@JvmStatic
fun create(): Extension = InsExtension()
}
}
/** Creates and appends [InsExtension]. */
fun ExtensionsBuilder.ins() {
add(InsExtension.create())
}