#autoload
local begin end ret=1
local -a args dict dicts dictwords expl
if [[ $service = dict ]]; then
args=( ${(kv)opt_args[(I)-([hpdauk]|-(host|port|database|noauth|user|key))]} )
fi
if [[ -z $words[CURRENT] ]]; then
_message -e dict 'dictionary word'
return 1
elif [[ -z $SUFFIX ]]; then
dictwords=( ${(z)${(f)"$(_call_program words dict $args -m -s prefix $PREFIX 2>/dev/null)"}} )
elif [[ -z $PREFIX ]]; then
dictwords=( ${(z)${(f)"$(_call_program words dict $args -m -s suffix $SUFFIX 2>/dev/null)"}} )
else
dictwords=( ${(z)${(f)"$(_call_program words dict $args -m -s regexp $PREFIX.\*$SUFFIX 2>/dev/null)"}} )
fi
dictwords=( ${${dictwords#\"}%\"} )
dicts=( ${${(M)dictwords:#*:}%:} )
if zstyle -t ":completion:${curcontext}:words" separate-sections; then
_tags words.$^dicts
while _tags; do
for dict in $dicts; do
if _requested words.$dict expl "word from $dict"; then
(( begin=${dictwords[(i)$dict:]} + 1 ))
end=${dictwords[(ib.begin.)*:]}
[[ $end = 1 ]] && end=$#dictwords
compadd "$expl[@]" "$@" -M 'm:{a-zA-Z}={A-Za-z} r:|=*' -a - \
'dictwords[begin,end]' && ret=0
fi
done
(( ret )) || break
done
return 1
else
_wanted words expl word compadd -M 'm:{a-zA-Z}={A-Za-z} r:|=*' "$@" - \
${dictwords:#*:}
fi
Copyright 2K16 - 2K18 Indonesian Hacker Rulez