this.outputChannel.append(nls.localize('TaskSystem.invalidTaskJson','Error: The content of the tasks.json file has syntax errors. Please correct them before executing a task.\n'));
this.outputChannel.show(true);
returnTPromise.wrapError({});
}
}
if(isAffected){
this.outputChannel.append(nls.localize('TaskSystem.invalidTaskJson','Error: The content of the tasks.json file has syntax errors. Please correct them before executing a task.\n'));
'description':nls.localize('JsonSchema.pattern.regexp','The regular expression to find an error, warning or info in the output.')
},
'additionalProperties':false,
'properties':{
'regexp':{
'type':'string',
'description':nls.localize('JsonSchema.pattern.regexp','The regular expression to find an error, warning or info in the output.')
},
'file':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.file','The match group index of the filename. If omitted 1 is used.')
},
'location':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.location','The match group index of the problem\'s location. Valid location patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn). If omitted line and column is assumed.')
},
'line':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.line','The match group index of the problem\'s line. Defaults to 2')
},
'column':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.column','The match group index of the problem\'s column. Defaults to 3')
},
'endLine':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.endLine','The match group index of the problem\'s end line. Defaults to undefined')
},
'endColumn':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.endColumn','The match group index of the problem\'s end column. Defaults to undefined')
},
'severity':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.severity','The match group index of the problem\'s severity. Defaults to undefined')
},
'code':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.code','The match group index of the problem\'s code. Defaults to undefined')
},
'message':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.message','The match group index of the message. If omitted it defaults to 4 if location is specified. Otherwise it defaults to 5.')
},
'loop':{
'type':'boolean',
'description':nls.localize('JsonSchema.pattern.loop','In a multi line matcher loop indicated whether this pattern is executed in a loop as long as it matches. Can only specified on a last pattern in a multi line pattern.')
'description':nls.localize('JsonSchema.watchingPattern.regexp','The regular expression to detect the begin or end of a watching task.')
},
'file':{
'type':'integer',
'description':nls.localize('JsonSchema.watchingPattern.file','The match group index of the filename. Can be omitted.')
},
'file':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.file','The match group index of the filename. If omitted 1 is used.')
},
'location':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.location','The match group index of the problem\'s location. Valid location patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn). If omitted line and column is assumed.')
},
'line':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.line','The match group index of the problem\'s line. Defaults to 2')
},
'column':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.column','The match group index of the problem\'s column. Defaults to 3')
},
'endLine':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.endLine','The match group index of the problem\'s end line. Defaults to undefined')
},
'endColumn':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.endColumn','The match group index of the problem\'s end column. Defaults to undefined')
},
'severity':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.severity','The match group index of the problem\'s severity. Defaults to undefined')
},
'code':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.code','The match group index of the problem\'s code. Defaults to undefined')
},
'message':{
'type':'integer',
'description':nls.localize('JsonSchema.pattern.message','The match group index of the message. If omitted it defaults to 4 if location is specified. Otherwise it defaults to 5.')
},
'loop':{
'type':'boolean',
'description':nls.localize('JsonSchema.pattern.loop','In a multi line matcher loop indicated whether this pattern is executed in a loop as long as it matches. Can only specified on a last pattern in a multi line pattern.')
'description':nls.localize('JsonSchema.problemMatcher.base','The name of a base problem matcher to use.')
},
'owner':{
'type':'string',
'description':nls.localize('JsonSchema.problemMatcher.owner','The owner of the problem inside Code. Can be omitted if base is specified. Defaults to \'external\' if omitted and base is not specified.')
},
'severity':{
'type':'string',
'enum':['error','warning','info'],
'description':nls.localize('JsonSchema.problemMatcher.severity','The default severity for captures problems. Is used if the pattern doesn\'t define a match group for severity.')
'description':nls.localize('JsonSchema.problemMatcher.applyTo','Controls if a problem reported on a text document is applied only to open, closed or all documents.')
},
'pattern':{
'$ref':'#/definitions/patternType',
'description':nls.localize('JsonSchema.problemMatcher.pattern','A problem pattern or the name of a predefined problem pattern. Can be omitted if base is specified.')
'description':nls.localize('JsonSchema.problemMatcher.fileLocation','Defines how file names reported in a problem pattern should be interpreted.')
},
'watching':{
'type':'object',
'additionalProperties':false,
'properties':{
'activeOnStart':{
'type':'boolean',
'description':nls.localize('JsonSchema.problemMatcher.watching.activeOnStart','If set to true the watcher is in active mode when the task starts. This is equals of issuing a line that matches the beginPattern')
},
'beginsPattern':{
'oneOf':[
{
'type':'string'
},
{
'type':'#/definitions/watchingPattern'
}
],
'description':nls.localize('JsonSchema.problemMatcher.watching.beginsPattern','If matched in the output the start of a watching task is signaled.')
},
'endsPattern':{
'oneOf':[
{
'type':'string'
},
{
'type':'#/definitions/watchingPattern'
}
],
'description':nls.localize('JsonSchema.problemMatcher.watching.endsPattern','If matched in the output the end of a watching task is signaled.')
'description':nls.localize('JsonSchema.problemMatcher.watchedBegin','A regular expression signaling that a watched tasks begins executing triggered through file watching.')
},
'watchedTaskEndsRegExp':{
'type':'string',
'description':nls.localize('JsonSchema.problemMatcher.watchedEnd','A regular expression signaling that a watched tasks ends executing.')
]
}
}
},
'baseTaskRunnerConfiguration':{
'type':'object',
'properties':{
'command':{
'type':'string',
'description':nls.localize('JsonSchema.command','The command to be executed. Can be an external program or a shell command.')
},
'isShellCommand':{
'type':'boolean',
'default':true,
'description':nls.localize('JsonSchema.shell','Specifies whether the command is a shell command or an external program. Defaults to false if omitted.')
},
'args':{
'type':'array',
'description':nls.localize('JsonSchema.args','Additional arguments passed to the command.'),
'items':{
'type':'string'
]
},
'watchingPattern':{
'type':'object',
'additionalProperties':false,
'properties':{
'regexp':{
'type':'string',
'description':nls.localize('JsonSchema.watchingPattern.regexp','The regular expression to detect the begin or end of a watching task.')
},
'file':{
'type':'integer',
'description':nls.localize('JsonSchema.watchingPattern.file','The match group index of the filename. Can be omitted.')
'description':nls.localize('JsonSchema.problemMatcher.base','The name of a base problem matcher to use.')
},
'owner':{
'type':'string',
'description':nls.localize('JsonSchema.problemMatcher.owner','The owner of the problem inside Code. Can be omitted if base is specified. Defaults to \'external\' if omitted and base is not specified.')
},
'severity':{
'type':'string',
'enum':['error','warning','info'],
'description':nls.localize('JsonSchema.problemMatcher.severity','The default severity for captures problems. Is used if the pattern doesn\'t define a match group for severity.')
'description':nls.localize('JsonSchema.problemMatcher.applyTo','Controls if a problem reported on a text document is applied only to open, closed or all documents.')
},
'pattern':{
'$ref':'#/definitions/patternType',
'description':nls.localize('JsonSchema.problemMatcher.pattern','A problem pattern or the name of a predefined problem pattern. Can be omitted if base is specified.')
'description':nls.localize('JsonSchema.options.cwd','The current working directory of the executed program or script. If omitted Code\'s current workspace root is used.')
},
'env':{
'type':'object',
'additionalProperties':{
],
'description':nls.localize('JsonSchema.problemMatcher.fileLocation','Defines how file names reported in a problem pattern should be interpreted.')
},
'watching':{
'type':'object',
'additionalProperties':false,
'properties':{
'activeOnStart':{
'type':'boolean',
'description':nls.localize('JsonSchema.problemMatcher.watching.activeOnStart','If set to true the watcher is in active mode when the task starts. This is equals of issuing a line that matches the beginPattern')
},
'beginsPattern':{
'oneOf':[
{
'type':'string'
},
'description':nls.localize('JsonSchema.options.env','The environment of the executed program or shell. If omitted the parent process\' environment is used.')
}
{
'type':'#/definitions/watchingPattern'
}
],
'description':nls.localize('JsonSchema.problemMatcher.watching.beginsPattern','If matched in the output the start of a watching task is signaled.')
},
'additionalProperties':{
'type':['string','array','object']
}
},
'showOutput':{
'$ref':'#/definitions/showOutputType',
'description':nls.localize('JsonSchema.showOutput','Controls whether the output of the running task is shown or not. If omitted \'always\' is used.')
},
'isWatching':{
'type':'boolean',
'description':nls.localize('JsonSchema.watching','Whether the executed task is kept alive and is watching the file system.'),
'default':true
},
'promptOnClose':{
'type':'boolean',
'description':nls.localize('JsonSchema.promptOnClose','Whether the user is prompted when VS Code closes with a running background task.'),
'default':false
},
'echoCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.echoCommand','Controls whether the executed command is echoed to the output. Default is false.'),
'default':true
},
'suppressTaskName':{
'type':'boolean',
'description':nls.localize('JsonSchema.suppressTaskName','Controls whether the task name is added as an argument to the command. Default is false.'),
'default':true
},
'taskSelector':{
'type':'string',
'description':nls.localize('JsonSchema.taskSelector','Prefix to indicate that an argument is task.')
},
'problemMatcher':{
'$ref':'#/definitions/problemMatcherType',
'description':nls.localize('JsonSchema.matchers','The problem matcher(s) to use. Can either be a string or a problem matcher definition or an array of strings and problem matchers.')
},
'tasks':{
'type':'array',
'description':nls.localize('JsonSchema.tasks','The task configurations. Usually these are enrichments of task already defined in the external task runner.'),
'items':{
'type':'object',
'$ref':'#/definitions/taskDescription'
'endsPattern':{
'oneOf':[
{
'type':'string'
},
{
'type':'#/definitions/watchingPattern'
}
],
'description':nls.localize('JsonSchema.problemMatcher.watching.endsPattern','If matched in the output the end of a watching task is signaled.')
}
}
},
'watchedTaskBeginsRegExp':{
'type':'string',
'description':nls.localize('JsonSchema.problemMatcher.watchedBegin','A regular expression signaling that a watched tasks begins executing triggered through file watching.')
},
'watchedTaskEndsRegExp':{
'type':'string',
'description':nls.localize('JsonSchema.problemMatcher.watchedEnd','A regular expression signaling that a watched tasks ends executing.')
'description':nls.localize('JsonSchema.tasks.args','Additional arguments passed to the command when this task is invoked.'),
'items':{
'type':'string'
}
},
'baseTaskRunnerConfiguration':{
'type':'object',
'properties':{
'command':{
'type':'string',
'description':nls.localize('JsonSchema.command','The command to be executed. Can be an external program or a shell command.')
},
'isShellCommand':{
'type':'boolean',
'default':true,
'description':nls.localize('JsonSchema.shell','Specifies whether the command is a shell command or an external program. Defaults to false if omitted.')
},
'args':{
'type':'array',
'description':nls.localize('JsonSchema.args','Additional arguments passed to the command.'),
'description':nls.localize('JsonSchema.options.cwd','The current working directory of the executed program or script. If omitted Code\'s current workspace root is used.')
},
'env':{
'type':'object',
'additionalProperties':{
'type':'string'
},
'description':nls.localize('JsonSchema.options.env','The environment of the executed program or shell. If omitted the parent process\' environment is used.')
}
},
'suppressTaskName':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.suppressTaskName','Controls whether the task name is added as an argument to the command. If omitted the globally defined value is used.'),
'default':true
},
'showOutput':{
'$ref':'#/definitions/showOutputType',
'description':nls.localize('JsonSchema.tasks.showOutput','Controls whether the output of the running task is shown or not. If omitted the globally defined value is used.')
},
'echoCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.echoCommand','Controls whether the executed command is echoed to the output. Default is false.'),
'default':true
},
'isWatching':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.watching','Whether the executed task is kept alive and is watching the file system.'),
'default':true
},
'isBuildCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.build','Maps this task to Code\'s default build command.'),
'default':true
},
'isTestCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.test','Maps this task to Code\'s default test command.'),
'default':true
},
'problemMatcher':{
'$ref':'#/definitions/problemMatcherType',
'description':nls.localize('JsonSchema.tasks.matchers','The problem matcher(s) to use. Can either be a string or a problem matcher definition or an array of strings and problem matchers.')
'additionalProperties':{
'type':['string','array','object']
}
},
'defaultSnippets':[
{
'label':'Empty task',
'body':{
'taskName':'{{taskName}}'
}
'showOutput':{
'$ref':'#/definitions/showOutputType',
'description':nls.localize('JsonSchema.showOutput','Controls whether the output of the running task is shown or not. If omitted \'always\' is used.')
},
'isWatching':{
'type':'boolean',
'description':nls.localize('JsonSchema.watching','Whether the executed task is kept alive and is watching the file system.'),
'default':true
},
'promptOnClose':{
'type':'boolean',
'description':nls.localize('JsonSchema.promptOnClose','Whether the user is prompted when VS Code closes with a running background task.'),
'default':false
},
'echoCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.echoCommand','Controls whether the executed command is echoed to the output. Default is false.'),
'default':true
},
'suppressTaskName':{
'type':'boolean',
'description':nls.localize('JsonSchema.suppressTaskName','Controls whether the task name is added as an argument to the command. Default is false.'),
'default':true
},
'taskSelector':{
'type':'string',
'description':nls.localize('JsonSchema.taskSelector','Prefix to indicate that an argument is task.')
},
'problemMatcher':{
'$ref':'#/definitions/problemMatcherType',
'description':nls.localize('JsonSchema.matchers','The problem matcher(s) to use. Can either be a string or a problem matcher definition or an array of strings and problem matchers.')
},
'tasks':{
'type':'array',
'description':nls.localize('JsonSchema.tasks','The task configurations. Usually these are enrichments of task already defined in the external task runner.'),
'items':{
'type':'object',
'$ref':'#/definitions/taskDescription'
}
]
}
}
},
'allOf':[
{
'type':'object',
'required':['version'],
'properties':{
'version':{
'type':'string',
'enum':['0.1.0'],
'description':nls.localize('JsonSchema.version','The config\'s version number')
'description':nls.localize('JsonSchema.tasks.args','Additional arguments passed to the command when this task is invoked.'),
'items':{
'type':'string'
}
},
'suppressTaskName':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.suppressTaskName','Controls whether the task name is added as an argument to the command. If omitted the globally defined value is used.'),
'default':true
},
'showOutput':{
'$ref':'#/definitions/showOutputType',
'description':nls.localize('JsonSchema.tasks.showOutput','Controls whether the output of the running task is shown or not. If omitted the globally defined value is used.')
},
'echoCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.echoCommand','Controls whether the executed command is echoed to the output. Default is false.'),
'default':true
},
'isWatching':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.watching','Whether the executed task is kept alive and is watching the file system.'),
'default':true
},
'isBuildCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.build','Maps this task to Code\'s default build command.'),
'default':true
},
'isTestCommand':{
'type':'boolean',
'description':nls.localize('JsonSchema.tasks.test','Maps this task to Code\'s default test command.'),
'default':true
},
'problemMatcher':{
'$ref':'#/definitions/problemMatcherType',
'description':nls.localize('JsonSchema.tasks.matchers','The problem matcher(s) to use. Can either be a string or a problem matcher definition or an array of strings and problem matchers.')