Skip to content

Commit 4d38888

Browse files
feat(cli): forward bash completions of third party subcommands
1 parent d5b25b8 commit 4d38888

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

Diff for: src/etc/cargo.bashcomp.sh

+9-2
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,15 @@ _cargo()
154154
local opt_var=opt__${cmd//-/_}
155155
fi
156156
if [[ -z "${!opt_var-}" ]]; then
157-
# Fallback to filename completion.
158-
_filedir
157+
# Forward to subcommands completion if bash-completion >= 2.12 is available
158+
if [[ $BASH_COMPLETION_VERSINFO && (${BASH_COMPLETION_VERSINFO[0]} -gt 2 || (${BASH_COMPLETION_VERSINFO[0]} -eq 2 && ${BASH_COMPLETION_VERSINFO[1]} -ge 12)) ]]; then
159+
COMP_WORDS[cmd_i]="cargo-$cmd"
160+
_comp_command_offset "$cmd_i"
161+
COMP_WORDS[cmd_i]="$cmd"
162+
else
163+
# Fallback to filename completion.
164+
_filedir
165+
fi
159166
else
160167
COMPREPLY=( $( compgen -W "${!opt_var}" -- "$cur" ) )
161168
fi

0 commit comments

Comments
 (0)