@theia/task 1.67.0-next.56 → 1.67.0-next.86

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 (229) hide show
  1. package/lib/browser/index.d.ts +7 -0
  2. package/lib/browser/index.d.ts.map +1 -0
  3. package/lib/browser/index.js +25 -0
  4. package/lib/browser/index.js.map +1 -0
  5. package/lib/browser/process/process-task-contribution.d.ts +7 -0
  6. package/lib/browser/process/process-task-contribution.d.ts.map +1 -0
  7. package/lib/browser/process/process-task-contribution.js +36 -0
  8. package/lib/browser/process/process-task-contribution.js.map +1 -0
  9. package/lib/browser/process/process-task-frontend-module.d.ts +3 -0
  10. package/lib/browser/process/process-task-frontend-module.d.ts.map +1 -0
  11. package/lib/browser/process/process-task-frontend-module.js +28 -0
  12. package/lib/browser/process/process-task-frontend-module.js.map +1 -0
  13. package/lib/browser/process/process-task-resolver.d.ts +18 -0
  14. package/lib/browser/process/process-task-resolver.d.ts.map +1 -0
  15. package/lib/browser/process/process-task-resolver.js +94 -0
  16. package/lib/browser/process/process-task-resolver.js.map +1 -0
  17. package/lib/browser/provided-task-configurations.d.ts +44 -0
  18. package/lib/browser/provided-task-configurations.d.ts.map +1 -0
  19. package/lib/browser/provided-task-configurations.js +206 -0
  20. package/lib/browser/provided-task-configurations.js.map +1 -0
  21. package/lib/browser/provided-task-configurations.spec.d.ts +2 -0
  22. package/lib/browser/provided-task-configurations.spec.d.ts.map +1 -0
  23. package/lib/browser/provided-task-configurations.spec.js +44 -0
  24. package/lib/browser/provided-task-configurations.spec.js.map +1 -0
  25. package/lib/browser/quick-open-task.d.ts +146 -0
  26. package/lib/browser/quick-open-task.d.ts.map +1 -0
  27. package/lib/browser/quick-open-task.js +757 -0
  28. package/lib/browser/quick-open-task.js.map +1 -0
  29. package/lib/browser/task-configuration-manager.d.ts +63 -0
  30. package/lib/browser/task-configuration-manager.d.ts.map +1 -0
  31. package/lib/browser/task-configuration-manager.js +243 -0
  32. package/lib/browser/task-configuration-manager.js.map +1 -0
  33. package/lib/browser/task-configuration-model.d.ts +34 -0
  34. package/lib/browser/task-configuration-model.d.ts.map +1 -0
  35. package/lib/browser/task-configuration-model.js +83 -0
  36. package/lib/browser/task-configuration-model.js.map +1 -0
  37. package/lib/browser/task-configurations.d.ts +128 -0
  38. package/lib/browser/task-configurations.d.ts.map +1 -0
  39. package/lib/browser/task-configurations.js +479 -0
  40. package/lib/browser/task-configurations.js.map +1 -0
  41. package/lib/browser/task-context-key-service.d.ts +18 -0
  42. package/lib/browser/task-context-key-service.d.ts.map +1 -0
  43. package/lib/browser/task-context-key-service.js +72 -0
  44. package/lib/browser/task-context-key-service.js.map +1 -0
  45. package/lib/browser/task-contribution.d.ts +183 -0
  46. package/lib/browser/task-contribution.d.ts.map +1 -0
  47. package/lib/browser/task-contribution.js +199 -0
  48. package/lib/browser/task-contribution.js.map +1 -0
  49. package/lib/browser/task-definition-registry.d.ts +39 -0
  50. package/lib/browser/task-definition-registry.d.ts.map +1 -0
  51. package/lib/browser/task-definition-registry.js +130 -0
  52. package/lib/browser/task-definition-registry.js.map +1 -0
  53. package/lib/browser/task-definition-registry.spec.d.ts +2 -0
  54. package/lib/browser/task-definition-registry.spec.d.ts.map +1 -0
  55. package/lib/browser/task-definition-registry.spec.js +171 -0
  56. package/lib/browser/task-definition-registry.spec.js.map +1 -0
  57. package/lib/browser/task-frontend-contribution.d.ts +57 -0
  58. package/lib/browser/task-frontend-contribution.d.ts.map +1 -0
  59. package/lib/browser/task-frontend-contribution.js +351 -0
  60. package/lib/browser/task-frontend-contribution.js.map +1 -0
  61. package/lib/browser/task-frontend-module.d.ts +6 -0
  62. package/lib/browser/task-frontend-module.d.ts.map +1 -0
  63. package/lib/browser/task-frontend-module.js +82 -0
  64. package/lib/browser/task-frontend-module.js.map +1 -0
  65. package/lib/browser/task-name-resolver.d.ts +14 -0
  66. package/lib/browser/task-name-resolver.d.ts.map +1 -0
  67. package/lib/browser/task-name-resolver.js +60 -0
  68. package/lib/browser/task-name-resolver.js.map +1 -0
  69. package/lib/browser/task-node.d.ts +10 -0
  70. package/lib/browser/task-node.d.ts.map +1 -0
  71. package/lib/browser/task-node.js +18 -0
  72. package/lib/browser/task-node.js.map +1 -0
  73. package/lib/browser/task-problem-matcher-registry.d.ts +41 -0
  74. package/lib/browser/task-problem-matcher-registry.d.ts.map +1 -0
  75. package/lib/browser/task-problem-matcher-registry.js +302 -0
  76. package/lib/browser/task-problem-matcher-registry.js.map +1 -0
  77. package/lib/browser/task-problem-pattern-registry.d.ts +24 -0
  78. package/lib/browser/task-problem-pattern-registry.d.ts.map +1 -0
  79. package/lib/browser/task-problem-pattern-registry.js +203 -0
  80. package/lib/browser/task-problem-pattern-registry.js.map +1 -0
  81. package/lib/browser/task-schema-updater.d.ts +58 -0
  82. package/lib/browser/task-schema-updater.d.ts.map +1 -0
  83. package/lib/browser/task-schema-updater.js +676 -0
  84. package/lib/browser/task-schema-updater.js.map +1 -0
  85. package/lib/browser/task-service.d.ts +282 -0
  86. package/lib/browser/task-service.d.ts.map +1 -0
  87. package/lib/browser/task-service.js +1116 -0
  88. package/lib/browser/task-service.js.map +1 -0
  89. package/lib/browser/task-source-resolver.d.ts +10 -0
  90. package/lib/browser/task-source-resolver.d.ts.map +1 -0
  91. package/lib/browser/task-source-resolver.js +44 -0
  92. package/lib/browser/task-source-resolver.js.map +1 -0
  93. package/lib/browser/task-templates.d.ts +14 -0
  94. package/lib/browser/task-templates.d.ts.map +1 -0
  95. package/lib/browser/task-templates.js +158 -0
  96. package/lib/browser/task-templates.js.map +1 -0
  97. package/lib/browser/task-terminal-widget-manager.d.ts +45 -0
  98. package/lib/browser/task-terminal-widget-manager.d.ts.map +1 -0
  99. package/lib/browser/task-terminal-widget-manager.js +222 -0
  100. package/lib/browser/task-terminal-widget-manager.js.map +1 -0
  101. package/lib/browser/tasks-monaco-contribution.d.ts +2 -0
  102. package/lib/browser/tasks-monaco-contribution.d.ts.map +1 -0
  103. package/lib/browser/tasks-monaco-contribution.js +28 -0
  104. package/lib/browser/tasks-monaco-contribution.js.map +1 -0
  105. package/lib/common/index.d.ts +5 -0
  106. package/lib/common/index.d.ts.map +1 -0
  107. package/lib/common/index.js +23 -0
  108. package/lib/common/index.js.map +1 -0
  109. package/lib/common/problem-matcher-protocol.d.ts +125 -0
  110. package/lib/common/problem-matcher-protocol.d.ts.map +1 -0
  111. package/lib/common/problem-matcher-protocol.js +133 -0
  112. package/lib/common/problem-matcher-protocol.js.map +1 -0
  113. package/lib/common/process/task-protocol.d.ts +69 -0
  114. package/lib/common/process/task-protocol.d.ts.map +1 -0
  115. package/lib/common/process/task-protocol.js +34 -0
  116. package/lib/common/process/task-protocol.js.map +1 -0
  117. package/lib/common/task-common-module.d.ts +8 -0
  118. package/lib/common/task-common-module.d.ts.map +1 -0
  119. package/lib/common/task-common-module.js +29 -0
  120. package/lib/common/task-common-module.js.map +1 -0
  121. package/lib/common/task-preferences.d.ts +6 -0
  122. package/lib/common/task-preferences.d.ts.map +1 -0
  123. package/lib/common/task-preferences.js +41 -0
  124. package/lib/common/task-preferences.js.map +1 -0
  125. package/lib/common/task-protocol.d.ts +194 -0
  126. package/lib/common/task-protocol.d.ts.map +1 -0
  127. package/lib/common/task-protocol.js +138 -0
  128. package/lib/common/task-protocol.js.map +1 -0
  129. package/lib/common/task-util.d.ts +23 -0
  130. package/lib/common/task-util.d.ts.map +1 -0
  131. package/lib/common/task-util.js +47 -0
  132. package/lib/common/task-util.js.map +1 -0
  133. package/lib/common/task-watcher.d.ts +18 -0
  134. package/lib/common/task-watcher.d.ts.map +1 -0
  135. package/lib/common/task-watcher.js +82 -0
  136. package/lib/common/task-watcher.js.map +1 -0
  137. package/lib/node/custom/custom-task-runner-backend-module.d.ts +3 -0
  138. package/lib/node/custom/custom-task-runner-backend-module.d.ts.map +1 -0
  139. package/lib/node/custom/custom-task-runner-backend-module.js +37 -0
  140. package/lib/node/custom/custom-task-runner-backend-module.js.map +1 -0
  141. package/lib/node/custom/custom-task-runner-contribution.d.ts +7 -0
  142. package/lib/node/custom/custom-task-runner-contribution.d.ts.map +1 -0
  143. package/lib/node/custom/custom-task-runner-contribution.js +35 -0
  144. package/lib/node/custom/custom-task-runner-contribution.js.map +1 -0
  145. package/lib/node/custom/custom-task-runner.d.ts +16 -0
  146. package/lib/node/custom/custom-task-runner.d.ts.map +1 -0
  147. package/lib/node/custom/custom-task-runner.js +62 -0
  148. package/lib/node/custom/custom-task-runner.js.map +1 -0
  149. package/lib/node/custom/custom-task.d.ts +21 -0
  150. package/lib/node/custom/custom-task.d.ts.map +1 -0
  151. package/lib/node/custom/custom-task.js +68 -0
  152. package/lib/node/custom/custom-task.js.map +1 -0
  153. package/lib/node/index.d.ts +4 -0
  154. package/lib/node/index.d.ts.map +1 -0
  155. package/lib/node/index.js +22 -0
  156. package/lib/node/index.js.map +1 -0
  157. package/lib/node/process/process-task-runner-backend-module.d.ts +3 -0
  158. package/lib/node/process/process-task-runner-backend-module.d.ts.map +1 -0
  159. package/lib/node/process/process-task-runner-backend-module.js +37 -0
  160. package/lib/node/process/process-task-runner-backend-module.js.map +1 -0
  161. package/lib/node/process/process-task-runner-contribution.d.ts +7 -0
  162. package/lib/node/process/process-task-runner-contribution.d.ts.map +1 -0
  163. package/lib/node/process/process-task-runner-contribution.js +36 -0
  164. package/lib/node/process/process-task-runner-contribution.js.map +1 -0
  165. package/lib/node/process/process-task-runner.d.ts +61 -0
  166. package/lib/node/process/process-task-runner.d.ts.map +1 -0
  167. package/lib/node/process/process-task-runner.js +348 -0
  168. package/lib/node/process/process-task-runner.js.map +1 -0
  169. package/lib/node/process/process-task.d.ts +27 -0
  170. package/lib/node/process/process-task.d.ts.map +1 -0
  171. package/lib/node/process/process-task.js +125 -0
  172. package/lib/node/process/process-task.js.map +1 -0
  173. package/lib/node/process/process-task.spec.d.ts +2 -0
  174. package/lib/node/process/process-task.spec.d.ts.map +1 -0
  175. package/lib/node/process/process-task.spec.js +30 -0
  176. package/lib/node/process/process-task.spec.js.map +1 -0
  177. package/lib/node/task-abstract-line-matcher.d.ts +50 -0
  178. package/lib/node/task-abstract-line-matcher.d.ts.map +1 -0
  179. package/lib/node/task-abstract-line-matcher.js +274 -0
  180. package/lib/node/task-abstract-line-matcher.js.map +1 -0
  181. package/lib/node/task-backend-application-contribution.d.ts +9 -0
  182. package/lib/node/task-backend-application-contribution.d.ts.map +1 -0
  183. package/lib/node/task-backend-application-contribution.js +41 -0
  184. package/lib/node/task-backend-application-contribution.js.map +1 -0
  185. package/lib/node/task-backend-module.d.ts +4 -0
  186. package/lib/node/task-backend-module.d.ts.map +1 -0
  187. package/lib/node/task-backend-module.js +53 -0
  188. package/lib/node/task-backend-module.js.map +1 -0
  189. package/lib/node/task-line-matchers.d.ts +28 -0
  190. package/lib/node/task-line-matchers.d.ts.map +1 -0
  191. package/lib/node/task-line-matchers.js +122 -0
  192. package/lib/node/task-line-matchers.js.map +1 -0
  193. package/lib/node/task-manager.d.ts +56 -0
  194. package/lib/node/task-manager.d.ts.map +1 -0
  195. package/lib/node/task-manager.js +125 -0
  196. package/lib/node/task-manager.js.map +1 -0
  197. package/lib/node/task-problem-collector.d.ts +11 -0
  198. package/lib/node/task-problem-collector.d.ts.map +1 -0
  199. package/lib/node/task-problem-collector.js +58 -0
  200. package/lib/node/task-problem-collector.js.map +1 -0
  201. package/lib/node/task-problem-collector.spec.d.ts +2 -0
  202. package/lib/node/task-problem-collector.spec.d.ts.map +1 -0
  203. package/lib/node/task-problem-collector.spec.js +311 -0
  204. package/lib/node/task-problem-collector.spec.js.map +1 -0
  205. package/lib/node/task-runner-protocol.d.ts +17 -0
  206. package/lib/node/task-runner-protocol.d.ts.map +1 -0
  207. package/lib/node/task-runner-protocol.js +20 -0
  208. package/lib/node/task-runner-protocol.js.map +1 -0
  209. package/lib/node/task-runner.d.ts +51 -0
  210. package/lib/node/task-runner.d.ts.map +1 -0
  211. package/lib/node/task-runner.js +90 -0
  212. package/lib/node/task-runner.js.map +1 -0
  213. package/lib/node/task-server.d.ts +40 -0
  214. package/lib/node/task-server.d.ts.map +1 -0
  215. package/lib/node/task-server.js +232 -0
  216. package/lib/node/task-server.js.map +1 -0
  217. package/lib/node/task-server.slow-spec.d.ts +2 -0
  218. package/lib/node/task-server.slow-spec.d.ts.map +1 -0
  219. package/lib/node/task-server.slow-spec.js +395 -0
  220. package/lib/node/task-server.slow-spec.js.map +1 -0
  221. package/lib/node/task.d.ts +51 -0
  222. package/lib/node/task.d.ts.map +1 -0
  223. package/lib/node/task.js +73 -0
  224. package/lib/node/task.js.map +1 -0
  225. package/lib/node/test/task-test-container.d.ts +3 -0
  226. package/lib/node/test/task-test-container.d.ts.map +1 -0
  227. package/lib/node/test/task-test-container.js +59 -0
  228. package/lib/node/test/task-test-container.js.map +1 -0
  229. package/package.json +12 -12
