有时在一行,有时在两行时,如何捕获 Sublime 2 构建输出
How can I capture Sublime 2 build output when it it sometimes on one line, sometimes on two lines
标题有点长,但这是表述问题的最佳方式。
我使用 MivaScript 作为编程语言,因此我正在构建所有工具以使其在 Sublime 中手工运行。除了构建系统,我几乎所有的东西都在工作。我的问题是编译错误有时出现在一行,有时出现在两行。
如果我正在编译单个文件,错误行如下所示:
C:\internet\www\path\filename.mv:59: CE_191: Function "layout" called here with 0 parameters but with 1 parameters at line 27
但是如果该文件包含其他文件,则输出如下所示:
In file included from C:\internet\www\path\lib\file.mv at line 44
subdir/included_file.mv:42: CE_183: Expression is empty
分为两行;第一个提到我正在编译的文件,第二个是存在错误的路径,文件名和行。
更糟糕的是,单个文件具有 Windows 样式路径,包括驱动器。但是如果错误在包含的文件中,它使用 Linux 格式的相对路径。
我正在尝试将其用于文件正则表达式:
"file_regex": "^[a-z,A-Z]?:?\?([^:]+):([0-9]+): [^:]+:.*$",
语法正确;尝试在我创建的包含各种错误消息的文档中进行搜索。但出于某种原因,它在 Sublime 2 的构建输出搜索中不起作用。
有什么想法吗? Sublime 甚至能够处理两行输出吗?
原来是我不够努力。这是最终的工作解决方案:
^([a-z,A-Z]?:?[^:]+):([0-9]+): [^:]+: (.*)$
所以这将捕获驱动器号和冒号(如果有),然后捕获其他所有内容,包括前导斜线。 Sublime 似乎从那里弄明白了。
标题有点长,但这是表述问题的最佳方式。
我使用 MivaScript 作为编程语言,因此我正在构建所有工具以使其在 Sublime 中手工运行。除了构建系统,我几乎所有的东西都在工作。我的问题是编译错误有时出现在一行,有时出现在两行。
如果我正在编译单个文件,错误行如下所示:
C:\internet\www\path\filename.mv:59: CE_191: Function "layout" called here with 0 parameters but with 1 parameters at line 27
但是如果该文件包含其他文件,则输出如下所示:
In file included from C:\internet\www\path\lib\file.mv at line 44
subdir/included_file.mv:42: CE_183: Expression is empty
分为两行;第一个提到我正在编译的文件,第二个是存在错误的路径,文件名和行。
更糟糕的是,单个文件具有 Windows 样式路径,包括驱动器。但是如果错误在包含的文件中,它使用 Linux 格式的相对路径。
我正在尝试将其用于文件正则表达式:
"file_regex": "^[a-z,A-Z]?:?\?([^:]+):([0-9]+): [^:]+:.*$",
语法正确;尝试在我创建的包含各种错误消息的文档中进行搜索。但出于某种原因,它在 Sublime 2 的构建输出搜索中不起作用。
有什么想法吗? Sublime 甚至能够处理两行输出吗?
原来是我不够努力。这是最终的工作解决方案:
^([a-z,A-Z]?:?[^:]+):([0-9]+): [^:]+: (.*)$
所以这将捕获驱动器号和冒号(如果有),然后捕获其他所有内容,包括前导斜线。 Sublime 似乎从那里弄明白了。