in src/main/kotlin/com/intellij/ideolog/lex/LogFileLexer.kt [41:73]
override fun advance() {
val newTokenStart = if (currentTokenEnd < 0) myBufferStart else currentTokenEnd
currentTokenType = null
var newTokenPosition = newTokenStart
if (newTokenPosition >= myBufferEnd)
return
var seenNewLine = false
while (true) {
if (newTokenPosition >= myBufferEnd || !seenNewLine && myBuffer[newTokenPosition] == '|')
break
if (myBuffer[newTokenPosition] == '\n') {
seenNewLine = true
if (!findEventStart || fileType.isLineEventStart(myBuffer.subSequence(newTokenPosition + 1, myBufferEnd))) break
}
newTokenPosition++
}
if (newTokenPosition == newTokenStart)
newTokenPosition++
currentTokenStart = newTokenStart
currentTokenEnd = newTokenPosition
if (newTokenStart == newTokenPosition - 1 && myBuffer[newTokenStart].let { it == '|' || it == '\n' }) {
currentTokenType = LOG_TOKEN_SEPARATOR
if (myBuffer[newTokenStart] == '\n')
myColumn = 0
else
myColumn++
} else
currentTokenType = getOrMakeElementToken()
}