diff --git a/crates/fs/src/fs.rs b/crates/fs/src/fs.rs index e2721acda6..0dd1f605f7 100644 --- a/crates/fs/src/fs.rs +++ b/crates/fs/src/fs.rs @@ -2340,15 +2340,19 @@ impl Fs for FakeFs { fn chunks(rope: &Rope, line_ending: LineEnding) -> impl Iterator { rope.chunks().flat_map(move |chunk| { let mut newline = false; - chunk.split('\n').flat_map(move |line| { - let ending = if newline { - Some(line_ending.as_str()) - } else { - None - }; - newline = true; - ending.into_iter().chain([line]) - }) + let end_with_newline = chunk.ends_with('\n').then_some(line_ending.as_str()); + chunk + .lines() + .flat_map(move |line| { + let ending = if newline { + Some(line_ending.as_str()) + } else { + None + }; + newline = true; + ending.into_iter().chain([line]) + }) + .chain(end_with_newline) }) }