improve (completion): add conditions to dart cli completion and implement missing ones
parent
e1ddf6e311
commit
b0eb53f545
|
|
@ -1,48 +1,115 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
__dart_completion() {
|
if _command_exists dart; then
|
||||||
# shellcheck disable=SC2155
|
function __dart_completion() {
|
||||||
local prev=$(_get_pword)
|
local prev HELP VERBOSE cmd
|
||||||
# shellcheck disable=SC2155
|
|
||||||
local curr=$(_get_cword)
|
|
||||||
|
|
||||||
local HELP="--help -h"
|
prev=$(_get_pword)
|
||||||
local VERBOSE="-v --verbose"
|
cmd=${COMP_WORDS[1]}
|
||||||
|
|
||||||
case $prev in
|
HELP=(--help -h)
|
||||||
analyze)
|
VERBOSE=(-v --verbose)
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP --fatal-infos --no-fatal-warnings --fatal-warnings" -- "$curr"))
|
|
||||||
;;
|
|
||||||
compile)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP aot-snapshot exe js jit-snapshot kernel" -- "$curr"))
|
|
||||||
;;
|
|
||||||
create)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP --template -t --no-pub --pub --force" -- "$curr"))
|
|
||||||
;;
|
|
||||||
-t | --template)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "console-simple console-full package-simple web-simple" -- "$curr"))
|
|
||||||
;;
|
|
||||||
format)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP $VERBOSE -o --output --fix -l --line-length" -- "$curr"))
|
|
||||||
;;
|
|
||||||
pub)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP $VERBOSE --version --no-trace --trace --verbosity cache deps downgrade get global logout outdated publish run upgrade uploader version" -- "$curr"))
|
|
||||||
;;
|
|
||||||
run)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP --observe --enable-vm-service --no-pause-isolates-on-exit --no-pause-isolates-on-unhandled-exceptions --no-warn-on-pause-with-no-debugger --pause-isolates-on-exit --pause-isolates-on-unhandled-exceptions --warn-on-pause-with-no-debugger" -- "$curr"))
|
|
||||||
;;
|
|
||||||
dart)
|
|
||||||
# shellcheck disable=SC2207
|
|
||||||
COMPREPLY=($(compgen -W "$HELP $VERBOSE --version --enable-analytics --disable-analytics help analyze compile create format pub run test" -- "$curr"))
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
complete -F __dart_completion dart
|
case $cmd in
|
||||||
|
analyze)
|
||||||
|
COMPREPLY=("${HELP[@]}" --fatal-infos --{no-,}fatal-warnings)
|
||||||
|
;;
|
||||||
|
|
||||||
|
compile)
|
||||||
|
COMPREPLY=("${HELP[@]}" {aot,jit}-snapshot exe js kernel)
|
||||||
|
;;
|
||||||
|
|
||||||
|
create)
|
||||||
|
case $prev in
|
||||||
|
-t | --template)
|
||||||
|
COMPREPLY=({console,package,web}-simple console-full server-shelf)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=("${HELP[@]}" -t --template --{no-,}pub --force)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
fix)
|
||||||
|
COMPREPLY=("${HELP[@]}" -n --dry-run --apply)
|
||||||
|
;;
|
||||||
|
|
||||||
|
format)
|
||||||
|
case $prev in
|
||||||
|
-o | --output)
|
||||||
|
COMPREPLY=(json none show write)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=("${HELP[@]} ${VERBOSE[@]}" -o --output -l --line-length --fix --set-exit-if-changed)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
migrate)
|
||||||
|
COMPREPLY=("${HELP[@]}"--apply-changes --ignore-errors --skip-import-check --{no-,}web-preview --preview-hostname --preview-port --summary)
|
||||||
|
;;
|
||||||
|
|
||||||
|
pub)
|
||||||
|
case $prev in
|
||||||
|
add)
|
||||||
|
COMPREPLY=("${HELP[@]}" -d --dev --git-{url,ref,path} --hosted-url --path --sdk --{no-,}offline -n --dry-run --{no-,}precompile -C --directory)
|
||||||
|
;;
|
||||||
|
cache)
|
||||||
|
COMPREPLY=("${HELP[@]}" add clean repair)
|
||||||
|
;;
|
||||||
|
deps)
|
||||||
|
COMPREPLY=("${HELP[@]}" -s --style --{no-,}dev --executables --json -C --directory)
|
||||||
|
;;
|
||||||
|
downgrade)
|
||||||
|
COMPREPLY=("${HELP[@]}" --{no-,}offline -n --dry-run -C --directory)
|
||||||
|
;;
|
||||||
|
get)
|
||||||
|
COMPREPLY=("${HELP[@]}" --{no-,}{offline,precompile} -n --dry-run -C --directory)
|
||||||
|
;;
|
||||||
|
global)
|
||||||
|
COMPREPLY=("${HELP[@]}" activate deactivate list run)
|
||||||
|
;;
|
||||||
|
login | logout)
|
||||||
|
COMPREPLY=("${HELP[@]}")
|
||||||
|
;;
|
||||||
|
outdated)
|
||||||
|
COMPREPLY=("${HELP[@]}" --{no-,}{color,dependency-overrides,dev-dependencies,prereleases,show-all,transitive} --json --mode -C --directory)
|
||||||
|
;;
|
||||||
|
publish)
|
||||||
|
COMPREPLY=("${HELP[@]}" -n --dry-run -f --force -C --directory)
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
COMPREPLY=("${HELP[@]}" --{no-,}{offline,precompile} -n --dry-run -C --directory)
|
||||||
|
;;
|
||||||
|
upgrade)
|
||||||
|
COMPREPLY=("${HELP[@]}" --{no-,}{offline,precompile} -n --dry-run --null-safety --major-versions -C --directory)
|
||||||
|
;;
|
||||||
|
uploader)
|
||||||
|
COMPREPLY=("${HELP[@]}" -p --package -C --directory)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
COMPREPLY=("${HELP[@]} ${VERBOSE[@]}" --{no-,}trace add cache deps downgrade get global log{in,out} outdated publish remove upgrade uploader)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
run)
|
||||||
|
case $prev in
|
||||||
|
--verbosity)
|
||||||
|
COMPREPLY=(all error info warning)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=("${HELP[@]}" --observe --enable-vm-service --{no-,}{serve-devtools,pause-isolates-on-{exit,unhandled-exceptions,start},warn-on-pause-with-no-debugger,enable-asserts} --verbosity -D --define)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
COMPREPLY=("${HELP[@]} ${VERBOSE[@]}" --version --{enable,disable}-analytics analyze compile create fix format migrate pub run test help)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F __dart_completion -X "!&*" dart
|
||||||
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue