use crate::output;
use clap::Parser;
use std::path::PathBuf;
#[derive(Parser)]
#[command(
name = "rust-llm-tidy",
about = "Fix, reorder, narrow visibility, and lint allowed source files"
)]
pub(crate) struct Cli {
pub(crate) paths: Vec<PathBuf>,
#[arg(long)]
pub(crate) dry_run: bool,
#[arg(long)]
pub(crate) validate: bool,
#[arg(long, value_name = "RULE")]
pub(crate) include: Vec<String>,
#[arg(long, value_name = "RULE")]
pub(crate) exclude: Vec<String>,
#[arg(long, value_name = "EXT")]
pub(crate) extension: Vec<String>,
#[arg(long, global = true)]
pub(crate) config: Option<PathBuf>,
#[arg(long, global = true, conflicts_with = "config")]
pub(crate) no_config: bool,
#[arg(long, value_name = "MODE", default_value = "text")]
pub(crate) output_mode: output::OutputMode,
#[arg(long, conflicts_with = "output_mode")]
pub(crate) json: bool,
}