首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vscode自定义任务问题匹配器找不到与regex匹配的文本

vscode自定义任务问题匹配器找不到与regex匹配的文本
EN

Stack Overflow用户
提问于 2020-07-28 07:07:40
回答 1查看 407关注 0票数 0

下面是我在.vscode目录中的整个tasks.json文件

代码语言:javascript
复制
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "make",
            "type": "shell",
            "command": "make",
            "args": [
                "all"
            ],
            "group": "build",
            "presentation": {
                "reveal": "always",
                "echo": true,
                "showReuseMessage": false,
                "clear": true
            },
            "problemMatcher": [
                {
                    "owner": "ld65-a",
                    "fileLocation": [
                        "relative",
                        "${workspaceFolder}"
                    ],
                    "severity": "error",
                    "pattern": {
                        "regexp": "^(Unresolved external)\\s+'(.*)'.*:\\s+(.*)\\((\\d.*)\\)$",
                        "file": 3,
                        "line": 4,
                        "message": 1,
                        "code": 2
                    }
                },
                {
                    "owner": "ld65-b",
                    "fileLocation": [
                        "relative",
                        "${workspaceFolder}"
                    ],
                    "pattern": {
                        "regexp": "^ld65:\\s+(warning|error|Warning|Error):(.*)\\((\\d.*)\\):\\s+(.*)$",
                        "file": 2,
                        "line": 3,
                        "severity": 1,
                        "message": 4
                    }
                },
                {
                    "owner": "ld65-c",
                    "fileLocation": "autoDetect",
                    "pattern": {
                        "regexp": "^ld65:\\s+(warning|error|Warning|Error): (\\d+.*)$",
                        "kind": "file",
                        "severity": 1,
                        "message": 2
                    }
                },
                {
                    "owner": "cc65",
                    "fileLocation": [
                        "relative",
                        "${workspaceFolder}"
                    ],
                    "pattern": {
                        "regexp": "^(.*)\\((\\d.*)\\):\\s+(warning|error|Warning|Error):\\s+(.*)$",
                        "file": 1,
                        "line": 2,
                        "severity": 3,
                        "message": 4
                    }
                }
            ]
        },
        {
            "label": "clean",
            "type": "shell",
            "command": "make",
            "args": [
                "clean"
            ],
            "group": "build",
            "presentation": {
                "reveal": "always",
                "echo": true,
                "showReuseMessage": false,
                "clear": true
            }
        }
    ]
}

下面是我正在处理的文本输出的结尾:

代码语言:javascript
复制
cl65 -C src/cmn-src-atarixl-xex.cfg --start-addr 0x4000 -Ln build/bin/cfgame.lbl --ld-args --dbgfile,build/bin/cfgame.dbg --mapfile build/bin/cfgame.map -o build/bin/cfgame.xex build/cf_fileUtils.o build/cf_font.o build/cf_mapEditor.o build/cf_pixmapViewer.o build/cf_tileMap.o build/cf_types.o build/cf_utils.o build/gr7utils.o build/gr12utils.o build/main.o build/pmg.o build/splash.o C:/cc65/lib/atarixl.lib
ld65: Warning: atari/crt0.s(207): 'lowcode area' reaches into $4000..$7FFF bank memory window
Unresolved external '_displaySplashExit' referenced in:
  src/main.s(97)
Unresolved external '_selectAppSplash' referenced in:
  src/main.s(71)
ld65: Error: 2 unresolved external(s) found - cannot create output file
make: *** [makefile:95: cfgame] Error 1
The terminal process "C:\Program Files\Git\bin\bash.exe '-c', 'make all'" terminated with exit code: 2.

检测到的问题出现得更早,但它也找到了找到的2个未解析的外部文本。但是,它在输出中找不到与未解析的外部文本相关的特定信息。我在相同的输出上使用regex101.com测试了我的regex。我已经尝试了一些变体-主要是在定义问题匹配器的json中的一些差异。

目标是将未解决的外部项作为引用实际符号名称的单个问题列出。

我已经阅读了其他相关的帖子和答案,并尝试了不同的方法,因此"owner“参数被设置为字符串'ld65-a‘等。

我还尝试更改了定义问题匹配器的顺序,将未解析的外部匹配器移到数组中的第一项-这似乎并不重要。

我意识到还有其他方法来运行make任务,但我需要与gnu make集成,这似乎是一种合理的方法。也许在这方面有一个更好的想法--例如,在我的vscode工作区上运行gnu make。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 11:04:33

Unresolved匹配器是一个多行问题匹配器

代码语言:javascript
复制
        {
          "owner": "ld65-a",
          "fileLocation": ["relative", "${workspaceFolder}"
          ],
          "severity": "error",
          "pattern": [
            {
              "regexp": "^(Unresolved external)\\s+'([^']+)'.*:$",
              "message": 1,
              "code": 2
            },
            {
              "regexp": "^\\s+(.*)\\((\\d+)\\)$",
              "file": 1,
              "line": 2
            }
          ]
        },
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63124878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档