gpt4 book ai didi

powershell - VSCode Powershell 问题匹配器

转载 作者:行者123 更新时间:2023-12-02 23:27:23 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com