summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Peltier <pierre.peltier@adevinta.com>2019-10-24 17:55:05 +0200
committerAbin Simon <abinsimon10@gmail.com>2019-12-06 11:35:03 +0530
commit41fd5a5b2a6b50a238f9e7f8caa560fa60db4d95 (patch)
treedd61dd2275fa858d21106fb55ef3dbbdf68e2be9
parent6ca2bd948d5af61a2f7584eda1bec4c4d1923586 (diff)
Use the term_grid package for the output of tree
-rw-r--r--src/display.rs26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/display.rs b/src/display.rs
index 9cd90ee..db232fa 100644
--- a/src/display.rs
+++ b/src/display.rs
@@ -129,9 +129,23 @@ fn inner_display_tree(
let mut grid = Grid::new(GridOptions {
filling: Filling::Spaces(2),
- direction: Direction::TopToBottom,
+ direction: Direction::LeftToRight,
});
+ for meta in metas.into_iter() {
+ for block in get_output(&meta, &colors, &icons, &flags, &padding_rules) {
+ let block_str = block.to_string();
+
+ grid.add(Cell {
+ width: get_visible_width(&block_str),
+ contents: block_str,
+ });
+ }
+ }
+
+ let content = grid.fit_into_columns(flags.blocks.len()).to_string();
+ let mut lines = content.lines();
+
for (idx, meta) in metas.into_iter().enumerate() {
let is_last_folder_elem = idx + 1 != last_idx;
@@ -146,14 +160,8 @@ fn inner_display_tree(
output += " ";
}
- for block in get_output(&meta, &colors, &icons, &flags, &padding_rules) {
- let block_str = block.to_string();
-
- grid.add(Cell {
- width: get_visible_width(&block_str),
- contents: block_str,
- });
- }
+ output += lines.next().unwrap().clone();
+ output += "\n";
if meta.content.is_some() {
let mut new_prefix = String::from(prefix);