Coverage Summary for Class: HighlightExtension (io.heapy.kotmark.ext.highlight)

Class Method, % Branch, % Line, % Instruction, %
HighlightExtension 83.3% (5/6) 85.7% (6/7) 100% (22/22)
HighlightExtension$Companion 100% (1/1) 100% (1/1) 100% (5/5)
HighlightExtension$extend$1 100% (1/1) 100% (1/1) 100% (4/4)
HighlightExtension$extend$2 100% (1/1) 100% (1/1) 100% (4/4)
HighlightExtension$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.highlight
 
 import io.heapy.kotmark.Extension
 import io.heapy.kotmark.ExtensionsBuilder
 import io.heapy.kotmark.ext.highlight.internal.HighlightDelimiterProcessor
 import io.heapy.kotmark.ext.highlight.internal.HighlightHtmlNodeRenderer
 import io.heapy.kotmark.ext.highlight.internal.HighlightMarkdownNodeRenderer
 import io.heapy.kotmark.ext.highlight.internal.HighlightTextContentNodeRenderer
 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 HighlightExtension private constructor() :
     Parser.ParserExtension,
     HtmlRenderer.HtmlRendererExtension,
     TextContentRenderer.TextContentRendererExtension,
     MarkdownRenderer.MarkdownRendererExtension {
     override fun extend(parserConfiguration: Parser.Configuration) {
         parserConfiguration.customDelimiterProcessor(HighlightDelimiterProcessor())
     }
 
     override fun extend(rendererConfiguration: HtmlRenderer.Configuration) {
         rendererConfiguration.nodeRendererFactory(::HighlightHtmlNodeRenderer)
     }
 
     override fun extend(rendererConfiguration: TextContentRenderer.Configuration) {
         rendererConfiguration.nodeRendererFactory(::HighlightTextContentNodeRenderer)
     }
 
     override fun extend(rendererConfiguration: MarkdownRenderer.Configuration) {
         rendererConfiguration.nodeRendererFactory(
             object : MarkdownNodeRendererFactory {
                 override val specialCharacters: Set<Char> = setOf('=')
 
                 override fun create(context: MarkdownNodeRendererContext): NodeRenderer =
                     HighlightMarkdownNodeRenderer(context)
             },
         )
     }
 
     companion object {
         @JvmStatic
         fun create(): Extension = HighlightExtension()
     }
 }
 
 /** Creates and appends [HighlightExtension]. */
 fun ExtensionsBuilder.highlight() {
     add(HighlightExtension.create())
 }