diff --git a/completions/rbenv.fish b/completions/rbenv.fish deleted file mode 100644 index d347410..0000000 --- a/completions/rbenv.fish +++ /dev/null @@ -1,23 +0,0 @@ -function __fish_rbenv_needs_command - set cmd (commandline -opc) - if [ (count $cmd) -eq 1 -a $cmd[1] = 'rbenv' ] - return 0 - end - return 1 -end - -function __fish_rbenv_using_command - set cmd (commandline -opc) - if [ (count $cmd) -gt 1 ] - if [ $argv[1] = $cmd[2] ] - return 0 - end - end - return 1 -end - -complete -f -c rbenv -n '__fish_rbenv_needs_command' -a '(rbenv commands)' -for cmd in (rbenv commands) - complete -f -c rbenv -n "__fish_rbenv_using_command $cmd" -a \ - "(rbenv completions (commandline -opc)[2..-1])" -end diff --git a/completions/rbenv.zsh b/completions/rbenv.zsh new file mode 100644 index 0000000..5b23d42 --- /dev/null +++ b/completions/rbenv.zsh @@ -0,0 +1,18 @@ +if [[ ! -o interactive ]]; then + return +fi + +compctl -K _rbenv rbenv + +_rbenv() { + local words completions + read -cA words + + if [ "${#words}" -eq 2 ]; then + completions="$(rbenv commands)" + else + completions="$(rbenv completions ${words[2,-2]})" + fi + + reply=("${(ps:\n:)completions}") +}