in src/main/kotlin/org/arend/codeInsight/completion/ArendCompletionContributor.kt [866:889]
fun findPrevAnchor(caretOffset: Int, file: PsiFile) : Pair<Int, PsiElement?> {
var pos = caretOffset - 1
var prev: PsiElement? = file.findElementAt(caretOffset)
if (prev != null && STATEMENT_WT_KWS.contains(prev.text)) pos = prev.startOffset - 1
var skippedFirstErrorExpr: PsiElement? = null
var numberOfCrlfs = 0
do {
prev = if (pos <= 0) {
numberOfCrlfs = 1
break
} else file.findElementAt(pos)
numberOfCrlfs += if (prev is PsiWhiteSpace) textBeforeCaret(prev, caretOffset).count { it == '\n' } else 0
var skipFirstErrorExpr = (prev?.node?.elementType == BAD_CHARACTER || (prev?.node?.elementType == INVALID_KW && prev?.parent is PsiErrorElement && prev.text.startsWith("\\")))
if (skipFirstErrorExpr && skippedFirstErrorExpr != null && skippedFirstErrorExpr != prev) skipFirstErrorExpr = false else skippedFirstErrorExpr = prev
pos = (prev?.textRange?.startOffset ?: pos) - 1
} while (prev is PsiWhiteSpace || prev is PsiComment || skipFirstErrorExpr)
return Pair(numberOfCrlfs, prev)
}