Использование цветов в консоли Scala
Я надеялся, что это будет так же прямо, как
Console.out.println( "Test " + Console.RED + " RED " + Console.RESET )
но ничего не происходит, вместо этого я вижу управляющие символы (например, "\033[31m"
). Я пробовал как изнутри sbt (sbt run
), так и в обычную конфигурацию запуска IDEA...
Ответы
Ответ 1
Он работает, если ваша консоль поддерживает цвет. Я просто попробовал это на linux-системе через шпатлевку и получил ожидаемый результат.
Изменить: если вы хотите сделать это через окна, вы можете использовать Ansicon, чтобы обеспечить раскраску в стандартной командной строке.
Ответ 2
Yup, вышеизложенное работает отлично.
Также я нашел, что это довольно аккуратно, чтобы обернуть их как методы ".red" на String, как в этой библиотеке https://github.com/ktoso/scala-rainbow
Много камней Ruby, которые делают это, но не столько для Scala еще...: -)
Ответ 3
Если вы используете scala 2.11+, вы можете использовать эту библиотеку: https://github.com/backuity/ansi-interpolator
Он использует макрос, чтобы преобразовать ваши строки во время компиляции и поддерживает вложенность:
ansi"Text containing ansi tags such as %bold{bold text} or %underline{can be %yellow{nested}}"
// you can also use string interpolation:
val someMsg = "hey"
ansi"My msg %bold{in bold: $someMsg}"