Microsoft/vscode

Inconsistencies task.json vs. task.json schema

Chiusa

#243.556 aperta il 14 mar 2025

 (4 commenti) (0 reazioni) (1 assegnatario)TypeScript (39.847 fork)batch import
bughelp wantedtasks

Metriche repository

Star
 (184.936 stelle)
Metriche merge PR
 (Merge medio 11h 43m) (1000 PR mergiate in 30 g)

Descrizione

Type: Bug

When trying to validate my task.json against the task.json schema published in the Appendix I noticed some inconsistencies.

  1. beginsPattern/ endsPattern The schema defines them this way in the BackgroundMatcher interface

    beginsPattern?: string;
    endsPattern?: string;
    

    But in VS Code I can define them this way:

    "problemMatcher": {
      "base": "$tsc-watch",
      "background": {
        "activeOnStart": true,
        "beginsPattern": {
          "regexp": "(.*?)"
        },
        "endsPattern": {
          "regexp": "bundle generation complete"
        }
      }
    },
    

    So while the schema restricts the value to be string, it also accepts regexp in reality. Also IntelliSense provides this as a valid entry.

  2. Missing property "type"

    The TaskDescription interface defines the type like this

    type: 'shell' | 'process';
    

    It is therefore defined as a mandatory field. But in reality it is not. Otherwise it would not be possible to create a compound task as described in Compound Tasks

  3. Missing property "command"

    The TaskDescription interface defines the command like this

    command: string;
    

    It is therefore defined as a mandatory field. But in reality it is not. Otherwise it would not be possible to create a compound task as described in Compound Tasks

VS Code version: Code 1.98.1 (2fc07b811f760549dab9be9d2bedd06c51dfcb9a, 2025-03-10T15:38:08.854Z) OS version: Windows_NT x64 10.0.22631 Modes: Remote OS version: Linux x64 5.15.167.4-microsoft-standard-WSL2

Guida contributor