Especificamente, gostaria de organizar todas as listas de conclusão (sob o contexto: completion: *) precedidas e seguidas por uma string fixa (digamos "ABC" no momento) em sua própria linha.
Eu tentei uma variedade de abordagens e consegui obter a linha anterior, mas não a seguinte. As melhores abordagens são
Use o comppostfunc da matriz em _main_complete. Incluindo uma função que usa _message -r para imprimir a linha. Mas comppostfun é executado no final de _main_complete mas aparentemente antes da lista ser criada, dando a string no início e não no final.
Crie novos completadores - um clone de _complete que retorna 1 e um complemento que apenas faz _mensagem. A ideia é que o completador da mensagem vem por último. Isso funciona até um ponto, mas novamente a string vem no início da lista de conclusão.
Adapte 1 ou 2 jogando com o estilo de ordem de tag para colocar mensagens no final. Isso não funciona.
Crie uma variante do completer _completo que execute sua ação normal (_normal em um caso) e termine com uma _mensagem. Novamente, isso faz as duas coisas, mas sempre coloca a mensagem em primeiro lugar. A reprodução com a ordem de tags não altera isso.
Sinto que estou perdendo alguma coisa. Por exemplo, existe uma maneira de especificar um estilo complementar no qual a saída de vários completadores é concatenada? Por que não fazer várias ações dentro de um completer produz a lista de conclusão em ordem? Como obter o estilo de ordem de tag para colocar a saída _mensagem no final?
Tags zsh autocomplete