diff options
author | Aditya <bluenerd@protonmail.com> | 2023-02-27 20:04:56 +0530 |
---|---|---|
committer | Aditya <bluenerd@protonmail.com> | 2023-02-27 20:04:56 +0530 |
commit | edc449275b6c04445f58b108ca0937a87c1e8430 (patch) | |
tree | 9fd484d58145b616f29a78857cc0b1c8b1c18f05 /oh-my-zsh/plugins/sdk | |
parent | 6f5424ca96c4221ef433f545642669e9c104d0ed (diff) |
add zsh
Diffstat (limited to 'oh-my-zsh/plugins/sdk')
-rw-r--r-- | oh-my-zsh/plugins/sdk/README.md | 14 | ||||
-rw-r--r-- | oh-my-zsh/plugins/sdk/sdk.plugin.zsh | 58 |
2 files changed, 72 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/sdk/README.md b/oh-my-zsh/plugins/sdk/README.md new file mode 100644 index 0000000..1eda5d3 --- /dev/null +++ b/oh-my-zsh/plugins/sdk/README.md @@ -0,0 +1,14 @@ +# sdk + +Plugin for SDKMAN, a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. +Provides autocompletion for all known commands. + +To use it, add `sdk` to your plugins array in your zshrc file: + +```zsh +plugins=(... sdk) +``` + +## Requirements + +* [SDKMAN](http://sdkman.io/) diff --git a/oh-my-zsh/plugins/sdk/sdk.plugin.zsh b/oh-my-zsh/plugins/sdk/sdk.plugin.zsh new file mode 100644 index 0000000..441bd6f --- /dev/null +++ b/oh-my-zsh/plugins/sdk/sdk.plugin.zsh @@ -0,0 +1,58 @@ +#!/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 |