in src/commonMain/kotlin/org/intellij/markdown/parser/markerblocks/impl/SetextHeaderMarkerBlock.kt [36:61]
override fun doProcessToken(pos: LookaheadText.Position,
currentConstraints: MarkdownConstraints): MarkerBlock.ProcessingResult {
if (pos.offsetInCurrentLine != -1) {
return MarkerBlock.ProcessingResult.CANCEL
}
val startSpaces = pos.charsToNonWhitespace()
?: return MarkerBlock.ProcessingResult(MarkerBlock.ClosingAction.DROP, MarkerBlock.ClosingAction.DROP, MarkerBlock.EventAction.PROPAGATE)
val setextMarkerStart = pos.nextPosition(startSpaces)
if (setextMarkerStart?.char == '-') {
nodeType = MarkdownElementTypes.SETEXT_2
}
val setextMarkerStartOffset = setextMarkerStart?.offset ?: pos.offset
val markerNodeType = if (nodeType == MarkdownElementTypes.SETEXT_2)
MarkdownTokenTypes.SETEXT_2
else
MarkdownTokenTypes.SETEXT_1
contentMarker.done(MarkdownTokenTypes.SETEXT_CONTENT)
productionHolder.addProduction(listOf(SequentialParser.Node(
setextMarkerStartOffset..pos.nextLineOrEofOffset, markerNodeType)))
scheduleProcessingResult(pos.nextLineOrEofOffset, MarkerBlock.ProcessingResult.DEFAULT)
return MarkerBlock.ProcessingResult.CANCEL
}