#compdef zgetattr zsetattr zdelattr zlistattr
local context state line expl ret=1 REPLY
case $service in
zgetattr)
_arguments \
'1:file:_files' \
'2:attribute:->attrs' \
'3:parameter'
;;
zsetattr)
_arguments \
'1:file:_files' \
'2:attribute:->attrs' \
'3:value'
;;
zdelattr)
_arguments \
'1:file:_files' \
'2:attribute:->attrs'
;;
zlistattr)
_arguments \
'1:file:_files' \
'2:parameter'
;;
esac && ret=0
if [[ $state = attrs ]]; then
zlistattr ${(Q)${~line[1]}} REPLY 2> /dev/null
_wanted -C "$context[1]" attrs expl 'attribute' compadd -a REPLY && ret=0
fi
return ret