0

我一直在谷歌搜索几个小时,简化为最愚蠢的 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
                }
            }
        }
    ]
}
4

0 回答 0