summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-core/src/selection.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/helix-core/src/selection.rs b/helix-core/src/selection.rs
index 91f1d0de..bd252deb 100644
--- a/helix-core/src/selection.rs
+++ b/helix-core/src/selection.rs
@@ -773,12 +773,12 @@ pub fn split_on_newline(text: RopeSlice, selection: &Selection) -> Selection {
let mut start = sel_start;
- for mat in sel.slice(text).lines() {
- let len = mat.len_chars();
- let line_end_len = get_line_ending(&mat).map(|le| le.len_chars()).unwrap_or(0);
+ for line in sel.slice(text).lines() {
+ let Some(line_ending) = get_line_ending(&line) else { break };
+ let line_end = start + line.len_chars();
// TODO: retain range direction
- result.push(Range::new(start, start + len - line_end_len));
- start += len;
+ result.push(Range::new(start, line_end - line_ending.len_chars()));
+ start = line_end;
}
if start < sel_end {