Не могу заставить простейший сопоставитель проблем сообщить о любой проблеме
Я часами гуглил, упрощая до самого глупого проекта против кода:
И ни о какой проблеме не сообщается.
Что мне не хватает?
[Редактировать]
Как и просили в комментариях, здесь я повторяю фактическое сообщение об ошибке, скопированное с https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher:
echo helloWorld.c:5:3: предупреждение: неявное объявление функции 'printt'
Я скопировал пример сопоставления задач по той же ссылке. Все равно ничего не показывает. По какой-то причине вывод терминала имеет несколько переводов строки.
[Редактировать 2] Хорошо, благодаря помощи rioV8 и Yassin Hajaj, я разобрался. Это был разочаровывающий способ узнать, как работают средства сопоставления задач. Мое отсутствие опыта работы с регулярными выражениями не помогло.
Оказывается, по умолчанию для «оболочки» используется PowerShell, в котором есть команда echo, отображающая каждый токен в новой строке. Наконец-то я получил одну строку с некоторыми уловками:
"command": "echo \\\"dummy.cpp:5:3: warning: implicit declaration of function ‘prinft’\\\""
Также обязательными являются свойства файла, строки и сообщения.
Итак, вот рабочий пример:
{
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
// by default the command appears in the terminal so 2 lines will actually be matched
"command": "echo \\\"dummy.cpp:5:3: warning: implicit declaration of function ‘prinft’\\\"",
"problemMatcher": {
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"message": 5
}
}
}
]
}