1

我似乎无法在 Sublime Text 2 中制作 Vala 构建系统......这是我目前所拥有的:

{
"cmd": ["valac", "--pkg", "gtk+-3.0", "'$file'"]
}

不幸的是,这只会用 valac 编译代码,但不会运行它。

我怎样才能让它立即运行编译的程序?

4

3 回答 3

1

这在 Sublime Text 3 中对我有用(通过引入“shell_cmd”):

{
  "shell_cmd": "valac --pkg gtk+-3.0 $file -o app.vala && ./app.vala"
}

app.vala将是编译的构建文件的文件名。

于 2014-09-20T20:40:51.700 回答
1

使用vala而不是valac. 但是,请记住,这不会保留生成的可执行文件。为此,您需要将多个命令链接在一起-我不知道如何使用 Sublime Text 来执行此操作,但是在命令行上您可以执行类似的操作

valac -o foo --pkg gtk+-3.0 file.vala && ./foo
于 2013-10-08T01:47:50.677 回答
0

从 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"] }

它有效,但现在编译器输出对 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来保存编译后的程序并在编译后运行(Roman Fischer 和 nemequ 描述的技巧,但是用$file_base_name变量而不是静态文件名)。

我还添加了另外两个字段:file_regex构建结果导航和selector构建系统自动选择。

于 2014-12-04T13:03:38.767 回答