Compilation 创建Vala Sublime文本构建系统

Compilation 创建Vala Sublime文本构建系统,compilation,sublimetext,vala,Compilation,Sublimetext,Vala,我似乎无法在崇高的文本2中创建Vala构建系统。。。以下是我目前掌握的情况: { "cmd": ["valac", "--pkg", "gtk+-3.0", "'$file'"] } 不幸的是,这只使用valac编译代码,而不运行它 如何使它在编译后立即运行已编译的程序?使用vala而不是valac。但是,请记住,这不会保留生成的可执行文件。要做到这一点,您需要将多个命令链接在一起——我不知道如何使用Sublime文本来做到这一点,但在命令行上,您可以执行以下操作 valac -o foo -

我似乎无法在崇高的文本2中创建Vala构建系统。。。以下是我目前掌握的情况:

{
"cmd": ["valac", "--pkg", "gtk+-3.0", "'$file'"]
}
不幸的是,这只使用valac编译代码,而不运行它


如何使它在编译后立即运行已编译的程序?

使用
vala
而不是
valac
。但是,请记住,这不会保留生成的可执行文件。要做到这一点,您需要将多个命令链接在一起——我不知道如何使用Sublime文本来做到这一点,但在命令行上,您可以执行以下操作

valac -o foo --pkg gtk+-3.0 file.vala && ./foo

这在升华文本3中对我有效(通过引入“shell_cmd”):


app.vala将是编译生成文件的文件名。

从Sublime Text 2中运行vala代码的最简单生成系统是:

{ "cmd": ["vala", "--pkg=gtk+-3.0", "$file"] }
这是我第一次尝试在Windows上为Vala创建构建系统,我对结果不太满意。编译过程中弹出了几个恼人的窗口,之后,主机窗口仍然可见。为了解决这个问题,我在最小化的窗口中运行了vala:

{ "cmd": ["cmd", "/c start /min vala --pkg=gtk+-3.0 $file"] }
它工作了,但现在,编译器的输出对于升华文本是不可见的

因为我只是在玩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"
}
{
“cmd”:[“cmd”,“/c valac--ccode--pkg=gtk+-3.0$file&&start/min/wait valac-X-mwindows--pkg=gtk+-3.0$file-o$file\u base\u name&$file\u base\u name”],
“文件正则表达式”:“^(?([A-Z]:)?[^:::+):(?[0-9]+)。(?[0-9]+)[^::+:(?。+)”,
“选择器”:“source.vala”
}
我在这里使用valac而不是vala来保存编译后的程序,并在编译后运行它(Roman Fischer和Nemeq描述了这个技巧,但是使用
$file\u base\u name
变量而不是静态文件名)


此外,我还添加了两个字段:
file\u regex
用于生成结果导航和
选择器
用于生成系统自动选择。

您找到解决方案了吗?我不知道Sublime,但另一种可能是编写一个小型shell脚本,并使用
“cmd”
运行该脚本?
{ 
    "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"
}