override fun advance()

in src/rider/main/kotlin/com/jetbrains/rider/plugins/dotnetdisassembler/language/AsmSyntaxHighlighter.kt [153:198]


    override fun advance() {
        if (currentOffset >= endOffset) {
            currentTokenType = null
            return
        }

        startOffset = currentOffset
        val ch = buffer[currentOffset]

        when {
            ch == ';' -> {
                while (currentOffset < endOffset && buffer[currentOffset] != '\n') {
                    currentOffset++
                }
                currentTokenType = AsmTokenTypes.COMMENT
            }

            ch == '\n' -> {
                currentOffset++
                lineStart = true
                currentTokenType = AsmTokenTypes.WHITESPACE
            }

            ch.isWhitespace() -> {
                while (currentOffset < endOffset &&
                       buffer[currentOffset].isWhitespace() &&
                       buffer[currentOffset] != '\n') {
                    currentOffset++
                }
                currentTokenType = AsmTokenTypes.WHITESPACE
            }

            lineStart && isIdentifierStart(ch) -> {
                val colonPos = findColonInLine()
                if (colonPos > currentOffset) {
                    currentOffset = colonPos + 1
                    currentTokenType = AsmTokenTypes.LABEL
                    lineStart = false
                } else {
                    parseOpcodeOrOperand()
                }
            }

            else -> parseOpcodeOrOperand()
        }
    }