58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
#!/usr/bin/env zsh
|
|
|
|
### SDKMAN Autocomplete for Oh My Zsh
|
|
|
|
_sdk() {
|
|
case "${CURRENT}" in
|
|
2)
|
|
compadd -X $'Commands:\n' -- "${${(Mk)functions[@]:#__sdk_*}[@]#__sdk_}"
|
|
compadd -n rm
|
|
;;
|
|
3)
|
|
case "${words[2]}" in
|
|
l|ls|list|i|install)
|
|
compadd -X $'Candidates:\n' -- "${SDKMAN_CANDIDATES[@]}"
|
|
;;
|
|
ug|upgrade|h|home|c|current|u|use|d|default|rm|uninstall)
|
|
compadd -X $'Installed Candidates:\n' -- "${${(u)${(f)$(find -L -- "${SDKMAN_CANDIDATES_DIR}" -mindepth 2 -maxdepth 2 -type d)}[@]:h}[@]:t}"
|
|
;;
|
|
e|env)
|
|
compadd init
|
|
;;
|
|
offline)
|
|
compadd enable disable
|
|
;;
|
|
selfupdate)
|
|
compadd force
|
|
;;
|
|
flush)
|
|
compadd archives broadcast temp version
|
|
;;
|
|
esac
|
|
;;
|
|
4)
|
|
case "${words[2]}" in
|
|
i|install)
|
|
setopt localoptions kshglob
|
|
if [[ "${words[3]}" == 'java' ]]; then
|
|
compadd -X $'Installable Versions of java:\n' -- "${${${${${(f)$(__sdkman_list_versions "${words[3]}")}[@]:5:-4}[@]:#* | (local only|installed ) | *}[@]##* | | }[@]%%+( )}"
|
|
else
|
|
compadd -X "Installable Versions of ${words[3]}:"$'\n' -- "${${(z)${(M)${(f)${$(__sdkman_list_versions "${words[3]}")//[*+>]+( )/-}}[@]:# *}[@]}[@]:#-*}"
|
|
fi
|
|
;;
|
|
h|home|u|use|d|default|rm|uninstall)
|
|
compadd -X "Installed Versions of ${words[3]}:"$'\n' -- "${${(f)$(find -L -- "${SDKMAN_CANDIDATES_DIR}/${words[3]}" -mindepth 1 -maxdepth 1 -type d -not -name 'current')}[@]:t}"
|
|
;;
|
|
esac
|
|
;;
|
|
5)
|
|
case "${words[2]}" in
|
|
i|install)
|
|
_files -X "Path to Local Installation of ${words[3]} ${words[4]}:"$'\n' -/
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
compdef _sdk sdk
|