У меня есть куча настраиваемых задач сборки в VS Code, и мне нужен настраиваемый сопоставитель проблем для задач C ++.
Поэтому я решил взять пример сопоставления задач по умолчанию в документах VS Code ( https://code.visualstudio.com/Docs/editor/tasks#_defining -a-problem-matcher ) и немного изменил его.
"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
}
},
Есть идеи?