#compdef ztodo _ztodo_entries() { local -a entries entries=(${${${${(f)"$(_call_program ztodo-entry ztodo list)"}#[[:space:]]##}/:[[:space:]]##/:}%:[[:space:]]#}) _describe -t ztodo-entry 'todo entry' entries "$@" } local -a args reply args=( /$'[^\0]#\0'/ ) local -a todo_entry todo_entry=( /$'[^\0]#\0'/ ':ztodo-entry:todo entry:_ztodo_entries' ) _regex_words \ commands "ztodo command" \ 'add:add entry' \ 'del:delete entry:$todo_entry' \ 'clear:clear todo list' \ 'list:show todo list' args+=("$reply[@]") _regex_arguments _ztodo "${args[@]}" _ztodo "$@"