use std::net::SocketAddr;
use clap::ValueEnum;
#[derive(clap::Parser)]
#[command(version, about)]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
}
#[derive(clap::Subcommand)]
pub enum Command {
#[command(name = "lsp")]
Server(ServerArgs),
}
#[derive(clap::Args)]
pub struct ServerArgs {
#[arg(short, long, value_name = "ip:port")]
pub listen: Option<SocketAddr>,
#[arg(long, value_name = "output")]
pub log: Option<LogOutput>,
#[arg(short, long, value_name = "level", default_value_t = 3)]
pub verbosity: u8,
}
#[derive(ValueEnum, Clone)]
pub enum LogOutput {
Stdout,
Stderr,
}