{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/task.json","$comment":"Generated with typescript-json-schema on March 24, 2023 from https://code.visualstudio.com/docs/editor/tasks-appendix","definitions":{"BackgroundMatcher":{"description":"A description to track the start and end of a background task.","properties":{"activeOnStart":{"description":"If set to true the watcher is in active mode when the task\nstarts. This is equals of issuing a line that matches the\nbeginPattern.","type":"boolean"},"beginsPattern":{"description":"If matched in the output the start of a background task is signaled.","type":"string"},"endsPattern":{"description":"If matched in the output the end of a background task is signaled.","type":"string"}},"type":"object"},"BaseTaskConfiguration":{"properties":{"args":{"description":"The arguments passed to the command. Can be omitted.","items":{"type":"string"},"type":"array"},"command":{"description":"The command to be executed. Can be an external program or a shell\ncommand.","type":"string"},"isBackground":{"description":"Specifies whether a global command is a background task.","type":"boolean"},"options":{"$ref":"#/definitions/CommandOptions","description":"The command options used when the command is executed. Can be omitted."},"presentation":{"$ref":"#/definitions/PresentationOptions","description":"The presentation options."},"problemMatcher":{"anyOf":[{"$ref":"#/definitions/ProblemMatcher"},{"items":{"anyOf":[{"$ref":"#/definitions/ProblemMatcher"},{"type":"string"}]},"type":"array"},{"type":"string"}],"description":"The problem matcher to be used if a global command is executed (e.g. no tasks\nare defined). A tasks.json file can either contain a global problemMatcher\nproperty or a tasks property but not both."},"tasks":{"description":"The configuration of the available tasks. A tasks.json file can either\ncontain a global problemMatcher property or a tasks property but not both.","items":{"$ref":"#/definitions/TaskDescription"},"type":"array"},"type":{"description":"The type of a custom task. Tasks of type \"shell\" are executed\ninside a shell (e.g. bash, cmd, powershell, ...)","enum":["process","shell","npm"],"type":"string"}},"type":"object"},"CommandOptions":{"description":"Options to be passed to the external program or shell","properties":{"cwd":{"description":"The current working directory of the executed program or shell.\nIf omitted the current workspace's root is used.","type":"string"},"env":{"additionalProperties":{"type":"string"},"description":"The environment of the executed program or shell. If omitted\nthe parent process' environment is used.","type":"object"},"shell":{"description":"Configuration of the shell when task type is `shell`","properties":{"args":{"description":"The arguments to be passed to the shell executable to run in command mode\n(e.g ['-c'] for bash or ['/S', '/C'] for cmd.exe).","items":{"type":"string"},"type":"array"},"executable":{"description":"The shell to use.","type":"string"}},"type":"object"}},"type":"object"},"PresentationOptions":{"properties":{"clear":{"description":"Controls whether the terminal is cleared before this task is run.\nDefaults to `false`.","type":"boolean"},"echo":{"description":"Controls whether the command associated with the task is echoed\nin the user interface. Defaults to `true`.","type":"boolean"},"focus":{"description":"Controls whether the panel showing the task output is taking focus.\nDefaults to `false`.","type":"boolean"},"group":{"description":"Controls whether the task is executed in a specific terminal\ngroup using split panes. Tasks in the same group (specified by a string value)\nwill use split terminals to present instead of a new terminal panel.","type":"string"},"panel":{"description":"Controls if the task panel is used for this task only (dedicated),\nshared between tasks (shared) or if a new panel is created on\nevery task execution (new). Defaults to `shared`.","enum":["dedicated","new","shared"],"type":"string"},"reveal":{"description":"Controls whether the task output is reveal in the user interface.\nDefaults to `always`.","enum":["always","never","silent"],"type":"string"},"showReuseMessage":{"description":"Controls whether to show the `Terminal will be reused by tasks,\npress any key to close it` message.","type":"boolean"}},"type":"object"},"ProblemMatcher":{"description":"A description of a problem matcher that detects problems\nin build output.","properties":{"background":{"$ref":"#/definitions/BackgroundMatcher","description":"Additional information used to detect when a background task (like a watching task in Gulp)\nis active."},"base":{"description":"The name of a base problem matcher to use. If specified the\nbase problem matcher will be used as a template and properties\nspecified here will replace properties of the base problem\nmatcher","type":"string"},"fileLocation":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}],"description":"Defines how filename reported in a problem pattern\nshould be read. Valid values are:\n - \"absolute\": the filename is always treated absolute.\n - \"relative\": the filename is always treated relative to\n   the current working directory. This is the default.\n - [\"relative\", \"path value\"]: the filename is always\n   treated relative to the given path value.\n - \"autodetect\": the filename is treated relative to\n   the current workspace directory, and if the file\n   does not exist, it is treated as absolute.\n - [\"autodetect\", \"path value\"]: the filename is treated\n   relative to the given path value, and if it does not\n   exist, it is treated as absolute."},"owner":{"description":"The owner of the produced VS Code problem. This is typically\nthe identifier of a VS Code language service if the problems are\nto be merged with the one produced by the language service\nor 'external'. Defaults to 'external' if omitted.","type":"string"},"pattern":{"anyOf":[{"$ref":"#/definitions/ProblemPattern"},{"items":{"$ref":"#/definitions/ProblemPattern"},"type":"array"},{"type":"string"}],"description":"The name of a predefined problem pattern, the inline definition\nof a problem pattern or an array of problem patterns to match\nproblems spread over multiple lines."},"severity":{"description":"The severity of the VS Code problem produced by this problem matcher.\n\nValid values are:\n  \"error\": to produce errors.\n  \"warning\": to produce warnings.\n  \"info\": to produce infos.\n\nThe value is used if a pattern doesn't specify a severity match group.\nDefaults to \"error\" if omitted.","type":"string"}},"type":"object"},"ProblemPattern":{"properties":{"code":{"description":"The match group index of the problem's code.\n\nDefaults to undefined. No code is captured.","type":"number"},"column":{"description":"The match group index of the problem's column in the source file.","type":"number"},"endColumn":{"description":"The match group index of the problem's end column in the source file.\n\nDefaults to undefined. No end column is captured.","type":"number"},"endLine":{"description":"The match group index of the problem's end line in the source file.\n\nDefaults to undefined. No end line is captured.","type":"number"},"file":{"description":"The match group index of the filename.","type":"number"},"kind":{"description":"Whether the pattern matches a problem for the whole file or for a location\ninside a file.\n\nDefaults to \"location\".","enum":["file","location"],"type":"string"},"line":{"description":"The match group index of the problem's line in the source file.\nCan only be omitted if location is specified.","type":"number"},"location":{"description":"The match group index of the problem's location. Valid location\npatterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn).\nIf omitted the line and column properties are used.","type":"number"},"loop":{"description":"Specifies if the last pattern in a multi line problem matcher should\nloop as long as it does match a line consequently. Only valid on the\nlast problem pattern in a multi line problem matcher.","type":"boolean"},"message":{"description":"The match group index of the message. Defaults to 0.","type":"number"},"regexp":{"description":"The regular expression to find a problem in the console output of an\nexecuted task.","type":"string"},"severity":{"description":"The match group index of the problem's severity.\n\nDefaults to undefined. In this case the problem matcher's severity\nis used.","type":"number"}},"type":"object"},"RunOptions":{"description":"A description to when and how run a task.","properties":{"reevaluateOnRerun":{"description":"Controls how variables are evaluated when a task is executed through\nthe Rerun Last Task command.\nThe default is `true`, meaning that variables will be re-evaluated when\na task is rerun. When set to `false`, the resolved variable values from\nthe previous run of the task will be used.","type":"boolean"},"runOn":{"description":"Specifies when a task is run.\n\nValid values are:\n  \"default\": The task will only be run when executed through the Run Task command.\n  \"folderOpen\": The task will be run when the containing folder is opened.","type":"string"}},"type":"object"},"TaskDescription":{"description":"The description of a task.","properties":{"args":{"description":"Additional arguments passed to the command. Should be used if type\nis \"process\".","items":{"type":"string"},"type":"array"},"command":{"description":"The command to execute. If the type is \"shell\" it should be the full\ncommand line including any additional arguments passed to the command.","type":"string"},"group":{"anyOf":[{"properties":{"isDefault":{"type":"boolean"},"kind":{"enum":["build","test"],"type":"string"}},"type":"object"},{"enum":["build","test"],"type":"string"}],"description":"Defines the group to which this task belongs. Also supports to mark\na task as the default task in a group."},"isBackground":{"description":"Whether the executed command is kept alive and runs in the background.","type":"boolean"},"label":{"description":"The task's name","type":"string"},"presentation":{"$ref":"#/definitions/PresentationOptions","description":"The presentation options."},"problemMatcher":{"anyOf":[{"$ref":"#/definitions/ProblemMatcher"},{"items":{"anyOf":[{"$ref":"#/definitions/ProblemMatcher"},{"type":"string"}]},"type":"array"},{"type":"string"}],"description":"The problem matcher(s) to use to capture problems in the tasks\noutput."},"runOptions":{"$ref":"#/definitions/RunOptions","description":"Defines when and how a task is run."},"type":{"description":"The type of a custom task. Tasks of type \"shell\" are executed\ninside a shell (e.g. bash, cmd, powershell, ...)","enum":["process","shell","npm"],"type":"string"}},"type":"object"}},"properties":{"args":{"description":"The arguments passed to the command. Can be omitted.","items":{"type":"string"},"type":"array"},"command":{"description":"The command to be executed. Can be an external program or a shell\ncommand.","type":"string"},"isBackground":{"description":"Specifies whether a global command is a background task.","type":"boolean"},"linux":{"$ref":"#/definitions/BaseTaskConfiguration","description":"Linux specific task configuration"},"options":{"$ref":"#/definitions/CommandOptions","description":"The command options used when the command is executed. Can be omitted."},"osx":{"$ref":"#/definitions/BaseTaskConfiguration","description":"macOS specific task configuration"},"presentation":{"$ref":"#/definitions/PresentationOptions","description":"The presentation options."},"problemMatcher":{"anyOf":[{"$ref":"#/definitions/ProblemMatcher"},{"items":{"anyOf":[{"$ref":"#/definitions/ProblemMatcher"},{"type":"string"}]},"type":"array"},{"type":"string"}],"description":"The problem matcher to be used if a global command is executed (e.g. no tasks\nare defined). A tasks.json file can either contain a global problemMatcher\nproperty or a tasks property but not both."},"tasks":{"description":"The configuration of the available tasks. A tasks.json file can either\ncontain a global problemMatcher property or a tasks property but not both.","items":{"$ref":"#/definitions/TaskDescription"},"type":"array"},"type":{"description":"The type of a custom task. Tasks of type \"shell\" are executed\ninside a shell (e.g. bash, cmd, powershell, ...)","enum":["process","shell","npm"],"type":"string"},"version":{"description":"The configuration's version number","enum":["2.0.0"],"type":"string"},"windows":{"$ref":"#/definitions/BaseTaskConfiguration","description":"Windows specific task configuration"}},"type":"object"}