Conclusão da guia para formiga no Windows?
-
27-09-2019 - |
Pergunta
Existe alguma maneira de ter uma conclusão adequada da guia para a formiga no Windows (cmd.exe)?
Eu poderia escrever o destino padrão para listar todos os outros alvos, mas isso não é o mesmo que uma conclusão adequada da guia que você obtém no Linux, por exemplo.
Solução
Bash tem um mecanismo de conclusão personalizável na construção complete
comando. Ao criar o comando completo, você pode fazer a conclusão da linha de comando em quase tudo o que puder pensar. A conclusão do alvo da formiga é feita através de um script de shell Perl chamado complete-ant-cmd.pl
que é colocado no arquivo BASHRC Wide System em Cygwin.
O cmd.exe não possui esse mecanismo e não pode ser expandido além do que já está incorporado a ele.
Como outros mencionaram, você pode tentar o ant -p
ou ant --projecthelp
comando que listará todos os objetivos e sua descrição. Tente isso build.xml
Arquivo:
<project name="test" default="target2" basedir=".">
<description>
This is a test project. It is to demonstrate the use
of the "ant -p" command and show all described
targets. The """ probably won't work, but you can use
regular quotes.
</description>
<target name="target1"
description="This is the prime target, but not the default"/>
<target name="target2"
description="This is the default target but not because I said it here"/>
<!-- Target "target3" won't display in "ant -p" because -->
<!-- it has no description parameters. Life is tough. -->
<target name="target3"/>
<target name="target4"
description="This is target #4, but there's no target3"/>
</project>
A saída será:
$ ant -p
Buildfile: /Users/david/build.xml
This is a test project. It is to demonstrate the use
of the "ant -p" command and show all described
targets. The """ probably won't work, but you can use
regular quotes.
Main targets:
target1 This is the prime target, but not the default
target2 This is the default target but not because I said it here
target4 This is target #4, but there's no target3
Default target: target2
$
Outras dicas
Você pode integrar o TabCompletion para a ANT com bastante facilidade no PowerShell.exe, que, por sinal, é muito mais poderoso que o cmd.exe antigo e simples.
PowerShell.exe faz parte do Windows 7/8, mas também pode ser instalado como componente separado no XP (pode ser baixado no site da Microsoft).
Eu usei o script fornecido em https://github.com/peet/posh-ant. O script ainda não é perfeito, mas 95% do trabalho muito bem.
Esse recurso Funciona no ambiente do Cygwin Bash nas janelas.
Eu uso cygwin o tempo todo. Não sabia e não havia ativado esse recurso. Mas eu tentei agora depois de atualizar meu perfil, conforme descrito nesse link:
$ ant t<TAB>est<TAB>
test test_1 test_2 test_3
$ ant test
Eu não acho que o cmd.exe suporta esse tipo de conclusão de comando personalizável.
Se você poderia fazer algo parecido com PowerShell é uma pergunta que não posso responder.
BTW, "Ant -p [rojecthelp] é a maneira típica de imprimir os alvos (que possuem o conjunto de atributos de descrição) no seu arquivo de compilação. Em vez de escrever um alvo padrão para fazer isso.