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)
}
}