我一直在谷歌搜索几个小时,简化为最愚蠢的 vs 代码项目:
并且没有报告任何问题。
我错过了什么?
[编辑]
根据评论中的要求,我在这里回显一条实际的错误消息,从https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher复制:
echo helloWorld.c:5:3: 警告:函数'printft'的隐式声明</p>
我从同一个链接复制了示例问题匹配器。仍然没有显示任何东西。由于某种原因,终端输出有一些换行符。
[编辑 2] 好的,感谢 rioV8 和 Yassin Hajaj 的帮助,我想通了。这是学习问题匹配器如何工作的一种令人沮丧的方式。我缺乏正则表达式的经验并没有帮助。
原来“shell”默认为 PowerShell,它有一个 echo 命令将每个标记显示到一个新行。我终于把它变成了一条带有一些逃避诡计的线:
"command": "echo \\\"dummy.cpp:5:3: warning: implicit declaration of function ‘prinft’\\\""
文件、行和消息属性也是必需的。
所以这是一个工作示例:
{
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
// by default the command appears in the terminal so 2 lines will actually be matched
"command": "echo \\\"dummy.cpp:5:3: warning: implicit declaration of function ‘prinft’\\\"",
"problemMatcher": {
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"message": 5
}
}
}
]
}