From 4d3888890053b4f6e532ef49e615cf94cd3e82ba Mon Sep 17 00:00:00 2001 From: Jon Heinritz Date: Fri, 28 Feb 2025 15:06:09 +0100 Subject: [PATCH] feat(cli): forward bash completions of third party subcommands --- src/etc/cargo.bashcomp.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/etc/cargo.bashcomp.sh b/src/etc/cargo.bashcomp.sh index 2a676325d63..50ece8df466 100644 --- a/src/etc/cargo.bashcomp.sh +++ b/src/etc/cargo.bashcomp.sh @@ -154,8 +154,15 @@ _cargo() local opt_var=opt__${cmd//-/_} fi if [[ -z "${!opt_var-}" ]]; then - # Fallback to filename completion. - _filedir + # Forward to subcommands completion if bash-completion >= 2.12 is available + if [[ $BASH_COMPLETION_VERSINFO && (${BASH_COMPLETION_VERSINFO[0]} -gt 2 || (${BASH_COMPLETION_VERSINFO[0]} -eq 2 && ${BASH_COMPLETION_VERSINFO[1]} -ge 12)) ]]; then + COMP_WORDS[cmd_i]="cargo-$cmd" + _comp_command_offset "$cmd_i" + COMP_WORDS[cmd_i]="$cmd" + else + # Fallback to filename completion. + _filedir + fi else COMPREPLY=( $( compgen -W "${!opt_var}" -- "$cur" ) ) fi