4

在我遇到的 vscode 中,有时我可以单击集成终端中的构建错误,但有时无法这样做。这让我很烦恼很长一段时间,因为我无法找到模式,直到今天我正在编辑 tasks.json。

它看起来与定义 a problemMatcherin相关.vscode/tasks.json。从文件中删除该problemMatcher部分并在终端中构建错误不再可单击,但将其放回并没有重新启用它们。

我的 vscode-project 位于构建树的子文件夹中,整个项目的构建根目录是两个级别${workspaceFolder}/../..,我相信这可能会混淆一些构建工具。

任务.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "problemMatcher": {
        "fileLocation": "relative",
        "severity": "error",
        "pattern":{
            "regexp": "^system/mytool/(.*):(\\d+):(\\d+):\\s+(warning|error):(.*)$",
            "file": 1,
            "location": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        },
    },
    "tasks": [
        {
            "type": "shell",
            "label": "android deploy",
            "command": "cd ${workspaceFolder}/../..; source build/envsetup.sh ; lunch hikey960-userdebug ; m mytool",
            "args": [
            ],
            "options": {
            },
            "group": "build"
        },

    ]
}

我已经看到将示例放入"problemMatcher" = "$gcc"任务中,我是否应该在其他地方全局定义我的问题匹配器并用我的名字来引用它?

当我通过在集成终端中键入 make-commands 构建时,如何使用它来解析输出?

4

1 回答 1

1

您不能全局定义问题匹配器。相反,您必须在每个任务中定义它们。

这有点难看,因为您可能必须将相同的问题匹配器复制到很多任务中。有一个未解决的问题:全局任务属性

于 2020-04-26T10:17:25.030 回答