VSCode problemMatcher严重性映射



我有一个自定义的问题匹配器的蚂蚁任务,调用微软JScript检测JavaScript文件(我不能改变为现代的东西,如ESHint或类似)。

JScript有错误消息,它自己报告为"这个错误可以忽略…",在构建输出中看起来如下所示:

     [echo] c:UsersD064766WorkPerforcetc1lightspeeddevsrc_javascriptjsgenjsdbglightspeed.js(20, 4) Microsoft JScript runtime error: 'document' is undefined
     [echo] 
     [echo] This error can be ignored...

我的problemMatcher看起来如下:

"problemMatcher": [{
    "owner": "javascript",
    "fileLocation": ["absolute"],
    "pattern": [{
        "regexp": "     \[echo\] ([^\(\)]*)\((\d+), (\d+)\) Microsoft JScript (runtime error|compilation error): (.*)",
        "file": 1,
        "line": 2,
        "column": 3,
        "severity": 4,
        "message": 5
    }]
}]

它正确地找到错误报告的第一行。但是,我希望可以忽略的错误在错误报告中以warnings而不是errors的形式出现。

是否有方法将错误消息映射到严重级别?

。将"runtime error"映射到"warning",将"compilation error"映射到"error"(我知道,目光短浅——目前就足够了)。

您可以使用两个选项:

使用多行问题匹配器并匹配所有三行。然而,这要求如果错误消息不能被忽略,也要打印一些东西。例如"这个错误很严重"。看到https://code.visualstudio.com/Docs/editor/tasks _defining-a-problem-matcher

定义两个问题匹配器,并在匹配器本身而不是模式上设置严重性属性。如下所示(未测试)

"problemMatcher": [{
    "owner": "javascript",
    "fileLocation": ["absolute"],
    "severity": "warning",
    "pattern": {
        "regexp": "     \[echo\] ([^\(\)]*)\((\d+), (\d+)\) Microsoft JScript runtime error): (.*)",
        "file": 1,
        "line": 2,
        "column": 3,
        "message": 4
    }
},
{
    "owner": "javascript",
    "fileLocation": ["absolute"],
    "severity": "error",
    "pattern": {
        "regexp": "     \[echo\] ([^\(\)]*)\((\d+), (\d+)\) Microsoft JScript compilation error: (.*)",
        "file": 1,
        "line": 2,
        "column": 3,
        "message": 4
    }
}]

任务的完整模式。json见https://code.visualstudio.com/Docs/editor/tasks_appendix

相关内容

  • 没有找到相关文章

最新更新