fix: render .list macros as a comfy-table instead of fixed-width columns

Hand-rolled {:<24} padding broke alignment as soon as a macro name
exceeded the column width. Reuse the comfy-table UTF8_FULL preset with
dynamic content arrangement, matching the markdown renderer's tables.
This commit is contained in:
2026-08-21 11:55:13 -06:00
parent f61a8f7afd
commit fba040c668
+14 -11
View File
@@ -33,6 +33,7 @@ use crate::utils::{
AbortSignal, abortable_run_with_spinner, edit_file, fuzzy_filter, get_env_name, AbortSignal, abortable_run_with_spinner, edit_file, fuzzy_filter, get_env_name,
list_file_names, now, render_prompt, temp_file, list_file_names, now, render_prompt, temp_file,
}; };
use comfy_table::{ContentArrangement, Table, presets::UTF8_FULL};
use super::instructions; use super::instructions;
use super::memory::{ use super::memory::{
@@ -2592,12 +2593,10 @@ impl RequestContext {
return Ok(()); return Ok(());
} }
println!("Macros:"); let mut table = Table::new();
let header = format!( table.load_preset(UTF8_FULL);
" {:<24} {:<10} {:<9} {:<40} {}", table.set_content_arrangement(ContentArrangement::Dynamic);
"name", "source", "isolated", "state", "description" table.set_header(vec!["name", "source", "isolated", "state", "description"]);
);
println!("{header}");
for row in &policy.macros { for row in &policy.macros {
let source = macro_source_display(row.source); let source = macro_source_display(row.source);
@@ -2608,13 +2607,17 @@ impl RequestContext {
}; };
let state = macro_state_display(row, |level| self.macro_lock_owner(level)); let state = macro_state_display(row, |level| self.macro_lock_owner(level));
let description = row.description.as_deref().unwrap_or_default(); let description = row.description.as_deref().unwrap_or_default();
let line = format!( table.add_row(vec![
" {:<24} {:<10} {:<9} {:<40} {}", row.name.as_str(),
row.name, source, isolated, state, description &source,
); isolated,
println!("{}", line.trim_end()); &state,
description,
]);
} }
println!("Macros:");
println!("{table}");
Ok(()) Ok(())
} }
"agents" => { "agents" => {