fix: accept idx --version / -V

`idx version` was the only way to get the version; the conventional flag
failed with a usage error. The flag is hidden from help, which keeps
documenting `idx version`. clap's bash completions list hidden flags, so
the completions-bash golden gains -V/--version at the root (intended).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
hermes 2026-10-15 03:54:25 +00:00
commit cc228cf96c
2 changed files with 6 additions and 1 deletions

View file

@ -19,6 +19,8 @@ pub enum Shell {
#[command( #[command(
name = "idx", name = "idx",
bin_name = "idx", bin_name = "idx",
version,
disable_version_flag = true,
about = "CLI tool for Indonesian stock market (IDX) analysis", about = "CLI tool for Indonesian stock market (IDX) analysis",
long_about = "idx-cli is a Rust command-line tool for Indonesian stock market (IDX) analysis.\nIt supports quote lookup, historical data, local caching, and output formats for both humans and AI agents." long_about = "idx-cli is a Rust command-line tool for Indonesian stock market (IDX) analysis.\nIt supports quote lookup, historical data, local caching, and output formats for both humans and AI agents."
)] )]
@ -41,6 +43,9 @@ pub struct Cli {
pub offline: bool, pub offline: bool,
#[arg(long, global = true, help = "Bypass local cache")] #[arg(long, global = true, help = "Bypass local cache")]
pub no_cache: bool, pub no_cache: bool,
// `idx version` is the documented form; `--version` is a hidden alias.
#[arg(short = 'V', long, action = clap::ArgAction::Version, hide = true)]
version: Option<bool>,
#[command(subcommand)] #[command(subcommand)]
pub command: Commands, pub command: Commands,
} }

View file

@ -439,7 +439,7 @@ _idx() {
case "${cmd}" in case "${cmd}" in
idx) idx)
opts="-o -q -v -h --output --no-color --quiet --verbose --offline --no-cache --help stocks config cache ownership completions version help" opts="-o -q -v -V -h --output --no-color --quiet --verbose --offline --no-cache --version --help stocks config cache ownership completions version help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0 return 0