Задача в коде 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
      }
    }
  ]
}

Мое дерево папок выглядит следующим образом:

После выполнения этой задачи я получил:

Вкладка «Проблемы» выглядит так, как ожидалось:

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