Как включить IO.ANSI в эликсире - PullRequest
0 голосов
/ 09 июля 2020

Я хочу иметь возможность печатать в цвете в , и я читал, что это способ IO.ANSI, но это не работает.

Если я сделаю IO.ANSI.enabled?(), я получу false, так как мне заставить его вернуть true и распечатать в цвете.

1 Ответ

0 голосов
/ 09 июля 2020

IO.ANSI.enabled? - это вспомогательная функция, которая будет возвращать значение параметра среды :ansi_enabled в приложении :elixir. шестнадцатеричные документы ссылаются непосредственно на исходный код, чтобы вы могли увидеть, как реализована функция .

Если вы запустите IEx в терминале, вы должны увидеть IO.ANSI.enabled? верните true или попробуйте elixir -e 'IO.puts IO.ANSI.enabled?'. В тех же шестнадцатеричных документах, которые я привел выше, упоминается, что для него будет установлено значение true, когда Elixir обнаружит при запуске, что и stdout, и stderr подключены к терминалу.

Если вы хотите отправить цветовые коды ANSI куда-нибудь, кроме терминал, вы можете перевернуть значение :ansi_enabled следующим образом:

Application.put_env(:elixir, :ansi_enabled, true)
...