Пользовательские сопоставители проблем C++ в VS Code не выделяют пути к файлам

У меня есть куча настраиваемых задач сборки в VS Code, и мне нужен настраиваемый сопоставитель задач для задач C++.

Поэтому я решил взять пример сопоставления проблем по умолчанию в документации VS Code (https://code.visualstudio.com/Docs/editor/tasks) и немного изменил его.

"problemMatcher": {
        "fileLocation": ["relative", "${workspaceFolder}"],
        "pattern": {
          "regexp": "^(\\.\\.\\/+)(.*):(\\d+):(\\d+):\\s+(.*):\\s+(.*)$",
          "file": 2,
          "line": 3,
          "column": 4,
          "severity": 5,
          "message": 6
        }

Мои сообщения об ошибках имеют следующую структуру:

../../../module/src/module/specific/File.cpp:155:31: error: errorMessage

Три инструкции по открытию каталога (../../../) верни меня в ${workspaceFolder}. Таким образом, идея заключалась в том, чтобы использовать вторую группу захвата в качестве относительного пути от папки моей рабочей области для отслеживания файла.

К сожалению, путь к файлу не выделяется и не говорит мне, что я нажимаю Ctrl+ щелчок, чтобы следовать сообщению. Я дважды проверил регулярное выражение на https://regexr.com/, и оно кажется правильным. Я тоже попытался использовать сопоставитель проблем по умолчанию, но безуспешно.

Это полная задача сборки:

{
      "label": "build_c++",
      "type": "shell",
      "command": "${workspaceFolder}/build_command",
      "problemMatcher": [ {
        "fileLocation": ["relative", "${workspaceFolder}"],
        "pattern": {
          "regexp": "^(\\.\\.\\/+)(.*):(\\d+):(\\d+):\\s+(.*):\\s+(.*)$",
          "file": 2,
          "line": 3,
          "column": 4,
          "severity": 5,
          "message": 6
        }
      }],
      "group": {
        "kind": "build",
        "isDefault": true 
      }
},

Есть идеи?

0 ответов

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