Conclusão quando o programa possui subcomandos

Eu escrevi uma ferramenta de linha de comando que usa subcomandos como Mercurial, Git, Subversion etc., em que seu uso geral é:

>myapp [OPTS] SUBCOMMAND [SUBCOMMAND-OPTS] [ARGS]

Por exemplo

>myapp --verbose speak --voice=samantha --quickly "hello there"

Agora estou no processo de construção da conclusão do Zsh, mas rapidamente descobri que é uma fera muito complexa. Eu dei uma olhada no_hg e_gitonclusões, mas são muito complexas e diferentes na abordagem (luto para compreendê-las), mas ambas parecem lidar com cada subcomando separadament

Alguém sabe se existe alguma maneira de usar as funções incorporadas _arguments, _values, pick_variant & c.) para lidar com o conceito de subcomandos corretamente, incluindo o manuseio de opções gerais e opções específicas de subcomando adequadamente? Ou a melhor abordagem seria manipular manualmente as opções gerais e o subcomando?

Um exemplo noddy seria muito apreciad

Muito Obrigado

questionAnswers(2)

yourAnswerToTheQuestion