Task in visual studio code -problem matches not work

452 Views Asked by At

I created a set of tasks with which I want to compile a program written in MAD Pascal (FreePascal compiler for 6502 processor) Generally everything works, however I have a problem with the "Problem matcher" handling. I do not know why, it does not want to detect errors? I admit, that I use tasks in VSC for the first time. I have looked through many different tutorials, however everything seems to be OK. My "Problem Matcher" configuration

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

I tested the regular expression for correctness ( regex101 ) and it correctly matches the content from the console. Example of console content:

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

Can someone please point out to me what I am doing wrong? Where is the error in the configuration? I will be mega grateful - I so much want to see compilation errors in the "Problems" window :)

1

There are 1 best solutions below

3
On BEST ANSWER

I have created a .bat file to mock your Mad Pascal Compiler output as follows:
Content of "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

I have created following tasks.json file in .vscode folder:

{
  "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
      }
    }
  ]
}

My folder tree looks as follows:
enter image description here

After running this task I got:
enter image description here

Problems tab looks as expected:
enter image description here