The solution that is working for me is

zstyle :completion::complete:git:argument-1: group-order ancillary-manipulator-commands ancillary-interrogator-commands
zstyle :completion::complete:git-diff:argument-rest: group-order files

Thanks and Best Regards,

Ahmad Ismail



On Thu, Sep 10, 2020 at 2:27 AM Ahmad Ismail <ismail783@gmail.com> wrote:
Hi Daniel Shahaf,

I just noticed an issue. When I use

zstyle -e :completion::complete:git:argument-1: tag-order ancillary-manipulator-commands ancillary-interrogator-commands _next_tags

The sequence of tags is ok except "Completing main porcelain command" remains at the top.

Thanks and Best Regards,

Ahmad Ismail



On Thu, Sep 10, 2020 at 2:17 AM Ahmad Ismail <ismail783@gmail.com> wrote:
Hi Daniel Shahaf,

Thank you very much for this kind reply.

Best Regards,

Ahmad Ismail



On Thu, Sep 10, 2020 at 12:03 AM Daniel Shahaf <d.s@daniel.shahaf.name> wrote:
Ahmad Ismail wrote on Wed, 09 Sep 2020 18:33 +0600:
> In git completion, I want  ancillary-manipulator-commands tag first, then
> ancillary-interrogator-commands tag, then rest of the tags.
>
> My following zstyle is showing ancillary-manipulator-commands tag first,
> then ancillary-interrogator-commands tag, but then not showing rest of the
> tags.
>
> zstyle -e ':completion::complete:git:argument-1:' tag-order '
> reply=(
> "ancillary-manipulator-commands
> ancillary-interrogator-commands"
> -
> )
> '

This means: First, show a-m-commands and a-i-commands; and, because of
the dash, show nothing else.  So, just delete the solitary dash.  Note:
with that configuration, you'll have to invoke _next_tags (q.v.) in
order to list completions from other tags.

Incidentally, you can always simply «zstyle -e foo bar 'reply=(baz
qux)'» to «zstyle foo bar baz qux».  It's exactly equivalent.

Note the quoting.  «zstyle … tag-order 'foo bar'» and «zstyle …
tag-order foo bar» are both valid, but have different meanings.

Cheers,

Daniel