Последние версии системы сборки Makefile в ST3 (как описано в файле Make.sublime-build) уже содержат определение синтаксиса, которое создает цветной вывод.
Если вас это не устраивает, вот что вы можете сделать как альтернативный и общепринятый подход, если у вас есть система сборки, которая выдает цвета ANSI в терминале, и вы хотите, чтобы они отображались на панели вывода сборки Sublime Text 3 ,
Вот как я это сделал в моей установке Sublime Text 3 для RSpec, но я думаю, что она идеально подходит в любом случае для инструмента, создающего цвет в обычной консоли /TTY:
1. Заставьте вашу систему сборки выводить цвета, даже если она не выводится на TTY.
Это зависит от системы сборки. Например, для Ruby и RSpec вы можете создать в своем проекте файл .rspec
со следующим содержимым:
--color --tty
В вашем случае у вас уже есть система сборки, которая выдает выходные данные с цветными escape-последовательностями ANSI.
2. Установите пакет ANSIescape (SublimeANSI)
Рекомендуется установить его через управление пакетами. См. Репозиторий для инструкций по установке и настройке.
3. Создайте новое определение системы сборки в Sublime Text и настройте его на распознавание цветов ANSI.
Например, вот содержимое моей Colorized RSpec.sublime-build
:
{
"cmd": ["rspec", "-I ${file_path}", "$file"],
"file_regex": "# ([A-Za-z:0-9_./ ]+rb):([0-9]+)",
"working_dir": "${project_path:${folder:${file_path}}}",
"selector": "source.ruby.rspec",
// Recognize ANSI colors in the output
"target": "ansi_color_build",
"syntax": "Packages/ANSIescape/ANSI.tmLanguage"
}
Последние два варианта конфигурации взяты из readme SublimeANSI. Вы можете применить это к вашей системе сборки для Make. Вы можете использовать его в текущей версии файла Make.sublime-build
из пакетов Sublime Text 3.
4. Создайте свой файл / проект, используя только что созданную систему сборки.
Используйте меню «Build with ...», чтобы выбрать новую систему сборки. На OS X это Cmd + Shift + B
Последующие сборки с помощью Cmd + B
будут использовать эту последнюю выбранную систему сборки.
Вот как это выглядит: