12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/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
|