aboutsummaryrefslogtreecommitdiff
path: root/helix-core
diff options
context:
space:
mode:
authorPascal Kuthe2024-02-29 01:47:41 +0000
committerGitHub2024-02-29 01:47:41 +0000
commit1143f4795414c26382a5647f2be8c20a7a62ada4 (patch)
tree2223b4f0bdde621dcbc8ce6daac6fbafde430c10 /helix-core
parentf03b91d1b7907e78a4242c5b525e47c997f4457d (diff)
fix split_on_newline (#9756)
Diffstat (limited to 'helix-core')
-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 {