simplify offset logic, make it deterministic

This commit is contained in:
Xerxes-2 2024-06-28 11:49:06 +10:00
parent 7fa9c4da72
commit 499f5f4c73
No known key found for this signature in database
GPG key ID: A6C508165D76B601

View file

@ -39,15 +39,9 @@ impl Input {
));
let (limit, snap) = (self.limit(), self.snap_mut());
let half_limit = limit / 2;
let max_offset = snap.cursor.saturating_sub(half_limit);
let min_offset = max_offset.min(snap.len().saturating_sub(limit - 1));
if snap.offset > max_offset {
snap.offset = max_offset;
} else if snap.offset < min_offset {
snap.offset = min_offset;
} else if snap.value.is_empty() {
snap.offset = 0;
let offset = snap.cursor.saturating_sub(limit / 2).min(snap.len().saturating_sub(limit - 1));
if snap.offset != offset {
snap.offset = offset;
} else {
let delta = snap.mode.delta();
let s = snap.slice(snap.offset..snap.cursor + delta);