aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-03-22 09:06:52 +0000
committerBlaž Hrastnik2021-03-22 09:06:52 +0000
commitd0530fb83921acc92cd51fd6fa3a8d4846ad5aec (patch)
tree6b697ef5d1d3c3e0a8dcdf728090e39a2aa5f6a0
parent73c92a0bc1499f02092a7425c45d4992f4e573a1 (diff)
Fix a scrolling crash where it would jump past the end of the buffer.
-rw-r--r--helix-core/src/auto_pairs.rs1
-rw-r--r--helix-term/src/commands.rs2
2 files changed, 2 insertions, 1 deletions
diff --git a/helix-core/src/auto_pairs.rs b/helix-core/src/auto_pairs.rs
index e6b8f667..aa668f29 100644
--- a/helix-core/src/auto_pairs.rs
+++ b/helix-core/src/auto_pairs.rs
@@ -54,6 +54,7 @@ fn next_char(doc: &Rope, pos: usize) -> Option<char> {
}
Some(doc.char(pos))
}
+// TODO: selections should be extended if range, moved if point.
// TODO: if not cursor but selection, wrap on both sides of selection (surround)
fn handle_open(
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 3f0e32a0..fd95bca4 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -433,7 +433,7 @@ fn scroll(view: &mut View, offset: usize, direction: Direction) {
// clamp into viewport
let line = (view.first_line + cursor_off).clamp(
view.first_line + scrolloff,
- view.first_line + view.last_line().saturating_sub(scrolloff),
+ view.last_line().saturating_sub(scrolloff),
);
let pos = pos_at_coords(text, Position::new(line, cursor.col)); // this func will properly truncate to line end