use clap::{ArgAction, Parser};
use std::path::PathBuf;
#[derive(Debug, Parser)]
#[command(
name = "angular-switcher",
about = "Switch between Angular component files (.ts, .html, styles, .spec.ts) from the Zed editor.",
long_about = "Resolves the sibling file of an Angular component (the .ts, template, style \
or spec) and opens it in Zed via the `zed` CLI. Designed to be invoked from \
a Zed task bound to a keyboard shortcut. See the README for the recommended \
tasks.json and keymap.json snippets.",
version
)]
#[allow(clippy::struct_excessive_bools)]
pub struct Cli {
pub file: Option<PathBuf>,
#[arg(short = 't', long, value_name = "TARGET")]
pub to: Option<String>,
#[arg(short = 'c', long, action = ArgAction::SetTrue)]
pub cycle: bool,
#[arg(short = 'r', long, action = ArgAction::SetTrue)]
pub reverse: bool,
#[arg(long, action = ArgAction::SetTrue)]
pub print: bool,
#[arg(long, action = ArgAction::SetTrue)]
pub no_launch: bool,
#[arg(long, value_name = "PATH")]
pub config: Option<PathBuf>,
#[arg(short = 'v', long, action = ArgAction::SetTrue)]
pub verbose: bool,
}