use ratatui::{ style::{Color, Stylize}, text::Span, }; use tree_sitter_highlight::Highlight; static HIGHLIGHT_THEME: [Color; 29] = [ Color::White, // attribute Color::White, // boolean Color::DarkGray, // comment Color::LightYellow, // conditional Color::White, // constant Color::White, // constant.builtin Color::White, // constructor Color::White, // field Color::White, // function Color::White, // function.builtin Color::White, // function.call Color::Yellow, // keyword Color::LightYellow, // keyword.function Color::White, // keyword.operator Color::LightYellow, // keyword.return Color::White, // label Color::White, // method Color::White, // method.call Color::Blue, // number Color::Gray, // operator Color::White, // parameter Color::White, // preproc Color::Gray, // punctuation.bracket Color::Gray, // punctuation.delimiter Color::LightYellow, // repeat Color::LightGreen, // string Color::Yellow, // string.escape Color::Gray, // variable Color::White, // variable.builtin ]; pub fn theme_highlight_group(hl: Option, span: Span) -> Span { if let Some(hl) = hl { span.fg(HIGHLIGHT_THEME[hl.0]) } else { span } }