Como a saída do terminal colorida pode ser desativada para SBT/Play?
-
27-09-2019 - |
Pergunta
Eu gostaria de desativar os códigos de escape de cores registrados no SBT/PLAY. Isso é possível? E se for, existe uma maneira de fazê -lo sem fazer alterações na configuração - ou seja, por meio de uma troca de linha de comando ou propriedade do sistema.
Solução
Você pode simplesmente definir a propriedade do sistema sbt.log.noformat
para true
. Se você deseja, por exemplo, use o SBT dentro do vim, pode criar um script como este:
#!/bin/bash
java -Dsbt.log.noformat=true $JAVA_OPTS -jar "${HOME}/bin/sbt-launch.jar" "$@"
Outras dicas
Desde a versão 0.13.8
(e possivelmente mais cedo) agora você pode simplesmente usar o -no-colors
opção para sbt. por exemplo
sbt -no-colors test
Isso soa como sua plataforma não corresponde à propriedade real. Estou apenas adivinhando aqui, mas quando eu passo o parâmetro, como Daniel sugeriu em uma linha de comando do Windows, também vejo os códigos de escape de cores.
Portanto, você deve garantir que a propriedade corresponda à sua plataforma, ou seja, o WindowsTerminal no Windows e o UnixterMinal no Unix.
Se isso não ajudar, você pode estar em uma plataforma não suportada, nesse caso local na rede Internet sugere usar:
-Djline.terminal=jline.UnsupportedTerminal
Bem, você pode pegue Cores no Windows instalando o Cygwin e passando este parâmetro:
-Djline.terminal=jline.UnixTerminal
Então, procuraria parâmetros Jline para ver o que desativa a codificação de cores.
Consegui obter a saída colorida do SBT no Cygwin, adicionando:
-Djline.terminal=jline.UnixTerminal
Além disso, descobri que também precisava adicionar a seguinte linha ao cygwin.bat:
set CYGWIN=tty ntsec
Depois disso, o SBT adiciona uma saída colorida muito agradável. Além disso, eu recomendaria procurar no Console2, pois ele pode conectar -se ao Cygwin, mas fornece uma interface muito melhor na minha opinião: