in src/commonMain/kotlin/org/intellij/markdown/flavours/gfm/StrikeThroughDelimiterParser.kt [37:74]
override fun process(
tokens: TokensCache,
iterator: TokensCache.Iterator,
delimiters: MutableList<Info>,
result: SequentialParser.ParsingResultBuilder
) {
// Start at the end and move backward, matching tokens
var index = delimiters.size - 1
while (index > 0) {
// Find opening tilde
if (!delimiters[index].isOpeningTilde()) {
index -= 1
continue
}
var openerIndex = index
var closerIndex = delimiters[index].closerIndex
// Attempt to widen the matched delimiters
var delimitersMatched = 1
while (EmphStrongDelimiterParser.areAdjacentSameMarkers(delimiters, openerIndex, closerIndex)) {
openerIndex -= 1
closerIndex += 1
delimitersMatched += 1
}
// If 3 or more delimiters are matched, ignore
if (delimitersMatched < 3) {
val opener = delimiters[openerIndex]
val closer = delimiters[closerIndex]
result.withNode(SequentialParser.Node(opener.position..closer.position + 1, GFMElementTypes.STRIKETHROUGH))
}
// Update index
index = openerIndex - 1
}
}