From bbd1f48b789749e57c16f214dd81628823b4cf5a Mon Sep 17 00:00:00 2001 From: Edward Langley Date: Tue, 31 Mar 2026 22:50:07 -0700 Subject: [PATCH] test: use gpt-oss-20b to do some minor refactoring --- src/main.rs | 33 +++++++++++++++++++++------------ src/ui/grid.rs | 9 +++++++-- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/main.rs b/src/main.rs index 58526be..1e544d7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -26,6 +26,11 @@ use ratatui::{ use model::Model; use ui::app::{App, AppMode}; + +fn render_paragraph(f: &mut Frame, area: Rect, text: &str, style: Style) { + f.render_widget(Paragraph::new(text).style(style), area); +} + use ui::category_panel::CategoryPanel; use ui::formula_panel::FormulaPanel; use ui::grid::GridWidget; @@ -332,14 +337,14 @@ fn draw_title(f: &mut Frame, area: Rect, app: &App) { let right = " ?:help :q quit "; let pad = " ".repeat((area.width as usize).saturating_sub(title.len() + right.len())); let line = format!("{title}{pad}{right}"); - f.render_widget( - Paragraph::new(line).style( - Style::default() - .fg(Color::Black) - .bg(Color::Blue) - .add_modifier(Modifier::BOLD), - ), + render_paragraph( + f, area, + &line, + Style::default() + .fg(Color::Black) + .bg(Color::Blue) + .add_modifier(Modifier::BOLD), ); } @@ -450,7 +455,7 @@ fn draw_status(f: &mut Frame, area: Rect, app: &App) { _ => Style::default().fg(Color::Black).bg(Color::DarkGray), }; - f.render_widget(Paragraph::new(line).style(badge_style), area); + render_paragraph(f, area, &line, badge_style); } fn draw_command_bar(f: &mut Frame, area: Rect, app: &App) { @@ -460,9 +465,11 @@ fn draw_command_bar(f: &mut Frame, area: Rect, app: &App) { "" }; let line = format!(":{buf}▌"); - f.render_widget( - Paragraph::new(line).style(Style::default().fg(Color::White).bg(Color::Black)), + render_paragraph( + f, area, + &line, + Style::default().fg(Color::White).bg(Color::Black), ); } @@ -484,9 +491,11 @@ fn draw_export_prompt(f: &mut Frame, area: Rect, app: &App) { .title(" Export CSV — path (Esc cancel) "); let inner = block.inner(popup_area); f.render_widget(block, popup_area); - f.render_widget( - Paragraph::new(format!("{buf}▌")).style(Style::default().fg(Color::Green)), + render_paragraph( + f, inner, + &format!("{buf}▌"), + Style::default().fg(Color::Green), ); } diff --git a/src/ui/grid.rs b/src/ui/grid.rs index 6277f50..ca871b9 100644 --- a/src/ui/grid.rs +++ b/src/ui/grid.rs @@ -291,7 +291,7 @@ impl<'a> GridWidget<'a> { }; let value = self.model.evaluate(&key); - let cell_str = format_value(value.as_ref(), fmt_comma, fmt_decimals); + let cell_str = format_cell_value(value.as_ref(), &view.number_format); let is_selected = ri == sel_row && ci == sel_col; let is_search_match = !self.search_query.is_empty() && cell_str @@ -435,7 +435,7 @@ impl<'a> Widget for GridWidget<'a> { } } -fn format_value(v: Option<&CellValue>, comma: bool, decimals: u8) -> String { +pub fn format_value(v: Option<&CellValue>, comma: bool, decimals: u8) -> String { match v { Some(CellValue::Number(n)) => format_f64(*n, comma, decimals), Some(CellValue::Text(s)) => s.clone(), @@ -443,6 +443,11 @@ fn format_value(v: Option<&CellValue>, comma: bool, decimals: u8) -> String { } } +fn format_cell_value(v: Option<&CellValue>, fmt: &str) -> String { + let (comma, decimals) = parse_number_format(fmt); + format_value(v, comma, decimals) +} + pub fn parse_number_format(fmt: &str) -> (bool, u8) { let comma = fmt.contains(','); let decimals = fmt