Простейшей системой сборки для запуска кода Vala из Sublime Text 2 будет:
{ "cmd": ["vala", "--pkg=gtk+-3.0", "$file"] }
Это была моя первая попытка создать систему сборки Vala для Windows, и результат меня не совсем удовлетворил. Во время компиляции выскочило несколько надоедливых окон, а после хост-окно оставалось видимым. Чтобы решить эту проблему, я запустил vala в свернутом окне:
{ "cmd": ["cmd", "/c start /min vala --pkg=gtk+-3.0 $file"] }
Это сработало, но теперь вывод компилятора не был виден для Sublime Text.
Поскольку я просто играю с Vala, а мои программы имеют сложность Hello World, я могу решить обе проблемы, просто скомпилировав код дважды. Сначала в код C, чтобы получить результаты сборки, а затем запустить код из свернутого окна.
{ "cmd": ["cmd", "/c valac --ccode --pkg=gtk+-3.0 $file && start /min vala --pkg=gtk+-3.0 $file"] }
Компиляция только в C имеет свои недостатки, и ошибки C-компилятора не будут отображаться в результатах сборки, но я могу с этим смириться.
Вот что у меня получилось:
{
"cmd": ["cmd", "/c valac --ccode --pkg=gtk+-3.0 $file && start /min /wait valac -X -mwindows --pkg=gtk+-3.0 $file -o $file_base_name && $file_base_name"],
"file_regex": "^(?<filename>(?:[A-Z]:)?[^:]+):(?<line>[0-9]+).(?<column>[0-9]+)[^:]+: (?<message>.+)",
"selector": "source.vala"
}
Я использовал здесь valac вместо vala, чтобы сохранить скомпилированную программу и запустить ее после компиляции (трюк, описанный Романом Фишером и nemequ, но с переменной $file_base_name
вместо статического имени файла ).
Также я добавил еще два поля: file_regex
для навигации по результатам сборки и selector
для автовыбора системы сборки.
person
Dmitry Popov
schedule
04.12.2014