提交 18ca3040 编写于 作者: D Dirk Baeumer

Fixes #29852: Task 2.0.0 schema polish

上级 02b9fb1f
......@@ -175,6 +175,7 @@ const schema: IJSONSchema = {
},
taskRunnerConfiguration: {
type: 'object',
required: [],
properties: {
command: {
type: 'string',
......
......@@ -145,8 +145,13 @@ const group: IJSONSchema = {
const taskType: IJSONSchema = {
type: 'string',
enum: ['shell', 'process'],
default: 'process',
description: nls.localize('JsonSchema.tasks.type', 'Defines whether the task is run as a process or as a command inside a shell. Default is process.')
default: 'shell',
description: nls.localize('JsonSchema.tasks.type', 'Defines whether the task is run as a process or as a command inside a shell.')
};
const label: IJSONSchema = {
type: 'string',
description: nls.localize('JsonSchema.tasks.label', "The task's user interface label")
};
const version: IJSONSchema = {
......@@ -224,6 +229,8 @@ taskDefinitions.push(customize);
let definitions = Objects.deepClone(commonSchema.definitions);
let taskDescription: IJSONSchema = definitions.taskDescription;
taskDescription.required = ['label', 'type'];
taskDescription.properties.label = Objects.deepClone(label);
taskDescription.properties.isShellCommand = Objects.deepClone(shellCommand);
taskDescription.properties.dependsOn = dependsOn;
taskDescription.properties.identifier = Objects.deepClone(identifier);
......@@ -231,6 +238,16 @@ taskDescription.properties.type = Objects.deepClone(taskType);
taskDescription.properties.presentation = Objects.deepClone(presentation);
taskDescription.properties.terminal = terminal;
taskDescription.properties.group = Objects.deepClone(group);
taskDescription.properties.taskName.deprecationMessage = nls.localize(
'JsonSchema.tasks.taskName.deprecated',
'The task\'s name property is deprecated. Use the label property instead.'
);
taskDescription.default = {
label: 'My Task',
type: 'shell',
command: 'echo Hello',
problemMatcher: []
};
definitions.showOutputType.deprecationMessage = nls.localize(
'JsonSchema.tasks.showOputput.deprecated',
'The property showOutput is deprecated. Use the reveal property inside the presentation property instead. See also the 1.14 release notes.'
......
......@@ -1246,6 +1246,9 @@ namespace CustomTask {
return undefined;
}
let taskName = external.taskName;
if (Types.isString(external.label) && context.schemaVersion === Tasks.JsonSchemaVersion.V2_0_0) {
taskName = external.label;
}
if (!taskName) {
context.problemReporter.error(nls.localize('ConfigurationParser.noTaskName', 'Error: tasks must provide a taskName property. The task will be ignored.\n{0}\n', JSON.stringify(external, null, 4)));
return undefined;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册