fun lineAsTokens()

in src/main/kotlin/com/github/mkartashev/hserr/miner/text/Text.kt [37:50]


    fun lineAsTokens(l: Cursor): List<TextRange> {
        if (l.isAtEnd() || !l.isValid()) return emptyList()

        val result = mutableListOf<TextRange>()
        var cur = l.moveToNonWhitespace()
        while (cur.isValid() && !cur.isAtEnd() && cur.line == l.line) {
            val next = cur.moveToWordEnd()
            val s = TextRange.of(cur, next)
            if (!s.isEmpty()) result.add(s) else break
            cur = next.moveToNextChar().moveToNonWhitespace()
        }

        return result
    }