Move shell completion logic to Java

Refactor bash shell completion to move the majority of the logic into
the Java code. This commit also removes the need for the '--' prefix on
every command.
This commit is contained in:
Phillip Webb
2013-11-07 17:45:22 -08:00
parent 202e32425e
commit ff635cf75b
11 changed files with 364 additions and 66 deletions

View File

@@ -4,33 +4,19 @@
_spring()
{
local cur prev help helps words cword command commands i
local cur prev help helps words cword command commands i
COMPREPLY=()
_get_comp_words_by_ref cur prev words cword
_get_comp_words_by_ref cur prev words cword
commands=( `_parse_help spring | sed -e 's/--//'` )
if [[ "$prev" == spring ]]; then
for command in "${commands[@]}"; do
if [[ "${cur}${command#$cur*}" == "$command" ]]; then
COMPREPLY+=("$command")
fi
done
return 0
else
for command in "${commands[@]}"; do
if [[ "$prev" == "$command" && "$cur" == -* ]]; then
helps=( `_parse_help 'spring help' $prev` )
for help in "${helps[@]:2}"; do
if [[ "${cur}${help#$cur*}" == "$help" ]]; then
COMPREPLY+=("$help")
fi
done
return 0
fi
done
fi
COMPREPLY=()
_filedir
while read -r line; do
reply=`echo "$line" | awk '{print $1;}'`
COMPREPLY+=("$reply")
done < <(spring hint ${cword} ${words[*]})
if [ $cword -ne 1 ]; then
_filedir
fi
} && complete -F _spring spring