将problemMatcher与vs代码一起使用



我正在尝试为VSCode内的构建任务设置problemMatcher,该命令生成如下消息:

14 : ../../Dsrc/path/to/file.h:44:58: error: class ‘tf::ARandomClass’ does not have any field named ‘epsilon’

使用https://regex101.com/我构建了一个如下表达式来构建问题匹配器:../../Dsrc/(.*?):(.*?):(.*?): (.*?): (.*?)$

然而,VS代码中的以下问题匹配器不起作用:

"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "../../Dsrc/(.*?):(.*?):(.*?): (.*?): (.*?)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},

即使我删除了../../Dsrc/部分,它似乎确实与终端内的任何内容相匹配。我做错了什么?

尝试regex:

^d+s*:s*([^:]+):(d+):(d+): (.*?): (.*?)$

因为配置文件是JSON,所以您需要在regexp值中转义(即,将反斜杠加倍(:

"regexp": "\.\.\/\.\.\/Dsrc\/(.*?):(.*?):(.*?): (.*?): (.*?)$",

最新更新