Skip to content

Commit 468818b

Browse files
authored
Merge pull request #17 from andyyu2004/builder-finish-fix
Fix trailing_newline issue in Builder::build
2 parents 8c10b81 + 2753b9b commit 468818b

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/rope/rope_builder.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,12 @@ impl RopeBuilder {
107107
#[inline]
108108
pub fn build(mut self) -> Rope {
109109
if self.buffer_len_left > 0 {
110-
self.rope_has_trailing_newline =
111-
self.buffer.has_trailing_newline();
112-
113110
self.buffer.left_summary =
114111
ChunkSummary::from(self.buffer_left_chunk());
115112

113+
self.rope_has_trailing_newline =
114+
self.buffer.has_trailing_newline();
115+
116116
self.tree_builder.append(self.buffer);
117117
}
118118

src/tree/tree.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1548,7 +1548,6 @@ mod tests {
15481548
use core::ops::{Add, AddAssign, Sub, SubAssign};
15491549

15501550
use super::*;
1551-
use crate::tree::Summarize;
15521551

15531552
#[derive(Copy, Clone, Default, Debug, Eq, PartialEq)]
15541553
pub struct Count {

tests/rope_builder.rs

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@ mod common;
33
use common::LARGE;
44
use crop::{Rope, RopeBuilder};
55

6+
#[test]
7+
fn builder_line_len() {
8+
let mut builder = RopeBuilder::new();
9+
builder.append("\n");
10+
let rope = builder.build();
11+
assert_eq!(rope.line_len(), Rope::from("\n").line_len());
12+
}
13+
614
#[test]
715
fn builder_empty() {
816
let r = RopeBuilder::new().build();

0 commit comments

Comments
 (0)