VSCode problemMatcher 严重性映射
VSCode problemMatcher severity mapping
我有一个自定义 problemMatcher 用于 ant 任务,它调用 Microsoft JScript 来检查 JavaScript 文件(我无法将其更改为像 ESHint 或类似的现代东西)。
JScript 有自己报告为 "This error can be ignored..." 的错误消息,在构建输出中看起来如下所示:
[echo] c:\Users\D064766\Work\Perforce\tc1\lightspeed\dev\src\_javascript\jsgen\js\dbg\lightspeed.js(20, 4) Microsoft JScript runtime error: 'document' is undefined
[echo]
[echo] This error can be ignored...
我的问题匹配器看起来如下:
"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"
(我知道这是短视的——目前就足够了)。
您可以使用两个选项:
要么使用多行问题匹配器并匹配所有三行。然而,这要求如果错误消息不能被忽略,那么也会打印一些内容。例如 'This error is severe'。参见 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
}
}]
有关 task.json 的完整架构,请参阅 https://code.visualstudio.com/Docs/editor/tasks_appendix
我有一个自定义 problemMatcher 用于 ant 任务,它调用 Microsoft JScript 来检查 JavaScript 文件(我无法将其更改为像 ESHint 或类似的现代东西)。
JScript 有自己报告为 "This error can be ignored..." 的错误消息,在构建输出中看起来如下所示:
[echo] c:\Users\D064766\Work\Perforce\tc1\lightspeed\dev\src\_javascript\jsgen\js\dbg\lightspeed.js(20, 4) Microsoft JScript runtime error: 'document' is undefined
[echo]
[echo] This error can be ignored...
我的问题匹配器看起来如下:
"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"
(我知道这是短视的——目前就足够了)。
您可以使用两个选项:
要么使用多行问题匹配器并匹配所有三行。然而,这要求如果错误消息不能被忽略,那么也会打印一些内容。例如 'This error is severe'。参见 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
}
}]
有关 task.json 的完整架构,请参阅 https://code.visualstudio.com/Docs/editor/tasks_appendix