//! Example of using configuration discovery functionality. //! //! This example demonstrates how to find configuration files //! using the proper precedence hierarchy: //! 1. Explicit config path //! 2. Global vapora config (~/.vapora/) //! 3. Global syntaxis config (~/.syntaxis/) //! 4. Local vapora config (./.vapora/) //! 5. Local syntaxis config (./.syntaxis/) use tools_shared::find_config_path; fn main() { println!("Configuration Discovery Example\n"); // Example 1: Find syntaxis configuration with standard discovery let config = find_config_path("config.toml", None); match config { Some(path) => { println!("✓ Found config at: {}", path.display()); println!(" (searched with proper precedence hierarchy)\n"); } None => { println!("✗ config.toml not found in standard locations\n"); } } // Example 2: Use explicit config path let explicit_config = std::path::PathBuf::from("/custom/config.toml"); let found = find_config_path("config.toml", Some(&explicit_config)); match found { Some(path) => println!("✓ Explicit config found at: {}", path.display()), None => println!("✗ Explicit config path does not exist"), } println!("\n---"); println!("Configuration Search Order (by precedence):"); println!("1. Explicit --config path (highest priority)"); println!("2. Global: ~/.vapora/config.toml"); println!("3. Global: ~/.syntaxis/config.toml"); println!("4. Local: ./.vapora/config.toml (takes precedence over .syntaxis/)"); println!("5. Local: ./.syntaxis/config.toml"); println!("\nThe finder uses the first location that exists."); }