Просмотр исходного кода

Proof-of-concept external completions

pull/360/head^2
Sam Stephenson 15 лет назад
Родитель
Сommit
6da85246c6
3 измененных файлов: 31 добавлений и 24 удалений
  1. +9
    -24
      completions/rbenv.bash
  2. +15
    -0
      libexec/rbenv-completions
  3. +7
    -0
      libexec/rbenv-local

+ 9
- 24
completions/rbenv.bash Просмотреть файл

@ -1,29 +1,14 @@
_rbenv_commands() {
COMPREPLY=()
local cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $( compgen -W "$(rbenv commands)" -- $cur ) )
}
_rbenv_versions() {
COMPREPLY=()
local cur="${COMP_WORDS[COMP_CWORD]}"
local versions="$(echo system; rbenv versions --bare)"
COMPREPLY=( $( compgen -W "$versions" -- $cur ) )
}
_rbenv() {
COMPREPLY=()
local cur="${COMP_WORDS[COMP_CWORD]}"
local prev="${COMP_WORDS[COMP_CWORD-1]}"
case "$prev" in
set-* | global | local | shell | prefix )
_rbenv_versions
;;
* )
_rbenv_commands
;;
esac
local word="${COMP_WORDS[COMP_CWORD]}"
if [ "$COMP_CWORD" -eq 1 ]; then
COMPREPLY=( $(compgen -W "$(rbenv commands)" -- "$word") )
else
local command="${COMP_WORDS[1]}"
local completions="$(rbenv completions "$command")"
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
fi
}
complete -F _rbenv rbenv

+ 15
- 0
libexec/rbenv-completions Просмотреть файл

@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -e
[ -n "$RBENV_DEBUG" ] && set -x
COMMAND="$1"
if [ -z "$COMMAND" ]; then
echo "usage: rbenv completions COMMAND [arg1 arg2...]" >&2
exit 1
fi
COMMAND_PATH="$(command -v "rbenv-$COMMAND")"
if grep -i "^# provide rbenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

+ 7
- 0
libexec/rbenv-local Просмотреть файл

@ -2,6 +2,13 @@
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
shift
echo system
exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
RBENV_VERSION_FILE=".rbenv-version"

Загрузка…
Отмена
Сохранить