fix(cargo): complete flags for default cargo aliases (#9692)

By default, cargo provides alias for some commonly used functions. This patch
makes it that those alias will complete the same as their full commands.

Default alias:
b -> build
c -> check
t -> test
r -> run

Since cargo allows users to define custom alias it would be nice if
oh-my-zsh automatically detected those and preformed completions as such
but that would be a much more complex patch.
This commit is contained in:
Ben Goldberg 2021-05-03 10:59:45 -04:00 committed by GitHub
parent f4de8c5b3a
commit 4e8ffe88d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -77,7 +77,7 @@ _cargo() {
'*:args:_default' '*:args:_default'
;; ;;
build) build|b)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \ '--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \
"${command_scope_spec[@]}" \ "${command_scope_spec[@]}" \
@ -86,7 +86,7 @@ _cargo() {
'--build-plan[output the build plan in JSON]' \ '--build-plan[output the build plan in JSON]' \
;; ;;
check) check|c)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \ '--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \
"${command_scope_spec[@]}" \ "${command_scope_spec[@]}" \
@ -224,7 +224,7 @@ _cargo() {
_arguments -s -S $common $manifest _arguments -s -S $common $manifest
;; ;;
run) run|r)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--example=[name of the bin target]:name' \ '--example=[name of the bin target]:name' \
'--bin=[name of the bin target]:name' \ '--bin=[name of the bin target]:name' \
@ -259,7 +259,7 @@ _cargo() {
'*: :_guard "^-*" "query"' '*: :_guard "^-*" "query"'
;; ;;
test) test|t)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--test=[test name]: :_cargo_test_names' \ '--test=[test name]: :_cargo_test_names' \
'--no-fail-fast[run all tests regardless of failure]' \ '--no-fail-fast[run all tests regardless of failure]' \