如何在Sublime Text 3中匹配行和错误?

4
我该如何使用正则表达式在构建过程中匹配错误,以便使用result_line_regexresult_file_regex定位行号和文件?
project4.dpr(9) Hint: H2164 Variable 'I' is declared but never used in 'Project3'

我尝试过这个方法,但它不起作用。
    "result_file_regex": "^.*\\(.*)/.?(.*)$",
    "result_line_regex": "^([^\\]*)\.(\w+)$",

result_line_regexresult_file_regex是结果视图中的设置,而不是您写入构建系统的条目。我认为您可以添加类似于"file_regex": "^([\w\.]+)\((\d+)\)"的内容。第一组是文件名,第二组是行号。(可能有问题的是,它只是文件名,而不是文件路径。) - r-stein
那个正则表达式在ST3中不起作用。红色覆盖\ - user6033608
你有没有尝试实际运行构建系统? - MattDMo
1个回答

2
如评论中所提到的,file_regex是传递给result_line_regex的设置(请查看Packages / Default / exec.pyclass ExecCommandrun()方法签名)。
在你的情况下,一个好的正则表达式应该是^([\w-]+\.\w+)\((\d+)\)。第一组捕获类似于my-file.ext的东西,第二个组捕获括号内的数字。
为了在json文件中将该表达式设置为字符串,您需要用另一个反斜杠对每个反斜杠进行转义(\是字符串中的转义字符),因此它变为:
"file_regex": "^([\\w-]+\\.\\w+)\\((\\d+)\\)"

请注意,匹配的文件必须在触发构建系统时活动文件所在的路径中。如果您希望它相对于特定路径而不管您何时触发构建,您也可以传递工作目录,例如:
"working_dir": "/path/to/my/source"

这将在输出视图中设置为result_base_dir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接