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:
@@ -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" => {
|
||||||
|
|||||||
Reference in New Issue
Block a user