Почему сборка груза не может предложить красочные сообщения об ошибках? - PullRequest
0 голосов
/ 14 октября 2019

В PowerShell, если я использую «rustc» для компиляции «main.rs», я мог бы получать сообщения об ошибках грамматики в цветах.

С «сборкой груза» я мог получить только 2 красочных слова «Компиляция»... ”” error… ”с одноцветными сообщениями об ошибках грамматики.

Что не так с цветом?

1 Ответ

2 голосов
/ 14 октября 2019

Как и многие программы, которые могут выводить цвет, rustc определяет, идет ли его вывод непосредственно на консоль или перенаправляется в файл. Это происходит потому, что цвет обычно генерируется путем вставки специальных управляющих символов в вывод, и эти символы загрязняют файл.

Когда cargo вызывает rustc, он перехватывает свой вывод и печатает его за один раз приконец, так что он может вызывать rustc параллельно несколько раз без путаницы их вывода. К сожалению, это скрывает тот факт, что он работает в консоли с rustc (поскольку, строго говоря, это не так: он работает на cargo, который сам работает в консоли).

rustcимеет аргумент командной строки для принудительного выбора цвета, даже если он не запущен в консоли: --color always. В Linux cargo включает этот аргумент при вызове rustc, поэтому сообщения об ошибках имеют цвет. Я подозреваю, что PowerShell обрабатывает цвета не так, как консоли Linux, что мешает вам работать так же. Вы можете попробовать это, установив переменную окружения RUSTFLAGS в --color always перед вызовом cargo build.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...