From d26cc5eecacf8924d41c38046fb1bcb285078943 Mon Sep 17 00:00:00 2001 From: Tre Bu Chet Date: Sat, 14 Feb 2026 11:56:27 -0500 Subject: [PATCH] Test commit --- src/cli.rs | 0 src/tui/layout.rs | 6 +++--- src/tui/markdown.rs | 44 ++++++++++++++++++++++++++++---------------- src/tui/mod.rs | 10 +++++----- 4 files changed, 36 insertions(+), 24 deletions(-) delete mode 100644 src/cli.rs diff --git a/src/cli.rs b/src/cli.rs deleted file mode 100644 index e69de29..0000000 diff --git a/src/tui/layout.rs b/src/tui/layout.rs index 0d70961..fdfac3d 100644 --- a/src/tui/layout.rs +++ b/src/tui/layout.rs @@ -383,7 +383,7 @@ impl LayoutEngine { let status_id = self.create_pane(PaneType::StatusBar); let chat_id = self.create_pane(PaneType::Chat); - let garden_id = self.create_pane(PaneType::GardenHealth); + let garden_id = self.create_pane(PaneType::GardenView); let tools_id = self.create_pane(PaneType::ActiveTools); let logs_id = self.create_pane(PaneType::Logs); @@ -769,7 +769,7 @@ mod tests { let mut engine = LayoutEngine::new(); engine.apply_preset(LayoutPreset::Dashboard); assert_eq!(engine.current_preset(), LayoutPreset::Dashboard); - // Dashboard has: StatusBar, Chat, GardenHealth, ActiveTools, Logs = 5 panes + // Dashboard has: StatusBar, Chat, GardenView, ActiveTools, Logs = 5 panes assert_eq!(engine.pane_ids().len(), 5); } @@ -787,7 +787,7 @@ mod tests { assert!(pane_types.contains(&PaneType::StatusBar)); assert!(pane_types.contains(&PaneType::Chat)); - assert!(pane_types.contains(&PaneType::GardenHealth)); + assert!(pane_types.contains(&PaneType::GardenView)); assert!(pane_types.contains(&PaneType::ActiveTools)); assert!(pane_types.contains(&PaneType::Logs)); } diff --git a/src/tui/markdown.rs b/src/tui/markdown.rs index 2c7cb7a..3c05db7 100644 --- a/src/tui/markdown.rs +++ b/src/tui/markdown.rs @@ -5,7 +5,7 @@ // Feature-gated module - dead_code lint disabled at crate level -use pulldown_cmark::{CodeBlockKind, Event, Options, Parser, Tag}; +use pulldown_cmark::{CodeBlockKind, Event, HeadingLevel, Options, Parser, Tag, TagEnd}; use ratatui::{ style::{Color, Modifier, Style}, text::{Line, Span, Text}, @@ -16,6 +16,18 @@ use syntect::parsing::SyntaxSet; use super::TuiPalette; +/// Convert HeadingLevel to usize for repeat operations +fn heading_level_to_usize(level: HeadingLevel) -> usize { + match level { + HeadingLevel::H1 => 1, + HeadingLevel::H2 => 2, + HeadingLevel::H3 => 3, + HeadingLevel::H4 => 4, + HeadingLevel::H5 => 5, + HeadingLevel::H6 => 6, + } +} + /// Markdown renderer with streaming support pub struct MarkdownRenderer { /// Syntax highlighting set @@ -321,7 +333,7 @@ impl<'a> RenderState<'a> { fn process_event(&mut self, event: Event) { match event { Event::Start(tag) => self.start_tag(tag.clone()), - Event::End(tag) => self.end_tag(tag), + Event::End(tag_end) => self.end_tag(tag_end), Event::Text(text) => self.add_text(&text), Event::Code(code) => self.add_inline_code(&code), Event::SoftBreak | Event::HardBreak => self.line_break(), @@ -332,9 +344,9 @@ impl<'a> RenderState<'a> { fn start_tag(&mut self, tag: Tag) { match tag { - Tag::Heading(level, _, _) => { + Tag::Heading { level, .. } => { self.flush_line(); - let prefix = "#".repeat(level as usize); + let prefix = "#".repeat(heading_level_to_usize(level)); self.current_line.push(Span::styled( format!("{} ", prefix), Style::default() @@ -367,51 +379,51 @@ impl<'a> RenderState<'a> { Tag::Strong => { self.strong = true; } - Tag::BlockQuote => { + Tag::BlockQuote(_) => { self.flush_line(); self.current_line .push(Span::styled("▌ ", Style::default().fg(TuiPalette::SAGE))); } - Tag::Link(_, _, _) => { + Tag::Link { .. } => { // Links will be styled differently } _ => {} } } - fn end_tag(&mut self, tag: Tag) { - match tag { - Tag::Heading(_, _, _) => { + fn end_tag(&mut self, tag_end: TagEnd) { + match tag_end { + TagEnd::Heading(_) => { self.flush_line(); self.lines.push(Line::default()); // Add blank line after heading } - Tag::CodeBlock(_) => { + TagEnd::CodeBlock => { if self.in_code_block { self.render_code_block(); self.in_code_block = false; self.code_content.clear(); } } - Tag::List(_) => { + TagEnd::List(_) => { self.list_depth = self.list_depth.saturating_sub(1); if self.list_depth == 0 { self.flush_line(); } } - Tag::Item => { + TagEnd::Item => { self.flush_line(); } - Tag::Emphasis => { + TagEnd::Emphasis => { self.emphasis = false; } - Tag::Strong => { + TagEnd::Strong => { self.strong = false; } - Tag::Paragraph => { + TagEnd::Paragraph => { self.flush_line(); self.lines.push(Line::default()); // Blank line after paragraph } - Tag::BlockQuote => { + TagEnd::BlockQuote(_) => { self.flush_line(); } _ => {} diff --git a/src/tui/mod.rs b/src/tui/mod.rs index 965964e..caa5669 100644 --- a/src/tui/mod.rs +++ b/src/tui/mod.rs @@ -426,10 +426,10 @@ where /// - Logs panel at bottom /// /// Keyboard shortcuts: -/// - q / Ctrl+C / Ctrl+D: Quit +/// - q / Ctrl+C: Quit /// - ?: Toggle help overlay -/// - d: Toggle dashboard/focus mode -/// - g: Toggle garden view zoom +/// - Ctrl+D: Toggle dashboard/focus mode +/// - Ctrl+G: Toggle garden view zoom /// - l: Toggle logs view zoom /// - Tab: Cycle focus between panes /// - z: Toggle zoom on focused pane @@ -541,7 +541,7 @@ pub fn run_tui_dashboard(model: &str) -> Result> { // Find garden pane and focus/zoom it for pane_id in layout_engine.pane_ids() { if let Some(pane) = layout_engine.get_pane(pane_id) { - if pane.pane_type == PaneType::GardenHealth { + if pane.pane_type == PaneType::GardenView { layout_engine.set_focus(pane_id); layout_engine.toggle_zoom(); dashboard_state.log(LogLevel::Info, "Toggled garden view"); @@ -808,7 +808,7 @@ pub fn run_tui_dashboard_with_events( KeyCode::Char('g') if key.modifiers == KeyModifiers::CONTROL => { for pane_id in layout_engine.pane_ids() { if let Some(pane) = layout_engine.get_pane(pane_id) { - if pane.pane_type == PaneType::GardenHealth { + if pane.pane_type == PaneType::GardenView { layout_engine.set_focus(pane_id); layout_engine.toggle_zoom(); shared_state