@theia/task 1.65.0-next.6 → 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/lib/browser/quick-open-task.d.ts +4 -3
  2. package/lib/browser/quick-open-task.d.ts.map +1 -1
  3. package/lib/browser/quick-open-task.js +36 -24
  4. package/lib/browser/quick-open-task.js.map +1 -1
  5. package/lib/browser/task-configuration-manager.d.ts +5 -7
  6. package/lib/browser/task-configuration-manager.d.ts.map +1 -1
  7. package/lib/browser/task-configuration-manager.js +18 -29
  8. package/lib/browser/task-configuration-manager.js.map +1 -1
  9. package/lib/browser/task-configuration-model.d.ts +5 -4
  10. package/lib/browser/task-configuration-model.d.ts.map +1 -1
  11. package/lib/browser/task-configuration-model.js +16 -13
  12. package/lib/browser/task-configuration-model.js.map +1 -1
  13. package/lib/browser/task-frontend-module.js +1 -1
  14. package/lib/browser/task-frontend-module.js.map +1 -1
  15. package/lib/browser/task-problem-matcher-registry.d.ts.map +1 -1
  16. package/lib/browser/task-problem-matcher-registry.js +8 -8
  17. package/lib/browser/task-problem-matcher-registry.js.map +1 -1
  18. package/lib/browser/task-schema-updater.d.ts +0 -1
  19. package/lib/browser/task-schema-updater.d.ts.map +1 -1
  20. package/lib/browser/task-schema-updater.js +87 -88
  21. package/lib/browser/task-schema-updater.js.map +1 -1
  22. package/lib/browser/task-service.d.ts.map +1 -1
  23. package/lib/browser/task-service.js +20 -21
  24. package/lib/browser/task-service.js.map +1 -1
  25. package/lib/browser/task-templates.d.ts.map +1 -1
  26. package/lib/browser/task-templates.js +5 -4
  27. package/lib/browser/task-templates.js.map +1 -1
  28. package/lib/browser/task-terminal-widget-manager.d.ts.map +1 -1
  29. package/lib/browser/task-terminal-widget-manager.js +3 -2
  30. package/lib/browser/task-terminal-widget-manager.js.map +1 -1
  31. package/lib/common/task-preferences.d.ts +6 -0
  32. package/lib/common/task-preferences.d.ts.map +1 -0
  33. package/lib/{browser → common}/task-preferences.js +9 -9
  34. package/lib/common/task-preferences.js.map +1 -0
  35. package/lib/node/task-backend-module.d.ts.map +1 -1
  36. package/lib/node/task-backend-module.js +2 -0
  37. package/lib/node/task-backend-module.js.map +1 -1
  38. package/lib/node/task-server.slow-spec.js +7 -3
  39. package/lib/node/task-server.slow-spec.js.map +1 -1
  40. package/package.json +13 -13
  41. package/src/browser/quick-open-task.ts +35 -24
  42. package/src/browser/task-configuration-manager.ts +15 -20
  43. package/src/browser/task-configuration-model.ts +18 -15
  44. package/src/browser/task-frontend-module.ts +1 -1
  45. package/src/browser/task-problem-matcher-registry.ts +9 -9
  46. package/src/browser/task-schema-updater.ts +91 -87
  47. package/src/browser/task-service.ts +21 -22
  48. package/src/browser/task-templates.ts +5 -4
  49. package/src/browser/task-terminal-widget-manager.ts +3 -2
  50. package/src/{browser → common}/task-preferences.ts +7 -6
  51. package/src/node/task-backend-module.ts +2 -0
  52. package/src/node/task-server.slow-spec.ts +8 -3
  53. package/lib/browser/task-preferences.d.ts +0 -5
  54. package/lib/browser/task-preferences.d.ts.map +0 -1
  55. package/lib/browser/task-preferences.js.map +0 -1
@@ -24,7 +24,7 @@ import * as Ajv from '@theia/core/shared/ajv';
24
24
  import debounce = require('p-debounce');
25
25
  import { postConstruct, injectable, inject } from '@theia/core/shared/inversify';
26
26
  import { JsonSchemaContribution, JsonSchemaDataStore, JsonSchemaRegisterContext } from '@theia/core/lib/browser/json-schema-store';
27
- import { deepClone, Emitter } from '@theia/core/lib/common';
27
+ import { deepClone, Emitter, nls } from '@theia/core/lib/common';
28
28
  import { IJSONSchema } from '@theia/core/lib/common/json-schema';
