在VSCode中,我正在尝试创建一个ProblemMatcher来解析我运行的自定义脚本上的错误(如果您感兴趣,这是markdown文件 -> pandoc -> PDF)。很好的VSCode ProblemMatcher文档有一个示例任务,它似乎(对我来说)运行一个命令(
还是我的代码有问题吗?如果是这样,请指出正确的方向。完整代码(减去注释):
"command": "gcc"
)并定义了一个问题匹配器("problemMatcher": {...}
)。当我在我的tasks.json文件中尝试这样做时,我会得到一个“无法将描述转换为问题匹配器”的错误,这并不是非常有帮助。我检查了tasks.json模式,它清楚地说明:如果执行全局命令,则使用问题匹配器(例如,未定义任何任务)。tasks.json文件可以包含全局problemMatcher属性或tasks属性,但不能同时存在。模式有误吗?如果是这样,我会提出问题。还是我的代码有问题吗?如果是这样,请指出正确的方向。完整代码(减去注释):
{
"version": "2.0.0",
"tasks": [
{
"label": "md2pdf",
"type": "shell",
"command": "md2pdf",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "shared",
"showReuseMessage": false
},
"problemMatcher": {
"owner": "Markdown",
"fileLocation": ["absolute", "/tmp/md2pdf.log"],
"pattern": [
{
// Regular expression to match filename (on earlier line than actual warnings)
"regexp": "^Converting:\\s+(.*)$",
"kind": "location",
"file": 1
},
{
// Regular expression to match: "l.45 \msg_fatal:nn {fontspec} {cannot-use-pdftex}" with a preceding line giving "Converting <filename>:"
"regexp": "l.(\\d+)\\s(.*):(.*)$",
"line": 1,
"severity": 2,
"message": 3
}
]
}
}]
}