override fun process()

in src/commonMain/kotlin/org/intellij/markdown/parser/sequentialparsers/impl/EmphStrongDelimiterParser.kt [39:69]


    override fun process(
        tokens: TokensCache,
        iterator: TokensCache.Iterator,
        delimiters: MutableList<Info>,
        result: SequentialParser.ParsingResultBuilder
    ) {
        var isStrong = false
        for (index in delimiters.indices.reversed()) {
            if (isStrong) {
                isStrong = false
                continue
            }
            val opener = delimiters[index]
            if (opener.tokenType != MarkdownTokenTypes.EMPH || opener.closerIndex == -1) {
                continue
            }
            isStrong = areAdjacentSameMarkers(delimiters, index, opener.closerIndex)
            val closer = delimiters[opener.closerIndex]
            val node = when {
                isStrong -> SequentialParser.Node(
                    range = opener.position - 1..closer.position + 2,
                    type = MarkdownElementTypes.STRONG
                )
                else -> SequentialParser.Node(
                    range = opener.position..closer.position + 1,
                    type = MarkdownElementTypes.EMPH
                )
            }
            result.withNode(node)
        }
    }