如何创建一个提供自定义problemMatcher的VS Code扩展?

8

我有一个使用自定义problemMatcher的项目。但是我想将其提取到一个扩展程序中,使其可配置。因此,最终可以在tasks.json中使用它,如下所示:

{
    "problemMatcher": "$myCustomProblemMatcher"
}

如何做到这一点?
1个回答

6

截至VSCode 1.11.0(2017年3月),扩展可以通过 package.json 贡献问题匹配器:

{
    "contributes": {
        "problemMatchers": [
            {
                "name": "gcc",
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        ]
    }
}

然后任务可以使用 "problemMatcher": ["$name"] 来引用它(在本例中是$gcc)。


不必内联定义匹配器的 pattern,也可以将其贡献到 problemPatterns 中,以便重复使用(例如,如果您想在多个匹配器中使用它):

{
    "contributes": {
        "problemPatterns": [
            {
                "name": "gcc",
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        ],
        "problemMatchers": [
            {
                "name": "gcc",
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": "$gcc"
            }
        ]
    }
}

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