Skip to main content

rich_click_rs/
lib.rs

1//! rich-click-rs
2//!
3//! Rich help formatting for click-rs using rich-rs renderables.
4
5mod config;
6mod render;
7mod rich_main;
8mod testing;
9mod theme;
10
11pub use config::{
12    ColorSystemMode, GroupConfig, PanelConfig, RichHelpConfig, RichHelpConfigBuilder, TableConfig,
13    TextMarkup,
14};
15pub use render::{
16    main_rich_command, main_rich_command_with_errors, main_rich_group, main_rich_group_with_errors,
17    RichHelp, RichHelpRenderer,
18};
19pub use rich_main::RichMainExt;
20pub use testing::RichCliRunner;
21pub use theme::{list_themes, ThemeError};
22
23#[macro_export]
24macro_rules! rich_main {
25    ($command:expr) => {{
26        let args: Vec<String> = std::env::args().skip(1).collect();
27        let cfg = $crate::RichHelpConfig::global().clone();
28        $crate::main_rich_command(&$command, args, &cfg)
29    }};
30}
31
32#[macro_export]
33macro_rules! rich_main_with_errors {
34    ($command:expr) => {{
35        let args: Vec<String> = std::env::args().skip(1).collect();
36        let cfg = $crate::RichHelpConfig::global().clone();
37        $crate::main_rich_command_with_errors(&$command, args, &cfg)
38    }};
39}
40
41#[macro_export]
42macro_rules! rich_main_group {
43    ($group:expr) => {{
44        let args: Vec<String> = std::env::args().skip(1).collect();
45        let cfg = $crate::RichHelpConfig::global().clone();
46        $crate::main_rich_group(&$group, args, &cfg)
47    }};
48}
49
50#[macro_export]
51macro_rules! rich_main_group_with_errors {
52    ($group:expr) => {{
53        let args: Vec<String> = std::env::args().skip(1).collect();
54        let cfg = $crate::RichHelpConfig::global().clone();
55        $crate::main_rich_group_with_errors(&$group, args, &cfg)
56    }};
57}