作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 VSCode 中有一个 Powershell 任务,但不知道如何使 problemMatch
工作
{
"version": "0.1.0",
"command": "PowerShell.exe",
"isShellCommand": true,
"suppressTaskName": true,
"args": [
"& '${file}'"
],
"tasks": [
{
"taskName": "Build",
"isBuildCommand": true,
"showOutput": "always",
"fileLocation": ["absolute"],
"problemMatcher": [
{
"pattern": {
"regexp": "At (.*\\.ps1):(\\d*) char:(\\d*)(.*)\\n\\+(.*)\\n\\+(.*)\\n(.*)",
"file": 1,
"line": 2,
"column": 3,
"message": 7
}
}]
}]
}
正则表达式目标如下:
At C:\tmp\C1-INT to C1-QA\a.ps1:1 char:11
+ "asdasds" !
+ ~
Unexpected token '!' in expression or statement.
文件:第 1 组“C:\tmp\C1-INT 到 C1-QA\a.ps1”
行:第 2 组“1”
列:第 3 组“11”
消息:第 7 组 意外的标记 '!'在表达式或语句中。
最佳答案
我不确定问题匹配器的正则表达式是否可以处理换行符。默认情况下,问题匹配器是单行的,但您可以创建多行匹配器,如下所述:https://code.visualstudio.com/Docs/editor/tasks#_defining-a-multiline-problem-matcher
本质上,您提供了多个正则表达式。对于您的场景,您可以尝试以下操作:
"problemMatcher": {
"owner": "custom",
"fileLocation": ["absolute"],
"pattern": [{
"regexp": "At (.*\\.ps1):(\\d*) char:(\\d*)(.*)",
"file": 1,
"line": 2,
"column": 3
}, {
"regexp": "\\+.*"
},{
"regexp": "\\+.*"
},{
"regexp": "(.+)",
"message": 1
}]
}
第一个模式匹配第一行中的文件、行和列。第二个和第三个模式匹配接下来的两行输出,但不捕获任何值。最后一行与下一个输出行匹配并将其全部捕获为消息。
希望对您有所帮助!
关于powershell - VSCode Powershell 问题匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141596/
我是一名优秀的程序员,十分优秀!