Сопоставители задач VS Code: как извлечь несколько задач из одной строки? (Компоновщик GNU)

Компоновщик GNU выдает сообщения об ошибках в этом стиле:

       _Boot/Debug/libs\Common.a(oled.o):V:\OneDrive\Emb\App_M2S_S32G/Common/src/oled.c:40: multiple definition of `time'; _Boot/Debug/libs\Boot.a(bootloader.o):V:\OneDrive\Emb\App_M2S_S32G/Boot/src/bootloader.c:27: first defined here

Я хочу создать две проблемы из этой единственной строки для двух файлов и номеров строк, упомянутых в сообщении, чтобы я мог щелкнуть их обе и перейти к ошибочным строкам (oled.c:40 и bootloader.c:27) . Можно создавать шаблоны для компилятора и для обеих частей сообщения компоновщика:

          "problemMatcher": [
        // Compiler
        {
            "base": "$gcc",
            "fileLocation": [
                "autodetect",
                "${workspaceFolder}"
            ]
        },
        // Linker 1
        {
            "source": "ld",
            "pattern": {
                "regexp": "^.+; .*(.:.+):([0-9]+): (.+)",
                "file": 1,
                "line": 2,
                "message": 3
            },
            "fileLocation": [
                "autodetect",
                "${workspaceFolder}"
            ]
        },
        // Linker 2
        {
            "source": "ld",
            "pattern": {
                "regexp": "^.+; .*(.:.+):([0-9]+): (.+)",
                "file": 1,
                "line": 2,
                "message": 3
            },
            "fileLocation": [
                "autodetect",
                "${workspaceFolder}"
            ]
        }
    ],

Это не работает, потому что, если шаблон компоновщика 1 соответствует шаблону, компоновщик 2 вообще не выполняется. Если я скопирую регулярное выражение из линкера 2 в линкер 1, вторая часть сообщения будет проанализирована правильно. Можно ли каким-то образом указать Code, чтобы он всегда пытался сопоставить все шаблоны, даже если предыдущий уже совпадал? Или каким-либо другим способом создать несколько проблем из одной строки сообщения?

0 ответов

Другие вопросы по тегам