29
29
  import { inputsSchema } from '@theia/variable-resolver/lib/browser/variable-input-schema';
30
30
  import URI from '@theia/core/lib/common/uri';
@@ -34,8 +34,7 @@ import { TaskServer, asVariableName } from '../common';
34
34
  import { UserStorageUri } from '@theia/userstorage/lib/browser';
35
35
  import { WorkspaceService } from '@theia/workspace/lib/browser';
36
36
  import { JSONObject } from '@theia/core/shared/@lumino/coreutils';
37
-
38
- export const taskSchemaId = 'vscode://schemas/tasks';
37
+ import { taskSchemaId } from '../common/task-preferences';
39
38
 
40
39
  @injectable()
41
40
  export class TaskSchemaUpdater implements JsonSchemaContribution {
@@ -161,7 +160,7 @@ export class TaskSchemaUpdater implements JsonSchemaContribution {
161
160
  ...defaultTaskType,
162
161
  enum: [def.taskType],
163
162
  default: def.taskType,
164
- description: 'The task type to customize'
163
+ description: nls.localizeByDefault('The task type to customize')
165
164
  };
166
165
  customizedDetectedTask.properties!.type = taskType;
167
166
  const required = def.properties.required || [];
@@ -190,13 +189,15 @@ export class TaskSchemaUpdater implements JsonSchemaContribution {
190
189
  properties: {
191
190
  version: {
192
191
  type: 'string',
193
- default: '2.0.0'
192
+ default: '2.0.0',
193
+ description: nls.localizeByDefault("The config's version number.")
194
194
  },
195
195
  tasks: {
196
196
  type: 'array',
197
197
  items: {
198
198
  ...deepClone(taskConfigurationSchema)
199
- }
199
+ },
200
+ description: nls.localizeByDefault('The task configurations. Usually these are enrichments of task already defined in the external task runner.')
200
201
  },
201
202
  inputs: inputsSchema.definitions!.inputs
202
203
  },
@@ -222,12 +223,12 @@ export class TaskSchemaUpdater implements JsonSchemaContribution {
222
223
 
223
224
  const commandSchema: IJSONSchema = {
224
225
  type: 'string',
225
- description: 'The actual command or script to execute'
226
+ description: nls.localizeByDefault('The command to be executed. Can be an external program or a shell command.')
226
227
  };
227
228
 
228
229
  const commandArgSchema: IJSONSchema = {
229
230
  type: 'array',
230
- description: 'A list of strings, each one being one argument to pass to the command',
231
+ description: nls.localizeByDefault('Arguments passed to the command when this task is invoked.'),
231
232
  items: {
232
233
  type: 'string'
233
234
  }
@@ -235,29 +236,29 @@ const commandArgSchema: IJSONSchema = {
235
236
 
236
237
  const commandOptionsSchema: IJSONSchema = {
237
238
  type: 'object',
238
- description: 'The command options used when the command is executed',
239
+ description: nls.localizeByDefault('Additional command options'),
239
240
  properties: {
240
241
  cwd: {
241
242
  type: 'string',
242
- description: 'The directory in which the command will be executed',
243
+ description: nls.localize('theia/task/schema/commandOptions/cwd',
244
+ "The current working directory of the executed program or script. If omitted Theia's current workspace root is used."),
243
245
  default: '${workspaceFolder}'
244
246
  },
245
247
  env: {
246
248
  type: 'object',
247
- description: 'The environment of the executed program or shell. If omitted the parent process\' environment is used'
249
+ description: nls.localizeByDefault("The environment of the executed program or shell. If omitted the parent process' environment is used.")
248
250
  },
249
251
  shell: {
250
252
  type: 'object',
251
- description: 'Configuration of the shell when task type is `shell`',
253
+ description: nls.localizeByDefault('Configures the shell to be used.'),
252
254
  properties: {
253
255
  executable: {
254
256
  type: 'string',
255
- description: 'The shell to use'
257
+ description: nls.localizeByDefault('The shell to be used.')
256
258
  },
257
259
  args: {
258
260
  type: 'array',
259
- description: `The arguments to be passed to the shell executable to run in command mode
260
- (e.g ['-c'] for bash or ['/S', '/C'] for cmd.exe)`,
261
+ description: nls.localizeByDefault('The shell arguments.'),
261
262
  items: {
262
263
  type: 'string'
263
264
  }
@@ -272,13 +273,13 @@ const defaultTaskTypes = ['shell', 'process'];
272
273
  const supportedTaskTypes = [...defaultTaskTypes];
273
274
  const taskLabel: IJSONSchema = {
274
275
  type: 'string',
275
- description: 'A unique string that identifies the task that is also used as task\'s user interface label'
276
+ description: nls.localizeByDefault("The task's user interface label")
276
277
  };
277
278
  const defaultTaskType: IJSONSchema = {
278
279
  type: 'string',
279
280
  enum: supportedTaskTypes,
280
281
  default: defaultTaskTypes[0],
281
- description: 'Determines what type of process will be used to execute the task. Only shell types will have output shown on the user interface'
282
+ description: nls.localizeByDefault('Defines whether the task is run as a process or as a command inside a shell.')
282
283
  } as const;
283
284
  const commandAndArgs = {
284
285
  command: commandSchema,
@@ -292,9 +293,9 @@ const group: IJSONSchema = {
292
293
  type: 'string',
293
294
  enum: ['build', 'test', 'none'],
294
295
  enumDescriptions: [
295
- 'Marks the task as a build task accessible through the \'Run Build Task\' command.',
296
- 'Marks the task as a test task accessible through the \'Run Test Task\' command.',
297
- 'Assigns the task to no group'
296
+ nls.localizeByDefault("Marks the task as a build task accessible through the 'Run Build Task' command."),
297
+ nls.localizeByDefault("Marks the task as a test task accessible through the 'Run Test Task' command."),
298
+ nls.localizeByDefault('Assigns the task to no group')
298
299
  ]
299
300
  },
300
301
  {
@@ -303,24 +304,24 @@ const group: IJSONSchema = {
303
304
  kind: {
304
305
  type: 'string',
305
306
  default: 'none',
306
- description: 'The task\'s execution group.',
307
+ description: nls.localizeByDefault("The task's execution group."),
307
308
  enum: ['build', 'test', 'none'],
308
309
  enumDescriptions: [
309
- 'Marks the task as a build task accessible through the \'Run Build Task\' command.',
310
- 'Marks the task as a test task accessible through the \'Run Test Task\' command.',
311
- 'Assigns the task to no group'
310
+ nls.localizeByDefault("Marks the task as a build task accessible through the 'Run Build Task' command."),
311
+ nls.localizeByDefault("Marks the task as a test task accessible through the 'Run Test Task' command."),
312
+ nls.localizeByDefault('Assigns the task to no group')
312
313
  ]
313
314
  },
314
315
  isDefault: {
315
316
  type: 'boolean',
316
317
  default: false,
317
- description: 'Defines if this task is the default task in the group.'
318
+ description: nls.localizeByDefault('Defines if this task is the default task in the group, or a glob to match the file which should trigger this task.')
318
319
  }
319
320
  }
320
321
  }
321
322
  ],
322
- // eslint-disable-next-line max-len
323
- description: 'Defines to which execution group this task belongs to. It supports "build" to add it to the build group and "test" to add it to the test group.'
323
+ description: nls.localizeByDefault(
324
+ 'Defines to which execution group this task belongs to. It supports "build" to add it to the build group and "test" to add it to the test group.')
324
325
  };
325
326
 
326
327
  const problemPattern: IJSONSchema = {
@@ -334,53 +335,53 @@ const problemPattern: IJSONSchema = {
334
335
  properties: {
335
336
  regexp: {
336
337
  type: 'string',
337
- description: 'The regular expression to find an error, warning or info in the output.'
338
+ description: nls.localizeByDefault('The regular expression to find an error, warning or info in the output.')
338
339
  },
339
340
  kind: {
340
341
  type: 'string',
341
- description: 'whether the pattern matches a location (file and line) or only a file.'
342
+ description: nls.localizeByDefault('whether the pattern matches a location (file and line) or only a file.')
342
343
  },
343
344
  file: {
344
345
  type: 'integer',
345
- description: 'The match group index of the filename. If omitted 1 is used.'
346
+ description: nls.localizeByDefault('The match group index of the filename. If omitted 1 is used.')
346
347
  },
347
348
  location: {
348
349
  type: 'integer',
349
350
  // eslint-disable-next-line max-len
350
- description: 'The match group index of the problem\'s location. Valid location patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn). If omitted (line,column) is assumed.'
351
+ description: nls.localizeByDefault("The match group index of the problem's location. Valid location patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn). If omitted (line,column) is assumed.")
351
352
  },
352
353
  line: {
353
354
  type: 'integer',
354
- description: 'The match group index of the problem\'s line. Defaults to 2'
355
+ description: nls.localizeByDefault("The match group index of the problem's line. Defaults to 2")
355
356
  },
356
357
  column: {
357
358
  type: 'integer',
358
- description: 'The match group index of the problem\'s line character. Defaults to 3'
359
+ description: nls.localizeByDefault("The match group index of the problem's line character. Defaults to 3")
359
360
  },
360
361
  endLine: {
361
362
  type: 'integer',
362
- description: 'The match group index of the problem\'s end line. Defaults to undefined'
363
+ description: nls.localizeByDefault("The match group index of the problem's end line. Defaults to undefined")
363
364
  },
364
365
  endColumn: {
365
366
  type: 'integer',
366
- description: 'The match group index of the problem\'s end line character. Defaults to undefined'
367
+ description: nls.localizeByDefault("The match group index of the problem's end line character. Defaults to undefined")
367
368
  },
368
369
  severity: {
369
370
  type: 'integer',
370
- description: 'The match group index of the problem\'s severity. Defaults to undefined'
371
+ description: nls.localizeByDefault("The match group index of the problem's severity. Defaults to undefined")
371
372
  },
372
373
  code: {
373
374
  type: 'integer',
374
- description: 'The match group index of the problem\'s code. Defaults to undefined'
375
+ description: nls.localizeByDefault("The match group index of the problem's code. Defaults to undefined")
375
376
  },
376
377
  message: {
377
378
  type: 'integer',
378
- description: 'The match group index of the message. If omitted it defaults to 4 if location is specified. Otherwise it defaults to 5.'
379
+ description: nls.localizeByDefault('The match group index of the message. If omitted it defaults to 4 if location is specified. Otherwise it defaults to 5.')
379
380
  },
380
381
  loop: {
381
382
  type: 'boolean',
382
383
  // eslint-disable-next-line max-len
383
- description: '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.'
384
+ description: nls.localizeByDefault('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.')
384
385
  }
385
386
  }
386
387
  };
@@ -396,11 +397,11 @@ const watchingPattern: IJSONSchema = {
396
397
  properties: {
397
398
  regexp: {
398
399
  type: 'string',
399
- description: 'The regular expression to detect the begin or end of a background task.'
400
+ description: nls.localizeByDefault('The regular expression to detect the begin or end of a background task.')
400
401
  },
401
402
  file: {
402
403
  type: 'integer',
403
- description: 'The match group index of the filename. Can be omitted.'
404
+ description: nls.localizeByDefault('The match group index of the filename. Can be omitted.')
404
405
  },
405
406
  }
406
407
  };
@@ -409,12 +410,12 @@ const patternType: IJSONSchema = {
409
410
  anyOf: [
410
411
  {
411
412
  type: 'string',
412
- description: 'The name of a contributed or predefined pattern'
413
+ description: nls.localizeByDefault('The name of a contributed or predefined pattern')
413
414
  },
414
415
  problemPattern,
415
416
  multiLineProblemPattern
416
417
  ],
417
- description: 'A problem pattern or the name of a contributed or predefined problem pattern. Can be omitted if base is specified.'
418
+ description: nls.localizeByDefault('A problem pattern or the name of a contributed or predefined problem pattern. Can be omitted if base is specified.')
418
419
  };
419
420
 
420
421
  const problemMatcherObject: IJSONSchema = {
@@ -423,25 +424,26 @@ const problemMatcherObject: IJSONSchema = {
423
424
  base: {
424
425
  type: 'string',
425
426
  enum: problemMatcherNames,
426
- description: 'The name of a base problem matcher to use.'
427
+ description: nls.localizeByDefault('The name of a base problem matcher to use.')
427
428
  },
428
429
  owner: {
429
430
  type: 'string',
430
- description: 'The owner of the problem inside Code. Can be omitted if base is specified. Defaults to \'external\' if omitted and base is not specified.'
431
+ description: nls.localize('theia/task/schema/problemMatcherObject/owner',
432
+ "The owner of the problem inside Theia. Can be omitted if base is specified. Defaults to 'external' if omitted and base is not specified.")
431
433
  },
432
434
  source: {
433
435
  type: 'string',
434
- description: 'A human-readable string describing the source of this diagnostic, e.g. \'typescript\' or \'super lint\'.'
436
+ description: nls.localizeByDefault("A human-readable string describing the source of this diagnostic, e.g. 'typescript' or 'super lint'.")
435
437
  },
436
438
  severity: {
437
439
  type: 'string',
438
440
  enum: ['error', 'warning', 'info'],
439
- description: 'The default severity for captures problems. Is used if the pattern doesn\'t define a match group for severity.'
441
+ description: nls.localizeByDefault("The default severity for captures problems. Is used if the pattern doesn't define a match group for severity.")
440
442
  },
441
443
  applyTo: {
442
444
  type: 'string',
443
445
  enum: ['allDocuments', 'openDocuments', 'closedDocuments'],
444
- description: 'Controls if a problem reported on a text document is applied only to open, closed or all documents.'
446
+ description: nls.localizeByDefault('Controls if a problem reported on a text document is applied only to open, closed or all documents.')
445
447
  },
446
448
  pattern: patternType,
447
449
  fileLocation: {
@@ -457,16 +459,18 @@ const problemMatcherObject: IJSONSchema = {
457
459
  }
458
460
  }
459
461
  ],
460
- description: 'Defines how file names reported in a problem pattern should be interpreted.'
462
+ // eslint-disable-next-line max-len
463
+ description: nls.localizeByDefault('Defines how file names reported in a problem pattern should be interpreted. A relative fileLocation may be an array, where the second element of the array is the path of the relative file location. The search fileLocation mode, performs a deep (and, possibly, heavy) file system search within the directories specified by the include/exclude properties of the second element (or the current workspace directory if not specified).')
461
464
  },
462
465
  background: {
463
466
  type: 'object',
464
467
  additionalProperties: false,
465
- description: 'Patterns to track the begin and end of a matcher active on a background task.',
468
+ description: nls.localizeByDefault('Patterns to track the begin and end of a matcher active on a background task.'),
466
469
  properties: {
467
470
  activeOnStart: {
468
471
  type: 'boolean',
469
- description: 'If set to true the background monitor is in active mode when the task starts. This is equals of issuing a line that matches the beginsPattern'
472
+ description: nls.localizeByDefault(
473
+ 'If set to true the background monitor starts in active mode. This is the same as outputting a line that matches beginsPattern when the task starts.')
470
474
  },
471
475
  beginsPattern: {
472
476
  oneOf: [
@@ -475,7 +479,7 @@ const problemMatcherObject: IJSONSchema = {
475
479
  },
476
480
  watchingPattern
477
481
  ],
478
- description: 'If matched in the output the start of a background task is signaled.'
482
+ description: nls.localizeByDefault('If matched in the output the start of a background task is signaled.')
479
483
  },
480
484
  endsPattern: {
481
485
  oneOf: [
@@ -484,19 +488,20 @@ const problemMatcherObject: IJSONSchema = {
484
488
  },
485
489
  watchingPattern
486
490
  ],
487
- description: 'If matched in the output the end of a background task is signaled.'
491
+ description: nls.localizeByDefault('If matched in the output the end of a background task is signaled.')
488
492
  }
489
493
  }
490
494
  },
491
495
  watching: {
492
496
  type: 'object',
493
497
  additionalProperties: false,
494
- deprecationMessage: 'The watching property is deprecated. Use background instead.',
495
- description: 'Patterns to track the begin and end of a watching matcher.',
498
+ deprecationMessage: nls.localizeByDefault('The watching property is deprecated. Use background instead.'),
499
+ description: nls.localizeByDefault('Patterns to track the begin and end of a watching matcher.'),
496
500
  properties: {
497
501
  activeOnStart: {
498
502
  type: 'boolean',
499
- description: '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'
503
+ description: nls.localizeByDefault(
504
+ 'If set to true the watcher starts in active mode. This is the same as outputting a line that matches beginsPattern when the task starts.')
500
505
  },
501
506
  beginsPattern: {
502
507
  oneOf: [
@@ -505,7 +510,7 @@ const problemMatcherObject: IJSONSchema = {
505
510
  },
506
511
  watchingPattern
507
512
  ],
508
- description: 'If matched in the output the start of a watching task is signaled.'
513
+ description: nls.localizeByDefault('If matched in the output the start of a watching task is signaled.')
509
514
  },
510
515
  endsPattern: {
511
516
  oneOf: [
@@ -514,7 +519,7 @@ const problemMatcherObject: IJSONSchema = {
514
519
  },
515
520
  watchingPattern
516
521
  ],
517
- description: 'If matched in the output the end of a watching task is signaled.'
522
+ description: nls.localizeByDefault('If matched in the output the end of a watching task is signaled.')
518
523
  }
519
524
  }
520
525
  }
@@ -525,12 +530,10 @@ const problemMatcher: IJSONSchema = {
525
530
  anyOf: [
526
531
  {
527
532
  type: 'string',
528
- description: 'Name of the problem matcher to parse the output of the task',
529
533
  enum: problemMatcherNames
530
534
  },
531
535
  {
532
536
  type: 'array',
533
- description: 'Name(s) of the problem matcher(s) to parse the output of the task',
534
537
  items: {
535
538
  type: 'string',
536
539
  enum: problemMatcherNames
@@ -539,10 +542,10 @@ const problemMatcher: IJSONSchema = {
539
542
  problemMatcherObject,
540
543
  {
541
544
  type: 'array',
542
- description: 'User defined problem matcher(s) to parse the output of the task',
543
545
  items: problemMatcherObject
544
546
  }
545
- ]
547
+ ],
548
+ description: nls.localizeByDefault('The problem matcher(s) to use. Can either be a string or a problem matcher definition or an array of strings and problem matchers.')
546
549
  };
547
550
 
548
551
  const presentation: IJSONSchema = {
@@ -555,58 +558,59 @@ const presentation: IJSONSchema = {
555
558
  showReuseMessage: true,
556
559
  clear: false
557
560
  },
558
- description: 'Configures the panel that is used to present the task\'s output and reads its input.',
561
+ description: nls.localizeByDefault("Configures the panel that is used to present the task's output and reads its input."),
559
562
  additionalProperties: true,
560
563
  properties: {
561
564
  echo: {
562
565
  type: 'boolean',
563
566
  default: true,
564
- description: 'Controls whether the executed command is echoed to the panel. Default is true.'
567
+ description: nls.localizeByDefault('Controls whether the executed command is echoed to the panel. Default is true.')
565
568
  },
566
569
  focus: {
567
570
  type: 'boolean',
568
571
  default: false,
569
- description: 'Controls whether the panel takes focus. Default is false. If set to true the panel is revealed as well.'
572
+ description: nls.localizeByDefault('Controls whether the panel takes focus. Default is false. If set to true the panel is revealed as well.')
570
573
  },
571
574
  reveal: {
572
575
  type: 'string',
573
576
  enum: ['always', 'silent', 'never'],
574
577
  enumDescriptions: [
575
- 'Always reveals the terminal when this task is executed.',
576
- 'Only reveals the terminal if the task exits with an error or the problem matcher finds an error.',
577
- 'Never reveals the terminal when this task is executed.'
578
+ nls.localizeByDefault('Always reveals the terminal when this task is executed.'),
579
+ nls.localizeByDefault('Only reveals the terminal if the task exits with an error or the problem matcher finds an error.'),
580
+ nls.localizeByDefault('Never reveals the terminal when this task is executed.')
578
581
  ],
579
582
  default: 'always',
580
- description: 'Controls whether the terminal running the task is revealed or not. May be overridden by option \"revealProblems\". Default is \"always\".'
583
+ description: nls.localizeByDefault(
584
+ 'Controls whether the terminal running the task is revealed or not. May be overridden by option "revealProblems". Default is "always".')
581
585
  },
582
586
  panel: {
583
587
  type: 'string',
584
588
  enum: ['shared', 'dedicated', 'new'],
585
589
  enumDescriptions: [
586
- 'The terminal is shared and the output of other task runs are added to the same terminal.',
590
+ nls.localize('theia/task/schema/presentation/panel/shared', 'The terminal is shared and the output of other task runs are added to the same terminal.'),
587
591
  // eslint-disable-next-line max-len
588
- 'The terminal is dedicated to a specific task. If that task is executed again, the terminal is reused. However, the output of a different task is presented in a different terminal.',
589
- 'Every execution of that task is using a new clean terminal.'
592
+ nls.localize('theia/task/schema/presentation/panel/dedicated', 'The terminal is dedicated to a specific task. If that task is executed again, the terminal is reused. However, the output of a different task is presented in a different terminal.'),
593
+ nls.localize('theia/task/schema/presentation/panel/new', 'Every execution of that task is using a new clean terminal.')
590
594
  ],
591
595
  default: 'shared',
592
- description: 'Controls if the panel is shared between tasks, dedicated to this task or a new one is created on every run.'
596
+ description: nls.localizeByDefault('Controls if the panel is shared between tasks, dedicated to this task or a new one is created on every run.')
593
597
  },
594
598
  showReuseMessage: {
595
599
  type: 'boolean',
596
600
  default: true,
597
- description: 'Controls whether to show the "Terminal will be reused by tasks" message.'
601
+ description: nls.localize('theia/task/schema/presentation/showReuseMessage', 'Controls whether to show the "Terminal will be reused by tasks" message.')
598
602
  },
599
603
  clear: {
600
604
  type: 'boolean',
601
605
  default: false,
602
- description: 'Controls whether the terminal is cleared before this task is run.'
606
+ description: nls.localizeByDefault('Controls whether the terminal is cleared before executing the task.')
603
607
  }
604
608
  }
605
609
  };
606
610
 
607
611
  const detail: IJSONSchema = {
608
612
  type: 'string',
609
- description: 'An optional description of a task that shows in the Run Task quick pick as a detail.'
613
+ description: nls.localizeByDefault('An optional description of a task that shows in the Run Task quick pick as a detail.')
610
614
  };
611
615
 
612
616
  const taskIdentifier: IJSONSchema = {
@@ -615,7 +619,7 @@ const taskIdentifier: IJSONSchema = {
615
619
  properties: {
616
620
  type: {
617
621
  type: 'string',
618
- description: 'The task identifier.'
622
+ description: nls.localizeByDefault('The task identifier.')
619
623
  }
620
624
  }
621
625
  };
@@ -630,18 +634,18 @@ const processTaskConfigurationSchema: IJSONSchema = {
630
634
  isBackground: {
631
635
  type: 'boolean',
632
636
  default: false,
633
- description: 'Whether the executed task is kept alive and is running in the background.'
637
+ description: nls.localizeByDefault('Whether the executed task is kept alive and is running in the background.')
634
638
  },
635
639
  dependsOn: {
636
640
  anyOf: [
637
641
  {
638
642
  type: 'string',
639
- description: 'Another task this task depends on.'
643
+ description: nls.localizeByDefault('Another task this task depends on.')
640
644
  },
641
645
  taskIdentifier,
642
646
  {
643
647
  type: 'array',
644
- description: 'The other tasks this task depends on.',
648
+ description: nls.localizeByDefault('The other tasks this task depends on.'),
645
649
  items: {
646
650
  anyOf: [
647
651
  {
@@ -652,31 +656,31 @@ const processTaskConfigurationSchema: IJSONSchema = {
652
656
  }
653
657
  }
654
658
  ],
655
- description: 'Either a string representing another task or an array of other tasks that this task depends on.'
659
+ description: nls.localizeByDefault('Either a string representing another task or an array of other tasks that this task depends on.')
656
660
  },
657
661
  dependsOrder: {
658
662
  type: 'string',
659
663
  enum: ['parallel', 'sequence'],
660
664
  enumDescriptions: [
661
- 'Run all dependsOn tasks in parallel.',
662
- 'Run all dependsOn tasks in sequence.'
665
+ nls.localizeByDefault('Run all dependsOn tasks in parallel.'),
666
+ nls.localizeByDefault('Run all dependsOn tasks in sequence.')
663
667
  ],
664
668
  default: 'parallel',
665
- description: 'Determines the order of the dependsOn tasks for this task. Note that this property is not recursive.'
669
+ description: nls.localizeByDefault('Determines the order of the dependsOn tasks for this task. Note that this property is not recursive.')
666
670
  },
667
671
  windows: {
668
672
  type: 'object',
669
- description: 'Windows specific command configuration that overrides the command, args, and options',
673
+ description: nls.localizeByDefault('Windows specific command configuration'),
670
674
  properties: commandAndArgs
671
675
  },
672
676
  osx: {
673
677
  type: 'object',
674
- description: 'MacOS specific command configuration that overrides the command, args, and options',
678
+ description: nls.localizeByDefault('Mac specific command configuration'),
675
679
  properties: commandAndArgs
676
680
  },
677
681
  linux: {
678
682
  type: 'object',
679
- description: 'Linux specific command configuration that overrides the default command, args, and options',
683
+ description: nls.localizeByDefault('Linux specific command configuration'),
680
684
  properties: commandAndArgs
681
685
  },
682
686
  group,