diff options
Diffstat (limited to 'crates/dinggerd')
| -rw-r--r-- | crates/dinggerd/src/main.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/dinggerd/src/main.rs b/crates/dinggerd/src/main.rs index 0ace3a9..2881d4a 100644 --- a/crates/dinggerd/src/main.rs +++ b/crates/dinggerd/src/main.rs @@ -468,10 +468,12 @@ fn status() -> Result<(), String> { }); let place = |pane: &tmux::Pane| pane.display_target.replacen(':', " · ", 1); let width = panes.iter().map(|pane| place(pane).chars().count()).max().unwrap_or(5).max(5); - println!("{:<8} {:<width$} {:<7} {:>8} {:>4} NAME", "STATUS", "WHERE", "AGENT", "COST", "CTX"); + let label = |pane: &tmux::Pane| pane.agent.map(detect_core::agent_label).unwrap_or("-"); + let agents = panes.iter().map(|pane| label(pane).chars().count()).max().unwrap_or(5).max(5); + println!("{:<8} {:<width$} {:<agents$} {:>8} {:>4} NAME", "STATUS", "WHERE", "AGENT", "COST", "CTX"); for pane in &panes { let state = if pane.written_state.is_empty() { "-" } else { &pane.written_state }; - let agent = pane.agent.map(detect_core::agent_label).unwrap_or("-"); + let agent = label(pane); let draft = if watcher::forgotten_draft(pane) { "✎ " } else { "" }; let name = match importance::Importance::from_option(&pane.written_importance) { importance::Importance::High => format!("! {}", pane.written_name), @@ -486,7 +488,7 @@ fn status() -> Result<(), String> { } else { ("failed", format!(" · {}", pane.written_error)) }; - println!("{state:<8} {:<width$} {agent:<7} {cost:>8} {context:>4} {draft}{}{why}", place(pane), name.trim()); + println!("{state:<8} {:<width$} {agent:<agents$} {cost:>8} {context:>4} {draft}{}{why}", place(pane), name.trim()); } let global = |name: &str| tmux::show_global(name).unwrap_or_default(); let spent = [("today", "@dingger_cost_today"), ("this week", "@dingger_cost_week"), ("this month", "@dingger_cost_month")] |
