Skip to main content

vtcode_core/ui/
styled.rs

1//! Styled terminal output helpers.
2//!
3//! `Styles` is re-exported from `vtcode-commons::styling`.
4//! Print convenience functions remain here because they depend on `anstream`.
5
6use anstream::println as styled_println;
7use anstyle::Style;
8
9pub use vtcode_commons::styling::Styles;
10
11/// Print a styled error message
12pub fn error(message: &str) {
13    styled_println!("{}{}{}", Styles::render(&Styles::error()), message, Styles::render_reset());
14}
15
16/// Print a styled warning message
17pub fn warning(message: &str) {
18    styled_println!("{}{}{}", Styles::render(&Styles::warning()), message, Styles::render_reset());
19}
20
21/// Print a styled success message
22pub fn success(message: &str) {
23    styled_println!("{}{}{}", Styles::render(&Styles::success()), message, Styles::render_reset());
24}
25
26/// Print a styled info message
27pub fn info(message: &str) {
28    styled_println!("{}{}{}", Styles::render(&Styles::info()), message, Styles::render_reset());
29}
30
31/// Print a styled debug message
32pub fn debug(message: &str) {
33    styled_println!("{}{}{}", Styles::render(&Styles::debug()), message, Styles::render_reset());
34}
35
36/// Print a styled bold message
37pub fn bold(message: &str) {
38    styled_println!("{}{}{}", Styles::render(&Styles::bold()), message, Styles::render_reset());
39}
40
41/// Print a styled message with custom style
42pub fn styled(style: &Style, message: &str) {
43    styled_println!("{}{}{}", Styles::render(style), message, Styles::render_reset());
44}
45
46#[cfg(test)]
47mod tests {
48    use super::*;
49
50    #[test]
51    fn test_styles() {
52        // These should not panic
53        error("Test error");
54        warning("Test warning");
55        success("Test success");
56        info("Test info");
57        debug("Test debug");
58        bold("Test bold");
59        styled(&Styles::header(), "Test custom");
60    }
61}