Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-view/src/tree.rs')
-rw-r--r--helix-view/src/tree.rs50
1 files changed, 9 insertions, 41 deletions
diff --git a/helix-view/src/tree.rs b/helix-view/src/tree.rs
index d596b35a..b7ad5aa9 100644
--- a/helix-view/src/tree.rs
+++ b/helix-view/src/tree.rs
@@ -407,13 +407,11 @@ impl Tree {
}
Layout::Vertical => {
let len = container.children.len();
- let len_u16 = len as u16;
- let inner_gap = 1u16;
- let total_gap = inner_gap * len_u16.saturating_sub(2);
+ let width = area.width / len as u16;
- let used_area = area.width.saturating_sub(total_gap);
- let width = used_area / len_u16;
+ let inner_gap = 1u16;
+ // let total_gap = inner_gap * (len as u16 - 1);
let mut child_x = area.x;
@@ -441,7 +439,7 @@ impl Tree {
}
}
- pub fn traverse(&self) -> Traverse<'_> {
+ pub fn traverse(&self) -> Traverse {
Traverse::new(self)
}
@@ -560,7 +558,7 @@ impl Tree {
id
} else {
// extremely crude, take the last item
- let (key, _) = self.traverse().next_back().unwrap();
+ let (key, _) = self.traverse().rev().next().unwrap();
key
}
}
@@ -705,7 +703,7 @@ impl<'a> Iterator for Traverse<'a> {
}
}
-impl DoubleEndedIterator for Traverse<'_> {
+impl<'a> DoubleEndedIterator for Traverse<'a> {
fn next_back(&mut self) -> Option<Self::Item> {
loop {
let key = self.stack.pop()?;
@@ -927,43 +925,13 @@ mod test {
assert_eq!(3, tree.views().count());
assert_eq!(
vec![
- tree_area_width / 3 - 1, // gap here
- tree_area_width / 3 - 1, // gap here
- tree_area_width / 3
+ tree_area_width / 3,
+ tree_area_width / 3,
+ tree_area_width / 3 - 2 // Rounding in `recalculate`.
],
tree.views()
.map(|(view, _)| view.area.width)
.collect::<Vec<_>>()
);
}
-
- #[test]
- fn vsplit_gap_rounding() {
- let (tree_area_width, tree_area_height) = (80, 24);
- let mut tree = Tree::new(Rect {
- x: 0,
- y: 0,
- width: tree_area_width,
- height: tree_area_height,
- });
- let mut view = View::new(DocumentId::default(), GutterConfig::default());
- view.area = Rect::new(0, 0, tree_area_width, tree_area_height);
- tree.insert(view);
-
- for _ in 0..9 {
- let view = View::new(DocumentId::default(), GutterConfig::default());
- tree.split(view, Layout::Vertical);
- }
-
- assert_eq!(10, tree.views().count());
- assert_eq!(
- std::iter::repeat(7)
- .take(9)
- .chain(Some(8)) // Rounding in `recalculate`.
- .collect::<Vec<_>>(),
- tree.views()
- .map(|(view, _)| view.area.width)
- .collect::<Vec<_>>()
- );
- }
}