From 6b67e0571ebb0c69100ac4b9218e893668b7b925 Mon Sep 17 00:00:00 2001 From: Slack Coder Date: Mon, 19 Dec 2022 13:08:41 -0500 Subject: [PATCH] cli: Use term::Table to print list of issues Signed-off-by: Slack Coder --- radicle-cli/src/commands/issue.rs | 12 +++++++----- radicle-cli/src/terminal/table.rs | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/radicle-cli/src/commands/issue.rs b/radicle-cli/src/commands/issue.rs index 634f03fd..1da9c3b9 100644 --- a/radicle-cli/src/commands/issue.rs +++ b/radicle-cli/src/commands/issue.rs @@ -233,6 +233,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { } } Operation::List => { + let mut t = term::Table::new(term::table::TableOptions::default()); for result in issues.all()? { let (id, issue, _) = result?; @@ -241,12 +242,13 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { .map(|p| p.to_string()) .collect::>() .join(", "); - if assigned.is_empty() { - println!("{} \"{}\"", id, issue.title().escape_default()); - } else { - println!("{} {:?} {}", id, issue.title().escape_default(), &assigned,); - } + t.push([ + id.to_string(), + format!("{:?}", issue.title()), + assigned.to_string(), + ]); } + t.render(); } Operation::Delete { id } => { issues.remove(&id)?; diff --git a/radicle-cli/src/terminal/table.rs b/radicle-cli/src/terminal/table.rs index ad381af2..9b8de017 100644 --- a/radicle-cli/src/terminal/table.rs +++ b/radicle-cli/src/terminal/table.rs @@ -59,10 +59,12 @@ impl Table { .ok(); } } + + let output = output.trim_end(); println!( "{}", if let Some(width) = width { - console::truncate_str(&output, width - 1, "…") + console::truncate_str(output, width - 1, "…") } else { output.into() }