@@ -0,0 +1,757 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2017 Ericsson and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var QuickOpenTask_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.TaskRestartRunningQuickOpen = exports.RunningTaskQuickOpenItem = exports.TaskRunningQuickOpen = exports.TaskTerminateQuickOpen = exports.TaskConfigureQuickOpenItem = exports.ConfigureBuildOrTestTaskQuickOpenItem = exports.TaskRunQuickOpenItem = exports.QuickOpenTask = exports.SHOW_ALL = exports.NO_TASKS_FOUND = exports.NO_TASK_TO_RUN = exports.CONFIGURE_A_TASK = exports.CHOOSE_TASK = exports.TaskEntry = exports.ConfigureTaskAction = void 0;
20
+ const tslib_1 = require("tslib");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const task_service_1 = require("./task-service");
23
+ const task_protocol_1 = require("../common/task-protocol");
24
+ const task_definition_registry_1 = require("./task-definition-registry");
25
+ const uri_1 = require("@theia/core/lib/common/uri");
26
+ const browser_1 = require("@theia/core/lib/browser");
27
+ const browser_2 = require("@theia/workspace/lib/browser");
28
+ const terminal_service_1 = require("@theia/terminal/lib/browser/base/terminal-service");
29
+ const provided_task_configurations_1 = require("./provided-task-configurations");
30
+ const task_name_resolver_1 = require("./task-name-resolver");
31
+ const task_source_resolver_1 = require("./task-source-resolver");
32
+ const task_configuration_manager_1 = require("./task-configuration-manager");
33
+ const quick_input_service_1 = require("@theia/core/lib/browser/quick-input/quick-input-service");
34
+ const common_1 = require("@theia/core/lib/common");
35
+ const nls_1 = require("@theia/core/lib/common/nls");
36
+ const pickerQuickAccess_1 = require("@theia/monaco-editor-core/esm/vs/platform/quickinput/browser/pickerQuickAccess");
37
+ var ConfigureTaskAction;
38
+ (function (ConfigureTaskAction) {
39
+ ConfigureTaskAction.ID = 'workbench.action.tasks.configureTaskRunner';
40
+ ConfigureTaskAction.TEXT = nls_1.nls.localizeByDefault('Configure Task');
41
+ })(ConfigureTaskAction || (exports.ConfigureTaskAction = ConfigureTaskAction = {}));
42
+ var TaskEntry;
43
+ (function (TaskEntry) {
44
+ function isQuickPickValue(item) {
45
+ return 'value' in item && typeof item.value === 'string';
46
+ }
47
+ TaskEntry.isQuickPickValue = isQuickPickValue;
48
+ })(TaskEntry || (exports.TaskEntry = TaskEntry = {}));
49
+ exports.CHOOSE_TASK = nls_1.nls.localizeByDefault('Select the task to run');
50
+ exports.CONFIGURE_A_TASK = nls_1.nls.localizeByDefault('Configure a Task');
51
+ exports.NO_TASK_TO_RUN = nls_1.nls.localize('theia/task/noTaskToRun', 'No task to run found. Configure Tasks...');
52
+ exports.NO_TASKS_FOUND = nls_1.nls.localize('theia/task/noTasksFound', 'No tasks found');
53
+ exports.SHOW_ALL = nls_1.nls.localizeByDefault('Show All Tasks...');
54
+ let QuickOpenTask = QuickOpenTask_1 = class QuickOpenTask {
55
+ constructor() {
56
+ this.description = nls_1.nls.localizeByDefault('Run Task');
57
+ this.items = [];
58
+ }
59
+ init() {
60
+ return this.doInit(this.taskService.startUserAction());
61
+ }
62
+ async doInit(token) {
63
+ const recentTasks = this.taskService.recentTasks;
64
+ const configuredTasks = await this.taskService.getConfiguredTasks(token);
65
+ const providedTypes = this.taskDefinitionRegistry.getAll();
66
+ const { filteredRecentTasks, filteredConfiguredTasks } = this.getFilteredTasks(recentTasks, configuredTasks, []);
67
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
68
+ this.items = [];
69
+ const filteredRecentTasksItems = this.getItems(filteredRecentTasks, nls_1.nls.localizeByDefault('recently used tasks'), token, isMulti);
70
+ const filteredConfiguredTasksItems = this.getItems(filteredConfiguredTasks, nls_1.nls.localizeByDefault('configured tasks'), token, isMulti, {
71
+ label: `$(plus) ${exports.CONFIGURE_A_TASK}`,
72
+ execute: () => this.configure()
73
+ });
74
+ const providedTypeItems = this.createProvidedTypeItems(providedTypes);
75
+ this.items.push(...filteredRecentTasksItems, ...filteredConfiguredTasksItems, ...providedTypeItems);
76
+ if (!this.items.length) {
77
+ this.items.push(({
78
+ label: exports.NO_TASK_TO_RUN,
79
+ execute: () => this.configure()
80
+ }));
81
+ }
82
+ }
83
+ createProvidedTypeItems(providedTypes) {
84
+ const result = [];
85
+ result.push({ type: 'separator', label: nls_1.nls.localizeByDefault('contributed') });
86
+ providedTypes.sort((t1, t2) => t1.taskType.localeCompare(t2.taskType));
87
+ for (const definition of providedTypes) {
88
+ const type = definition.taskType;
89
+ result.push(this.toProvidedTaskTypeEntry(type, `$(folder) ${type}`));
90
+ }
91
+ result.push(this.toProvidedTaskTypeEntry(exports.SHOW_ALL, exports.SHOW_ALL));
92
+ return result;
93
+ }
94
+ toProvidedTaskTypeEntry(type, label) {
95
+ return {
96
+ label,
97
+ value: type,
98
+ /**
99
+ * This function is used in the context of a QuickAccessProvider (triggered from the command palette: '?task').
100
+ * It triggers a call to QuickOpenTask#getPicks,
101
+ * the 'execute' function below is called when the user selects an entry for a task type which triggers the display of
102
+ * the second level quick pick.
103
+ *
104
+ * Due to the asynchronous resolution of second-level tasks, there may be a delay in showing the quick input widget.
105
+ *
106
+ * NOTE: The widget is not delayed in other contexts e.g. by commands (Run Tasks), see the implementation at QuickOpenTask#open
107
+ *
108
+ * To improve the performance, we may consider using a `PickerQuickAccessProvider` instead of a `QuickAccessProvider`,
109
+ * and support providing 'FastAndSlowPicks'.
110
+ *
111
+ * TODO: Consider the introduction and exposure of monaco `PickerQuickAccessProvider` and the corresponding refactoring for this and other
112
+ * users of QuickAccessProvider.
113
+ */
114
+ execute: () => {
115
+ this.doSecondLevel(type);
116
+ }
117
+ };
118
+ }
119
+ onDidTriggerGearIcon(item) {
120
+ if (item instanceof TaskRunQuickOpenItem) {
121
+ this.taskService.configure(item.token, item.task);
122
+ this.quickInputService.hide();
123
+ }
124
+ }
125
+ async open() {
126
+ this.showMultiLevelQuickPick();
127
+ }
128
+ async showMultiLevelQuickPick(skipInit) {
129
+ if (!skipInit) {
130
+ await this.init();
131
+ }
132
+ const picker = this.quickInputService.createQuickPick();
133
+ picker.placeholder = exports.CHOOSE_TASK;
134
+ picker.matchOnDescription = true;
135
+ picker.ignoreFocusOut = false;
136
+ picker.items = this.items;
137
+ picker.onDidTriggerItemButton(({ item }) => this.onDidTriggerGearIcon(item));
138
+ const firstLevelTask = await this.doPickerFirstLevel(picker);
139
+ if (!!firstLevelTask && TaskEntry.isQuickPickValue(firstLevelTask)) {
140
+ // A taskType was selected
141
+ picker.busy = true;
142
+ await this.doSecondLevel(firstLevelTask.value);
143
+ }
144
+ else if (!!firstLevelTask && 'execute' in firstLevelTask && typeof firstLevelTask.execute === 'function') {
145
+ firstLevelTask.execute();
146
+ }
147
+ picker.dispose();
148
+ }
149
+ async doPickerFirstLevel(picker) {
150
+ picker.show();
151
+ const firstLevelPickerResult = await new Promise(resolve => {
152
+ picker.onDidAccept(async () => {
153
+ resolve(picker.selectedItems ? picker.selectedItems[0] : undefined);
154
+ });
155
+ });
156
+ return firstLevelPickerResult !== null && firstLevelPickerResult !== void 0 ? firstLevelPickerResult : undefined;
157
+ }
158
+ async doSecondLevel(taskType) {
159
+ var _a;
160
+ // Resolve Second level tasks based on selected TaskType
161
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
162
+ const token = this.taskService.startUserAction();
163
+ const providedTasks = taskType === exports.SHOW_ALL ?
164
+ await this.taskService.getProvidedTasks(token, provided_task_configurations_1.ALL_TASK_TYPES) :
165
+ await this.taskService.getProvidedTasks(token, taskType);
166
+ const providedTasksItems = this.getItems(providedTasks, taskType + ' tasks', token, isMulti);
167
+ const label = providedTasksItems.length ?
168
+ nls_1.nls.localizeByDefault('Go back ↩') :
169
+ nls_1.nls.localizeByDefault('No {0} tasks found. Go back ↩', taskType);
170
+ providedTasksItems.push(({
171
+ label,
172
+ execute: () => this.showMultiLevelQuickPick(true)
173
+ }));
174
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(providedTasksItems, {
175
+ placeholder: exports.CHOOSE_TASK,
176
+ onDidTriggerItemButton: ({ item }) => this.onDidTriggerGearIcon(item)
177
+ });
178
+ }
179
+ attach() {
180
+ this.items = [];
181
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
182
+ this.taskService.getRunningTasks().then(tasks => {
183
+ var _a;
184
+ if (!tasks.length) {
185
+ this.items.push({
186
+ label: exports.NO_TASKS_FOUND,
187
+ });
188
+ }
189
+ else {
190
+ tasks.forEach((task) => {
191
+ // can only attach to terminal processes, so only list those
192
+ if (task.terminalId) {
193
+ this.items.push(new RunningTaskQuickOpenItem(task, this.taskService, this.taskNameResolver, this.taskSourceResolver, this.taskDefinitionRegistry, this.labelProvider, isMulti, () => this.taskService.attach(task.terminalId, task)));
194
+ }
195
+ });
196
+ }
197
+ if (this.items.length === 0) {
198
+ this.items.push(({
199
+ label: exports.NO_TASKS_FOUND
200
+ }));
201
+ }
202
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(this.items, { placeholder: exports.CHOOSE_TASK });
203
+ });
204
+ }
205
+ async configure() {
206
+ var _a;
207
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.pick(this.resolveItemsToConfigure(), { placeHolder: nls_1.nls.localizeByDefault('Select a task to configure') }).then(async (item) => {
208
+ if (item && 'execute' in item && typeof item.execute === 'function') {
209
+ item.execute();
210
+ }
211
+ });
212
+ }
213
+ async resolveItemsToConfigure() {
214
+ const items = [];
215
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
216
+ const token = this.taskService.startUserAction();
217
+ const configuredTasks = await this.taskService.getConfiguredTasks(token);
218
+ const providedTasks = await this.taskService.getProvidedTasks(token, provided_task_configurations_1.ALL_TASK_TYPES);
219
+ // check if tasks.json exists. If not, display "Create tasks.json file from template"
220
+ // If tasks.json exists and empty, display 'Open tasks.json file'
221
+ const { filteredConfiguredTasks, filteredProvidedTasks } = this.getFilteredTasks([], configuredTasks, providedTasks);
222
+ const groupedTasks = this.getGroupedTasksByWorkspaceFolder([...filteredConfiguredTasks, ...filteredProvidedTasks]);
223
+ if (groupedTasks.has(task_protocol_1.TaskScope.Global.toString())) {
224
+ const configs = groupedTasks.get(task_protocol_1.TaskScope.Global.toString());
225
+ this.addConfigurationItems(items, configs, token, isMulti);
226
+ }
227
+ if (groupedTasks.has(task_protocol_1.TaskScope.Workspace.toString())) {
228
+ const configs = groupedTasks.get(task_protocol_1.TaskScope.Workspace.toString());
229
+ this.addConfigurationItems(items, configs, token, isMulti);
230
+ }
231
+ const rootUris = (await this.workspaceService.roots).map(rootStat => rootStat.resource.toString());
232
+ for (const rootFolder of rootUris) {
233
+ const folderName = new uri_1.default(rootFolder).displayName;
234
+ if (groupedTasks.has(rootFolder)) {
235
+ const configs = groupedTasks.get(rootFolder.toString());
236
+ this.addConfigurationItems(items, configs, token, isMulti);
237
+ }
238
+ else {
239
+ const { configUri } = this.preferences.resolve('tasks', [], rootFolder);
240
+ const existTaskConfigFile = !!configUri;
241
+ items.push(({
242
+ label: existTaskConfigFile ? nls_1.nls.localizeByDefault('Open tasks.json file') : nls_1.nls.localizeByDefault('Create tasks.json file from template'),
243
+ execute: () => {
244
+ setTimeout(() => this.taskConfigurationManager.openConfiguration(rootFolder));
245
+ }
246
+ }));
247
+ }
248
+ if (items.length > 0) {
249
+ items.unshift({
250
+ type: 'separator',
251
+ label: isMulti ? folderName : ''
252
+ });
253
+ }
254
+ }
255
+ if (items.length === 0) {
256
+ items.push(({
257
+ label: exports.NO_TASKS_FOUND
258
+ }));
259
+ }
260
+ return items;
261
+ }
262
+ addConfigurationItems(items, configs, token, isMulti) {
263
+ items.push(...configs.map(taskConfig => {
264
+ const item = new TaskConfigureQuickOpenItem(token, taskConfig, this.taskService, this.taskNameResolver, this.workspaceService, isMulti);
265
+ item['taskDefinitionRegistry'] = this.taskDefinitionRegistry;
266
+ return item;
267
+ }).sort((t1, t2) => t1.label.localeCompare(t2.label)));
268
+ }
269
+ getTaskItems() {
270
+ return this.items.filter((item) => item.type !== 'separator' && item.task !== undefined);
271
+ }
272
+ async runBuildOrTestTask(buildOrTestType) {
273
+ var _a;
274
+ const shouldRunBuildTask = buildOrTestType === 'build';
275
+ const token = this.taskService.startUserAction();
276
+ await this.doInit(token);
277
+ const taskItems = this.getTaskItems();
278
+ if (taskItems.length > 0) { // the item in `this.items` is not 'No tasks found'
279
+ const buildOrTestTasks = taskItems.filter((t) => shouldRunBuildTask ? task_protocol_1.TaskCustomization.isBuildTask(t.task) : task_protocol_1.TaskCustomization.isTestTask(t.task));
280
+ if (buildOrTestTasks.length > 0) { // build / test tasks are defined in the workspace
281
+ const defaultBuildOrTestTasks = buildOrTestTasks.filter((t) => shouldRunBuildTask ? task_protocol_1.TaskCustomization.isDefaultBuildTask(t.task) : task_protocol_1.TaskCustomization.isDefaultTestTask(t.task));
282
+ if (defaultBuildOrTestTasks.length === 1) { // run the default build / test task
283
+ const defaultBuildOrTestTask = defaultBuildOrTestTasks[0];
284
+ const taskToRun = defaultBuildOrTestTask.task;
285
+ const scope = taskToRun._scope;
286
+ if (this.taskDefinitionRegistry && !!this.taskDefinitionRegistry.getDefinition(taskToRun)) {
287
+ this.taskService.run(token, taskToRun.source, taskToRun.label, scope);
288
+ }
289
+ else {
290
+ this.taskService.run(token, taskToRun._source, taskToRun.label, scope);
291
+ }
292
+ return;
293
+ }
294
+ // if default build / test task is not found, or there are more than one default,
295
+ // display the list of build /test tasks to let the user decide which to run
296
+ this.items = buildOrTestTasks;
297
+ }
298
+ else { // no build / test tasks, display an action item to configure the build / test task
299
+ this.items = [({
300
+ label: shouldRunBuildTask
301
+ ? nls_1.nls.localizeByDefault('No build task to run found. Configure Build Task...')
302
+ : nls_1.nls.localizeByDefault('No test task to run found. Configure Tasks...'),
303
+ execute: () => {
304
+ this.doInit(token).then(() => {
305
+ var _a;
306
+ // update the `tasks.json` file, instead of running the task itself
307
+ this.items = this.getTaskItems().map((item) => new ConfigureBuildOrTestTaskQuickOpenItem(token, item.task, this.taskService, this.workspaceService.isMultiRootWorkspaceOpened, this.taskNameResolver, shouldRunBuildTask, this.taskConfigurationManager, this.taskDefinitionRegistry, this.taskSourceResolver));
308
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(this.items, {
309
+ placeholder: shouldRunBuildTask
310
+ ? nls_1.nls.localizeByDefault('Select the task to be used as the default build task')
311
+ : nls_1.nls.localizeByDefault('Select the task to be used as the default test task')
312
+ });
313
+ });
314
+ }
315
+ })];
316
+ }
317
+ }
318
+ else { // no tasks are currently present, prompt users if they'd like to configure a task.
319
+ this.items = [{
320
+ label: shouldRunBuildTask
321
+ ? nls_1.nls.localizeByDefault('No build task to run found. Configure Build Task...')
322
+ : nls_1.nls.localizeByDefault('No test task to run found. Configure Tasks...'),
323
+ execute: () => this.configure()
324
+ }];
325
+ }
326
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(this.items, {
327
+ placeholder: shouldRunBuildTask
328
+ ? nls_1.nls.localizeByDefault('Select the build task to run')
329
+ : nls_1.nls.localizeByDefault('Select the test task to run'),
330
+ onDidTriggerItemButton: ({ item }) => this.onDidTriggerGearIcon(item)
331
+ });
332
+ }
333
+ async getPicks(filter, token) {
334
+ await this.init();
335
+ return (0, quick_input_service_1.filterItems)(this.items, filter);
336
+ }
337
+ registerQuickAccessProvider() {
338
+ this.quickAccessRegistry.registerQuickAccessProvider({
339
+ getInstance: () => this,
340
+ prefix: QuickOpenTask_1.PREFIX,
341
+ placeholder: nls_1.nls.localizeByDefault('Select the task to run'),
342
+ helpEntries: [{ description: nls_1.nls.localizeByDefault('Run Task'), needsEditor: false }]
343
+ });
344
+ }
345
+ getRunningTaskLabel(task) {
346
+ return `Task id: ${task.taskId}, label: ${task.config.label}`;
347
+ }
348
+ getItems(tasks, groupLabel, token, isMulti, defaultTask) {
349
+ const items = tasks.map(task => new TaskRunQuickOpenItem(token, task, this.taskService, isMulti, this.taskDefinitionRegistry, this.taskNameResolver, this.taskSourceResolver, this.taskConfigurationManager, [{
350
+ iconClass: 'codicon-gear',
351
+ tooltip: nls_1.nls.localizeByDefault('Configure Task'),
352
+ }])).sort((t1, t2) => {
353
+ var _a, _b;
354
+ let result = ((_a = t1.description) !== null && _a !== void 0 ? _a : '').localeCompare((_b = t2.description) !== null && _b !== void 0 ? _b : '');
355
+ if (result === 0) {
356
+ result = t1.label.localeCompare(t2.label);
357
+ }
358
+ return result;
359
+ });
360
+ if (items.length === 0 && defaultTask) {
361
+ items.push(defaultTask);
362
+ }
363
+ if (items.length > 0) {
364
+ items.unshift({ type: 'separator', label: groupLabel });
365
+ }
366
+ return items;
367
+ }
368
+ getFilteredTasks(recentTasks, configuredTasks, providedTasks) {
369
+ const filteredRecentTasks = [];
370
+ recentTasks.forEach(recent => {
371
+ const originalTaskConfig = [...configuredTasks, ...providedTasks].find(t => this.taskDefinitionRegistry.compareTasks(recent, t));
372
+ if (originalTaskConfig) {
373
+ filteredRecentTasks.push(originalTaskConfig);
374
+ }
375
+ });
376
+ const filteredProvidedTasks = [];
377
+ providedTasks.forEach(provided => {
378
+ const exist = [...filteredRecentTasks, ...configuredTasks].some(t => this.taskDefinitionRegistry.compareTasks(provided, t));
379
+ if (!exist) {
380
+ filteredProvidedTasks.push(provided);
381
+ }
382
+ });
383
+ const filteredConfiguredTasks = [];
384
+ configuredTasks.forEach(configured => {
385
+ const exist = filteredRecentTasks.some(t => this.taskDefinitionRegistry.compareTasks(configured, t));
386
+ if (!exist) {
387
+ filteredConfiguredTasks.push(configured);
388
+ }
389
+ });
390
+ return {
391
+ filteredRecentTasks, filteredConfiguredTasks, filteredProvidedTasks
392
+ };
393
+ }
394
+ getGroupedTasksByWorkspaceFolder(tasks) {
395
+ const grouped = new Map();
396
+ for (const task of tasks) {
397
+ const scope = task._scope;
398
+ if (grouped.has(scope.toString())) {
399
+ grouped.get(scope.toString()).push(task);
400
+ }
401
+ else {
402
+ grouped.set(scope.toString(), [task]);
403
+ }
404
+ }
405
+ for (const taskConfigs of grouped.values()) {
406
+ taskConfigs.sort((t1, t2) => t1.label.localeCompare(t2.label));
407
+ }
408
+ return grouped;
409
+ }
410
+ };
411
+ exports.QuickOpenTask = QuickOpenTask;
412
+ QuickOpenTask.PREFIX = 'task ';
413
+ tslib_1.__decorate([
414
+ (0, inversify_1.inject)(task_service_1.TaskService),
415
+ tslib_1.__metadata("design:type", task_service_1.TaskService)
416
+ ], QuickOpenTask.prototype, "taskService", void 0);
417
+ tslib_1.__decorate([
418
+ (0, inversify_1.inject)(browser_1.QuickInputService),
419
+ (0, inversify_1.optional)(),
420
+ tslib_1.__metadata("design:type", Object)
421
+ ], QuickOpenTask.prototype, "quickInputService", void 0);
422
+ tslib_1.__decorate([
423
+ (0, inversify_1.inject)(browser_1.QuickAccessRegistry),
424
+ tslib_1.__metadata("design:type", Object)
425
+ ], QuickOpenTask.prototype, "quickAccessRegistry", void 0);
426
+ tslib_1.__decorate([
427
+ (0, inversify_1.inject)(browser_2.WorkspaceService),
428
+ tslib_1.__metadata("design:type", browser_2.WorkspaceService)
429
+ ], QuickOpenTask.prototype, "workspaceService", void 0);
430
+ tslib_1.__decorate([
431
+ (0, inversify_1.inject)(task_definition_registry_1.TaskDefinitionRegistry),
432
+ tslib_1.__metadata("design:type", task_definition_registry_1.TaskDefinitionRegistry)
433
+ ], QuickOpenTask.prototype, "taskDefinitionRegistry", void 0);
434
+ tslib_1.__decorate([
435
+ (0, inversify_1.inject)(task_name_resolver_1.TaskNameResolver),
436
+ tslib_1.__metadata("design:type", task_name_resolver_1.TaskNameResolver)
437
+ ], QuickOpenTask.prototype, "taskNameResolver", void 0);
438
+ tslib_1.__decorate([
439
+ (0, inversify_1.inject)(task_source_resolver_1.TaskSourceResolver),
440
+ tslib_1.__metadata("design:type", task_source_resolver_1.TaskSourceResolver)
441
+ ], QuickOpenTask.prototype, "taskSourceResolver", void 0);
442
+ tslib_1.__decorate([
443
+ (0, inversify_1.inject)(task_configuration_manager_1.TaskConfigurationManager),
444
+ tslib_1.__metadata("design:type", task_configuration_manager_1.TaskConfigurationManager)
445
+ ], QuickOpenTask.prototype, "taskConfigurationManager", void 0);
446
+ tslib_1.__decorate([
447
+ (0, inversify_1.inject)(common_1.PreferenceService),
448
+ tslib_1.__metadata("design:type", Object)
449
+ ], QuickOpenTask.prototype, "preferences", void 0);
450
+ tslib_1.__decorate([
451
+ (0, inversify_1.inject)(browser_1.LabelProvider),
452
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
453
+ ], QuickOpenTask.prototype, "labelProvider", void 0);
454
+ exports.QuickOpenTask = QuickOpenTask = QuickOpenTask_1 = tslib_1.__decorate([
455
+ (0, inversify_1.injectable)()
456
+ ], QuickOpenTask);
457
+ class TaskRunQuickOpenItem {
458
+ constructor(token, task, taskService, isMulti, taskDefinitionRegistry, taskNameResolver, taskSourceResolver, taskConfigurationManager, buttons) {
459
+ this.token = token;
460
+ this.task = task;
461
+ this.taskService = taskService;
462
+ this.isMulti = isMulti;
463
+ this.taskDefinitionRegistry = taskDefinitionRegistry;
464
+ this.taskNameResolver = taskNameResolver;
465
+ this.taskSourceResolver = taskSourceResolver;
466
+ this.taskConfigurationManager = taskConfigurationManager;
467
+ this.buttons = buttons;
468
+ }
469
+ get label() {
470
+ return this.taskNameResolver.resolve(this.task);
471
+ }
472
+ get description() {
473
+ return renderScope(this.task._scope, this.isMulti);
474
+ }
475
+ get detail() {
476
+ return this.task.detail;
477
+ }
478
+ execute() {
479
+ const scope = this.task._scope;
480
+ if (this.taskDefinitionRegistry && !!this.taskDefinitionRegistry.getDefinition(this.task)) {
481
+ this.taskService.run(this.token, this.task.source || this.task._source, this.task.label, scope);
482
+ }
483
+ else {
484
+ this.taskService.run(this.token, this.task._source, this.task.label, scope);
485
+ }
486
+ }
487
+ trigger() {
488
+ this.taskService.configure(this.token, this.task);
489
+ return pickerQuickAccess_1.TriggerAction.CLOSE_PICKER;
490
+ }
491
+ }
492
+ exports.TaskRunQuickOpenItem = TaskRunQuickOpenItem;
493
+ class ConfigureBuildOrTestTaskQuickOpenItem extends TaskRunQuickOpenItem {
494
+ constructor(token, task, taskService, isMulti, taskNameResolver, isBuildTask, taskConfigurationManager, taskDefinitionRegistry, taskSourceResolver) {
495
+ super(token, task, taskService, isMulti, taskDefinitionRegistry, taskNameResolver, taskSourceResolver, taskConfigurationManager);
496
+ this.isBuildTask = isBuildTask;
497
+ }
498
+ execute() {
499
+ this.taskService.updateTaskConfiguration(this.token, this.task, { group: { kind: this.isBuildTask ? 'build' : 'test', isDefault: true } })
500
+ .then(() => {
501
+ if (this.task._scope) {
502
+ this.taskConfigurationManager.openConfiguration(this.task._scope);
503
+ }
504
+ });
505
+ }
506
+ }
507
+ exports.ConfigureBuildOrTestTaskQuickOpenItem = ConfigureBuildOrTestTaskQuickOpenItem;
508
+ function renderScope(scope, isMulti) {
509
+ if (typeof scope === 'string') {
510
+ if (isMulti) {
511
+ return new uri_1.default(scope).displayName;
512
+ }
513
+ else {
514
+ return '';
515
+ }
516
+ }
517
+ else {
518
+ return task_protocol_1.TaskScope[scope];
519
+ }
520
+ }
521
+ class TaskConfigureQuickOpenItem {
522
+ constructor(token, task, taskService, taskNameResolver, workspaceService, isMulti) {
523
+ this.token = token;
524
+ this.task = task;
525
+ this.taskService = taskService;
526
+ this.taskNameResolver = taskNameResolver;
527
+ this.workspaceService = workspaceService;
528
+ this.isMulti = isMulti;
529
+ const stat = this.workspaceService.workspace;
530
+ this.isMulti = stat ? !stat.isDirectory : false;
531
+ }
532
+ get label() {
533
+ return this.taskNameResolver.resolve(this.task);
534
+ }
535
+ get description() {
536
+ return renderScope(this.task._scope, this.isMulti);
537
+ }
538
+ accept() {
539
+ this.execute();
540
+ }
541
+ execute() {
542
+ this.taskService.configure(this.token, this.task);
543
+ }
544
+ }
545
+ exports.TaskConfigureQuickOpenItem = TaskConfigureQuickOpenItem;
546
+ let TaskTerminateQuickOpen = class TaskTerminateQuickOpen {
547
+ async getItems() {
548
+ const items = [];
549
+ const runningTasks = await this.taskService.getRunningTasks();
550
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
551
+ if (runningTasks.length <= 0) {
552
+ items.push(({
553
+ label: nls_1.nls.localizeByDefault('No task is currently running'),
554
+ }));
555
+ }
556
+ else {
557
+ runningTasks.forEach((task) => {
558
+ items.push(new RunningTaskQuickOpenItem(task, this.taskService, this.taskNameResolver, this.taskSourceResolver, this.taskDefinitionRegistry, this.labelProvider, isMulti, () => this.taskService.kill(task.taskId)));
559
+ });
560
+ if (runningTasks.length > 1) {
561
+ items.push(({
562
+ label: nls_1.nls.localizeByDefault('All Running Tasks'),
563
+ execute: () => {
564
+ runningTasks.forEach((t) => {
565
+ this.taskService.kill(t.taskId);
566
+ });
567
+ }
568
+ }));
569
+ }
570
+ }
571
+ return items;
572
+ }
573
+ async open() {
574
+ var _a;
575
+ const items = await this.getItems();
576
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(items, { placeholder: nls_1.nls.localizeByDefault('Select a task to terminate') });
577
+ }
578
+ };
579
+ exports.TaskTerminateQuickOpen = TaskTerminateQuickOpen;
580
+ tslib_1.__decorate([
581
+ (0, inversify_1.inject)(browser_1.LabelProvider),
582
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
583
+ ], TaskTerminateQuickOpen.prototype, "labelProvider", void 0);
584
+ tslib_1.__decorate([
585
+ (0, inversify_1.inject)(browser_1.QuickInputService),
586
+ (0, inversify_1.optional)(),
587
+ tslib_1.__metadata("design:type", Object)
588
+ ], TaskTerminateQuickOpen.prototype, "quickInputService", void 0);
589
+ tslib_1.__decorate([
590
+ (0, inversify_1.inject)(task_definition_registry_1.TaskDefinitionRegistry),
591
+ tslib_1.__metadata("design:type", task_definition_registry_1.TaskDefinitionRegistry)
592
+ ], TaskTerminateQuickOpen.prototype, "taskDefinitionRegistry", void 0);
593
+ tslib_1.__decorate([
594
+ (0, inversify_1.inject)(task_name_resolver_1.TaskNameResolver),
595
+ tslib_1.__metadata("design:type", task_name_resolver_1.TaskNameResolver)
596
+ ], TaskTerminateQuickOpen.prototype, "taskNameResolver", void 0);
597
+ tslib_1.__decorate([
598
+ (0, inversify_1.inject)(task_source_resolver_1.TaskSourceResolver),
599
+ tslib_1.__metadata("design:type", task_source_resolver_1.TaskSourceResolver)
600
+ ], TaskTerminateQuickOpen.prototype, "taskSourceResolver", void 0);
601
+ tslib_1.__decorate([
602
+ (0, inversify_1.inject)(task_service_1.TaskService),
603
+ tslib_1.__metadata("design:type", task_service_1.TaskService)
604
+ ], TaskTerminateQuickOpen.prototype, "taskService", void 0);
605
+ tslib_1.__decorate([
606
+ (0, inversify_1.inject)(browser_2.WorkspaceService),
607
+ tslib_1.__metadata("design:type", browser_2.WorkspaceService)
608
+ ], TaskTerminateQuickOpen.prototype, "workspaceService", void 0);
609
+ exports.TaskTerminateQuickOpen = TaskTerminateQuickOpen = tslib_1.__decorate([
610
+ (0, inversify_1.injectable)()
611
+ ], TaskTerminateQuickOpen);
612
+ let TaskRunningQuickOpen = class TaskRunningQuickOpen {
613
+ async getItems() {
614
+ const items = [];
615
+ const runningTasks = await this.taskService.getRunningTasks();
616
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
617
+ if (runningTasks.length <= 0) {
618
+ items.push(({
619
+ label: nls_1.nls.localizeByDefault('No task is currently running'),
620
+ }));
621
+ }
622
+ else {
623
+ runningTasks.forEach((task) => {
624
+ items.push(new RunningTaskQuickOpenItem(task, this.taskService, this.taskNameResolver, this.taskSourceResolver, this.taskDefinitionRegistry, this.labelProvider, isMulti, () => {
625
+ if (task.terminalId) {
626
+ const terminal = this.terminalService.getByTerminalId(task.terminalId);
627
+ if (terminal) {
628
+ this.terminalService.open(terminal);
629
+ }
630
+ }
631
+ }));
632
+ });
633
+ }
634
+ return items;
635
+ }
636
+ async open() {
637
+ var _a;
638
+ const items = await this.getItems();
639
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(items, { placeholder: nls_1.nls.localizeByDefault('Select the task to show its output') });
640
+ }
641
+ };
642
+ exports.TaskRunningQuickOpen = TaskRunningQuickOpen;
643
+ tslib_1.__decorate([
644
+ (0, inversify_1.inject)(browser_1.LabelProvider),
645
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
646
+ ], TaskRunningQuickOpen.prototype, "labelProvider", void 0);
647
+ tslib_1.__decorate([
648
+ (0, inversify_1.inject)(browser_1.QuickInputService),
649
+ (0, inversify_1.optional)(),
650
+ tslib_1.__metadata("design:type", Object)
651
+ ], TaskRunningQuickOpen.prototype, "quickInputService", void 0);
652
+ tslib_1.__decorate([
653
+ (0, inversify_1.inject)(task_definition_registry_1.TaskDefinitionRegistry),
654
+ tslib_1.__metadata("design:type", task_definition_registry_1.TaskDefinitionRegistry)
655
+ ], TaskRunningQuickOpen.prototype, "taskDefinitionRegistry", void 0);
656
+ tslib_1.__decorate([
657
+ (0, inversify_1.inject)(task_name_resolver_1.TaskNameResolver),
658
+ tslib_1.__metadata("design:type", task_name_resolver_1.TaskNameResolver)
659
+ ], TaskRunningQuickOpen.prototype, "taskNameResolver", void 0);
660
+ tslib_1.__decorate([
661
+ (0, inversify_1.inject)(task_source_resolver_1.TaskSourceResolver),
662
+ tslib_1.__metadata("design:type", task_source_resolver_1.TaskSourceResolver)
663
+ ], TaskRunningQuickOpen.prototype, "taskSourceResolver", void 0);
664
+ tslib_1.__decorate([
665
+ (0, inversify_1.inject)(task_service_1.TaskService),
666
+ tslib_1.__metadata("design:type", task_service_1.TaskService)
667
+ ], TaskRunningQuickOpen.prototype, "taskService", void 0);
668
+ tslib_1.__decorate([
669
+ (0, inversify_1.inject)(browser_2.WorkspaceService),
670
+ tslib_1.__metadata("design:type", browser_2.WorkspaceService)
671
+ ], TaskRunningQuickOpen.prototype, "workspaceService", void 0);
672
+ tslib_1.__decorate([
673
+ (0, inversify_1.inject)(terminal_service_1.TerminalService),
674
+ tslib_1.__metadata("design:type", Object)
675
+ ], TaskRunningQuickOpen.prototype, "terminalService", void 0);
676
+ exports.TaskRunningQuickOpen = TaskRunningQuickOpen = tslib_1.__decorate([
677
+ (0, inversify_1.injectable)()
678
+ ], TaskRunningQuickOpen);
679
+ class RunningTaskQuickOpenItem {
680
+ constructor(taskInfo, taskService, taskNameResolver, taskSourceResolver, taskDefinitionRegistry, labelProvider, isMulti, execute) {
681
+ this.taskInfo = taskInfo;
682
+ this.taskService = taskService;
683
+ this.taskNameResolver = taskNameResolver;
684
+ this.taskSourceResolver = taskSourceResolver;
685
+ this.taskDefinitionRegistry = taskDefinitionRegistry;
686
+ this.labelProvider = labelProvider;
687
+ this.isMulti = isMulti;
688
+ this.execute = execute;
689
+ }
690
+ get label() {
691
+ return this.taskNameResolver.resolve(this.taskInfo.config);
692
+ }
693
+ get description() {
694
+ return renderScope(this.taskInfo.config._scope, this.isMulti);
695
+ }
696
+ get detail() {
697
+ return this.taskInfo.config.detail;
698
+ }
699
+ }
700
+ exports.RunningTaskQuickOpenItem = RunningTaskQuickOpenItem;
701
+ let TaskRestartRunningQuickOpen = class TaskRestartRunningQuickOpen {
702
+ async getItems() {
703
+ const items = [];
704
+ const runningTasks = await this.taskService.getRunningTasks();
705
+ const isMulti = this.workspaceService.isMultiRootWorkspaceOpened;
706
+ if (runningTasks.length <= 0) {
707
+ items.push({
708
+ label: nls_1.nls.localizeByDefault('No task to restart')
709
+ });
710
+ }
711
+ else {
712
+ runningTasks.forEach((task) => {
713
+ items.push(new RunningTaskQuickOpenItem(task, this.taskService, this.taskNameResolver, this.taskSourceResolver, this.taskDefinitionRegistry, this.labelProvider, isMulti, () => this.taskService.restartTask(task)));
714
+ });
715
+ }
716
+ return items;
717
+ }
718
+ async open() {
719
+ var _a;
720
+ const items = await this.getItems();
721
+ (_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(items, { placeholder: nls_1.nls.localizeByDefault('Select the task to restart') });
722
+ }
723
+ };
724
+ exports.TaskRestartRunningQuickOpen = TaskRestartRunningQuickOpen;
725
+ tslib_1.__decorate([
726
+ (0, inversify_1.inject)(browser_1.LabelProvider),
727
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
728
+ ], TaskRestartRunningQuickOpen.prototype, "labelProvider", void 0);
729
+ tslib_1.__decorate([
730
+ (0, inversify_1.inject)(browser_1.QuickInputService),
731
+ (0, inversify_1.optional)(),
732
+ tslib_1.__metadata("design:type", Object)
733
+ ], TaskRestartRunningQuickOpen.prototype, "quickInputService", void 0);
734
+ tslib_1.__decorate([
735
+ (0, inversify_1.inject)(task_definition_registry_1.TaskDefinitionRegistry),
736
+ tslib_1.__metadata("design:type", task_definition_registry_1.TaskDefinitionRegistry)
737
+ ], TaskRestartRunningQuickOpen.prototype, "taskDefinitionRegistry", void 0);
738
+ tslib_1.__decorate([
739
+ (0, inversify_1.inject)(task_name_resolver_1.TaskNameResolver),
740
+ tslib_1.__metadata("design:type", task_name_resolver_1.TaskNameResolver)
741
+ ], TaskRestartRunningQuickOpen.prototype, "taskNameResolver", void 0);
742
+ tslib_1.__decorate([
743
+ (0, inversify_1.inject)(task_source_resolver_1.TaskSourceResolver),
744
+ tslib_1.__metadata("design:type", task_source_resolver_1.TaskSourceResolver)
745
+ ], TaskRestartRunningQuickOpen.prototype, "taskSourceResolver", void 0);
746
+ tslib_1.__decorate([
747
+ (0, inversify_1.inject)(task_service_1.TaskService),
748
+ tslib_1.__metadata("design:type", task_service_1.TaskService)
749
+ ], TaskRestartRunningQuickOpen.prototype, "taskService", void 0);
750
+ tslib_1.__decorate([
751
+ (0, inversify_1.inject)(browser_2.WorkspaceService),
752
+ tslib_1.__metadata("design:type", browser_2.WorkspaceService)
753
+ ], TaskRestartRunningQuickOpen.prototype, "workspaceService", void 0);
754
+ exports.TaskRestartRunningQuickOpen = TaskRestartRunningQuickOpen = tslib_1.__decorate([
755
+ (0, inversify_1.injectable)()
756
+ ], TaskRestartRunningQuickOpen);
757
+ //# sourceMappingURL=quick-open-task.js.map