diff --git a/src/main.rs b/src/main.rs index 0b5ec8a..361622a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,7 +23,7 @@ use crate::config::{ TEMP_SESSION_NAME, WorkingMode, ensure_parent_exists, list_agents, load_env_file, macro_execute, }; -use crate::render::{render_error, prompt_theme}; +use crate::render::{prompt_theme, render_error}; use crate::repl::Repl; use crate::utils::*; diff --git a/src/render/inquire.rs b/src/render/inquire.rs index ec249dc..ccb8874 100644 --- a/src/render/inquire.rs +++ b/src/render/inquire.rs @@ -1,53 +1,53 @@ -use syntect::highlighting::{Highlighter, Theme}; +use crate::render::RenderOptions; use anyhow::Result; use inquire::ui::{Attributes, Color, RenderConfig, StyleSheet}; +use syntect::highlighting::{Highlighter, Theme}; use syntect::parsing::Scope; -use crate::render::RenderOptions; const DEFAULT_INQUIRE_PROMPT_THEME: Color = Color::DarkYellow; pub fn prompt_theme<'a>(render_options: RenderOptions) -> Result> { - let theme = render_options.theme.as_ref(); - let mut render_config = RenderConfig::default(); + let theme = render_options.theme.as_ref(); + let mut render_config = RenderConfig::default(); - if let Some(theme_ref) = theme { - let prompt_color = resolve_foreground(theme_ref, "markup.heading")? - .unwrap_or(DEFAULT_INQUIRE_PROMPT_THEME); + if let Some(theme_ref) = theme { + let prompt_color = resolve_foreground(theme_ref, "markup.heading")? + .unwrap_or(DEFAULT_INQUIRE_PROMPT_THEME); - render_config.prompt = StyleSheet::new() - .with_fg(prompt_color) - .with_attr(Attributes::BOLD); - render_config.selected_option = Some( - render_config - .selected_option - .unwrap_or(render_config.option) - .with_attr( - render_config - .selected_option - .unwrap_or(render_config.option) - .att - | Attributes::BOLD, - ), - ); - render_config.selected_checkbox = render_config - .selected_checkbox - .with_attr(render_config.selected_checkbox.style.att | Attributes::BOLD); - render_config.option = render_config - .option - .with_attr(render_config.option.att | Attributes::BOLD); - } + render_config.prompt = StyleSheet::new() + .with_fg(prompt_color) + .with_attr(Attributes::BOLD); + render_config.selected_option = Some( + render_config + .selected_option + .unwrap_or(render_config.option) + .with_attr( + render_config + .selected_option + .unwrap_or(render_config.option) + .att + | Attributes::BOLD, + ), + ); + render_config.selected_checkbox = render_config + .selected_checkbox + .with_attr(render_config.selected_checkbox.style.att | Attributes::BOLD); + render_config.option = render_config + .option + .with_attr(render_config.option.att | Attributes::BOLD); + } - Ok(render_config) + Ok(render_config) } fn resolve_foreground(theme: &Theme, scope_str: &str) -> Result> { - let scope = Scope::new(scope_str)?; - let style_mod = Highlighter::new(theme).style_mod_for_stack(&[scope]); - let fg = style_mod.foreground.or(theme.settings.foreground); + let scope = Scope::new(scope_str)?; + let style_mod = Highlighter::new(theme).style_mod_for_stack(&[scope]); + let fg = style_mod.foreground.or(theme.settings.foreground); - Ok(fg.map(|c| Color::Rgb { - r: c.r, - g: c.g, - b: c.b, - })) + Ok(fg.map(|c| Color::Rgb { + r: c.r, + g: c.g, + b: c.b, + })) } diff --git a/src/render/mod.rs b/src/render/mod.rs index f62ce09..15b186e 100644 --- a/src/render/mod.rs +++ b/src/render/mod.rs @@ -1,6 +1,6 @@ +mod inquire; mod markdown; mod stream; -mod inquire; pub use inquire::prompt_theme;