Задача в коде Visual Studio - проблема не работает
Я создал набор задач, с помощью которых я хочу скомпилировать программу, написанную на MAD Pascal (компилятор FreePascal для процессора 6502). В целом все работает, однако у меня есть проблема с обработкой «Сопоставителя проблем». Не знаю почему, не хочет обнаруживать ошибки? Признаюсь, что впервые использую задачи в VSC. Я просмотрел много разных руководств, но вроде все в порядке. Моя конфигурация "Сопоставителя проблем"
"problemMatcher": {
"source": "Pascal compiler",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": [
{
"regexp": "/^(.+)\\s\\((\\d+),(\\d+)\\):\\s(\\w+):(.+)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
]
}
Я проверил регулярное выражение на правильность ( regex101 ), и оно правильно соответствует содержимому консоли. Пример содержимого консоли:
Mad Pascal Compiler version 1.6.6 [2021/06/08] for 6502
Compiling kret.pas
kret.pas (19,5) Error: Syntax error, ';' expected but 'identifier' found
Может кто-нибудь указать мне, что я делаю не так? Где ошибка в конфигурации? Буду мега благодарен - так хочется видеть ошибки компиляции в окошке "Проблемы" :)
1 ответ
Я создал файл .bat, чтобы имитировать ваш вывод компилятора Mad Pascal следующим образом:
Содержимое «compiler_output.bat»:
@echo off
echo Mad Pascal Compiler version 1.6.6 [2021/06/08] for 6502
echo Compiling kret.pas
echo kret.pas (19,5) Error: Syntax error, ';' expected but 'identifier' found
Я создал следующий файл tasks.json в папке .vscode:
{
"version": "2.0.0",
"tasks": [
{
"label": "Mockup compile by Pascal compiler",
"type": "shell",
"command": "${workspaceFolder}/compiler_output.bat",
"args": [],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": {
"owner": "pascal",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.+)\\s\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\)\\s(\\w+):(.+)$",
"file": 1,
"location": 2,
"severity": 3,
"message": 4
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Мое дерево папок выглядит следующим образом: