#compdef analyseplugin

local expl context state line nopts ret=1
typeset -A opt_args

_arguments \
    '-l[gives a brief listing (one line per plugin)]' \
    '(-)1:plugin file:->pfile' \
    '(-)2::plugin label:->plabel' && ret=0

case "$state" in
    pfile)
	_wanted plugin-files expl 'plugin file' compadd \
	    ${~${^${${(f)"$(_call_program ladspa-plugins listplugins 2> /dev/null)"}:#[[:space:]]*}/%:/(:t:r)}} \
	    && return
	;;
    plabel)
	typeset -a plabel
	nopts=(${words:#-*})
	plabel=(${${(f)"$($nopts[1] -l $nopts[2] 2> /dev/null)"}/[[:space:]]##/:})
	_describe -t plugin-label 'plugin label' plabel && return
	;;
esac

return ret
