在 VSCode 中,我正在尝试创建一个 ProblemMatcher 来解析我运行的自定义脚本上的错误(如果您有兴趣,可以使用降价文件 -> pandoc -> PDF)。
相当不错的VSCode ProblemMatcher 文档有一个示例任务(对我来说)运行命令("command": "gcc"
)并定义问题匹配器("problemMatcher": {...}
)。
当我对我的 tasks.json 文件同时尝试此操作时,我收到“无法将描述转换为问题匹配器”错误,这并不是很有帮助。我检查了tasks.json 架构,它清楚地表明:
如果执行全局命令(例如未定义任务),将使用的问题匹配器。tasks.json 文件可以包含全局 questionMatcher 属性或 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
}
]
}
}]
}