in src/commonMain/kotlin/org/intellij/markdown/flavours/gfm/table/GitHubTableMarkerBlock.kt [29:51]
override fun doProcessToken(pos: LookaheadText.Position, currentConstraints: MarkdownConstraints): MarkerBlock.ProcessingResult {
currentLine++
// That means it's table header separator line
if (currentLine == 1) {
productionHolder.addProduction(listOf(SequentialParser.Node(pos.offset + 1..pos.nextLineOrEofOffset,
GFMTokenTypes.TABLE_SEPARATOR)))
return MarkerBlock.ProcessingResult.CANCEL
}
val line = pos.currentLine
if (!isProbablyTableLine(line)) {
return MarkerBlock.ProcessingResult.DEFAULT
}
val cellsAndSeps = fillCells(pos)
if (cellsAndSeps.isEmpty()) {
return MarkerBlock.ProcessingResult.DEFAULT
}
productionHolder.addProduction(
listOf(SequentialParser.Node(cellsAndSeps.first().range.first..cellsAndSeps.last().range.last,
GFMElementTypes.ROW))
+ cellsAndSeps)
return MarkerBlock.ProcessingResult.CANCEL
}