override fun createMarkerBlocks()

in src/commonMain/kotlin/org/intellij/markdown/parser/markerblocks/providers/ListMarkerProvider.kt [13:42]


    override fun createMarkerBlocks(pos: LookaheadText.Position,
                                   productionHolder: ProductionHolder,
                                   stateInfo: MarkerProcessor.StateInfo): List<MarkerBlock> {

//        if (Character.isWhitespace(pos.char)) {
//            return emptyList()
//        }
//        if (pos.offsetInCurrentLine != 0 && !Character.isWhitespace(pos.currentLine[pos.offsetInCurrentLine - 1])) {
//            return emptyList()
//        }

        val currentConstraints = stateInfo.currentConstraints
        val nextConstraints = stateInfo.nextConstraints

        if (!MarkerBlockProvider.isStartOfLineWithConstraints(pos, currentConstraints)) {
            return emptyList()
        }
        if (nextConstraints != currentConstraints
                && nextConstraints.types.lastOrNull() != '>' && nextConstraints.getLastExplicit() == true) {

            val result = ArrayList<MarkerBlock>()
            if (stateInfo.lastBlock !is ListMarkerBlock) {
                result.add(ListMarkerBlock(nextConstraints, productionHolder.mark(), nextConstraints.types.lastOrNull()!!))
            }
            result.add(ListItemMarkerBlock(nextConstraints, productionHolder.mark()))
            return result
        } else {
            return emptyList()
        }
    }