in vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimSearchHelperBase.kt [934:965]
override fun findNextSentenceEnd(
editor: VimEditor,
offset: Int,
count: Int,
countCurrent: Boolean,
requireAll: Boolean,
): @Range(from = 0, to = Int.MAX_VALUE.toLong()) Int? {
var count = count
val dir = if (count > 0) Direction.FORWARDS else Direction.BACKWARDS
count = Math.abs(count)
val total = count
val chars: CharSequence = editor.text()
val start: Int = offset
val max: Int = editor.fileSize().toInt()
var res: Int? = start
while (count > 0 && res != null && res >= 0 && res <= max - 1) {
res = findSentenceEnd(editor, chars, res, max, dir, countCurrent && count == total)
if (res == 0 || res == max - 1) {
count--
break
}
count--
}
if (res == null && (!requireAll || total == 1)) {
res = if (dir == Direction.FORWARDS) max - 1 else 0
} else if (count > 0 && total > 1 && !requireAll) {
res = if (dir == Direction.FORWARDS) max - 1 else 0
} else if (count > 0 && total > 1 && requireAll) {
res = null
}
return res
}