#compdef spring 'spring'
#autoload

_spring() {

	local cword
	let cword=CURRENT-1

	local hints
	hints=()

	local reply
	while read -r line; do
		reply=`echo "$line" | awk '{printf $1 ":"; for (i=2; i<NF; i++) printf $i " "; print $NF}'`
		hints+=("$reply")
	done < <(spring hint ${cword} ${words[*]})

	if ((cword == 1)) {
		_describe -t commands 'commands' hints
		return 0
	}

	_describe -t options 'options' hints
	_files

	return 0
}

_spring "$@"
