#compdef git-bug _arguments \ '1: :->level1' \ '2: :->level2' \ '3: :_files' case $state in level1) case $words[1] in git-bug) _arguments '1: :(add bridge commands comment deselect label ls ls-id ls-label pull push select show status termui title user version webui)' ;; *) _arguments '*: :_files' ;; esac ;; level2) case $words[2] in bridge) _arguments '2: :(configure pull rm)' ;; comment) _arguments '2: :(add)' ;; label) _arguments '2: :(add rm)' ;; status) _arguments '2: :(close open)' ;; title) _arguments '2: :(edit)' ;; user) _arguments '2: :(adopt create ls)' ;; *) _arguments '*: :_files' ;; esac ;; *) _arguments '*: :_files' ;; esac