@theia/task 1.45.1 → 1.46.0-next.72

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 (173) hide show
  1. package/README.md +193 -193
  2. package/lib/browser/index.d.ts +6 -6
  3. package/lib/browser/index.js +33 -33
  4. package/lib/browser/process/process-task-contribution.d.ts +6 -6
  5. package/lib/browser/process/process-task-contribution.js +43 -43
  6. package/lib/browser/process/process-task-frontend-module.d.ts +2 -2
  7. package/lib/browser/process/process-task-frontend-module.js +27 -27
  8. package/lib/browser/process/process-task-resolver.d.ts +17 -17
  9. package/lib/browser/process/process-task-resolver.js +101 -101
  10. package/lib/browser/provided-task-configurations.d.ts +43 -43
  11. package/lib/browser/provided-task-configurations.js +213 -213
  12. package/lib/browser/provided-task-configurations.spec.d.ts +1 -1
  13. package/lib/browser/provided-task-configurations.spec.js +43 -43
  14. package/lib/browser/quick-open-task.d.ts +144 -144
  15. package/lib/browser/quick-open-task.d.ts.map +1 -1
  16. package/lib/browser/quick-open-task.js +752 -748
  17. package/lib/browser/quick-open-task.js.map +1 -1
  18. package/lib/browser/task-configuration-manager.d.ts +64 -64
  19. package/lib/browser/task-configuration-manager.js +261 -261
  20. package/lib/browser/task-configuration-model.d.ts +32 -32
  21. package/lib/browser/task-configuration-model.js +79 -79
  22. package/lib/browser/task-configurations.d.ts +127 -127
  23. package/lib/browser/task-configurations.js +486 -486
  24. package/lib/browser/task-contribution.d.ts +182 -182
  25. package/lib/browser/task-contribution.js +206 -206
  26. package/lib/browser/task-definition-registry.d.ts +38 -38
  27. package/lib/browser/task-definition-registry.js +134 -134
  28. package/lib/browser/task-definition-registry.spec.d.ts +1 -1
  29. package/lib/browser/task-definition-registry.spec.js +170 -170
  30. package/lib/browser/task-frontend-contribution.d.ts +56 -56
  31. package/lib/browser/task-frontend-contribution.js +358 -358
  32. package/lib/browser/task-frontend-module.d.ts +5 -5
  33. package/lib/browser/task-frontend-module.js +79 -79
  34. package/lib/browser/task-name-resolver.d.ts +13 -13
  35. package/lib/browser/task-name-resolver.js +67 -67
  36. package/lib/browser/task-node.d.ts +9 -9
  37. package/lib/browser/task-node.js +17 -17
  38. package/lib/browser/task-preferences.d.ts +4 -4
  39. package/lib/browser/task-preferences.js +40 -40
  40. package/lib/browser/task-problem-matcher-registry.d.ts +40 -40
  41. package/lib/browser/task-problem-matcher-registry.js +309 -309
  42. package/lib/browser/task-problem-pattern-registry.d.ts +23 -23
  43. package/lib/browser/task-problem-pattern-registry.js +210 -210
  44. package/lib/browser/task-schema-updater.d.ts +58 -58
  45. package/lib/browser/task-schema-updater.js +688 -688
  46. package/lib/browser/task-service.d.ts +279 -279
  47. package/lib/browser/task-service.js +1119 -1119
  48. package/lib/browser/task-source-resolver.d.ts +9 -9
  49. package/lib/browser/task-source-resolver.js +51 -51
  50. package/lib/browser/task-templates.d.ts +13 -13
  51. package/lib/browser/task-templates.js +161 -161
  52. package/lib/browser/task-terminal-widget-manager.d.ts +44 -44
  53. package/lib/browser/task-terminal-widget-manager.js +228 -228
  54. package/lib/browser/tasks-monaco-contribution.d.ts +1 -1
  55. package/lib/browser/tasks-monaco-contribution.js +27 -27
  56. package/lib/common/index.d.ts +4 -4
  57. package/lib/common/index.js +31 -31
  58. package/lib/common/problem-matcher-protocol.d.ts +124 -124
  59. package/lib/common/problem-matcher-protocol.js +132 -132
  60. package/lib/common/process/task-protocol.d.ts +68 -68
  61. package/lib/common/process/task-protocol.js +33 -33
  62. package/lib/common/task-common-module.d.ts +7 -7
  63. package/lib/common/task-common-module.js +33 -33
  64. package/lib/common/task-protocol.d.ts +192 -192
  65. package/lib/common/task-protocol.js +137 -137
  66. package/lib/common/task-util.d.ts +22 -22
  67. package/lib/common/task-util.js +46 -46
  68. package/lib/common/task-watcher.d.ts +17 -17
  69. package/lib/common/task-watcher.js +86 -86
  70. package/lib/node/custom/custom-task-runner-backend-module.d.ts +2 -2
  71. package/lib/node/custom/custom-task-runner-backend-module.js +36 -36
  72. package/lib/node/custom/custom-task-runner-contribution.d.ts +6 -6
  73. package/lib/node/custom/custom-task-runner-contribution.js +42 -42
  74. package/lib/node/custom/custom-task-runner.d.ts +15 -15
  75. package/lib/node/custom/custom-task-runner.js +69 -69
  76. package/lib/node/custom/custom-task.d.ts +20 -20
  77. package/lib/node/custom/custom-task.js +78 -78
  78. package/lib/node/index.d.ts +3 -3
  79. package/lib/node/index.js +30 -30
  80. package/lib/node/process/process-task-runner-backend-module.d.ts +2 -2
  81. package/lib/node/process/process-task-runner-backend-module.js +36 -36
  82. package/lib/node/process/process-task-runner-contribution.d.ts +6 -6
  83. package/lib/node/process/process-task-runner-contribution.js +43 -43
  84. package/lib/node/process/process-task-runner.d.ts +60 -60
  85. package/lib/node/process/process-task-runner.js +355 -355
  86. package/lib/node/process/process-task.d.ts +26 -26
  87. package/lib/node/process/process-task.js +135 -135
  88. package/lib/node/process/process-task.spec.d.ts +1 -1
  89. package/lib/node/process/process-task.spec.js +29 -29
  90. package/lib/node/task-abstract-line-matcher.d.ts +49 -49
  91. package/lib/node/task-abstract-line-matcher.js +273 -273
  92. package/lib/node/task-backend-application-contribution.d.ts +8 -8
  93. package/lib/node/task-backend-application-contribution.js +48 -48
  94. package/lib/node/task-backend-module.d.ts +3 -3
  95. package/lib/node/task-backend-module.js +50 -50
  96. package/lib/node/task-line-matchers.d.ts +27 -27
  97. package/lib/node/task-line-matchers.js +121 -121
  98. package/lib/node/task-manager.d.ts +55 -55
  99. package/lib/node/task-manager.js +135 -135
  100. package/lib/node/task-problem-collector.d.ts +10 -10
  101. package/lib/node/task-problem-collector.js +57 -57
  102. package/lib/node/task-problem-collector.spec.d.ts +1 -1
  103. package/lib/node/task-problem-collector.spec.js +310 -310
  104. package/lib/node/task-runner-protocol.d.ts +16 -16
  105. package/lib/node/task-runner-protocol.js +19 -19
  106. package/lib/node/task-runner.d.ts +50 -50
  107. package/lib/node/task-runner.js +97 -97
  108. package/lib/node/task-server.d.ts +39 -39
  109. package/lib/node/task-server.js +237 -237
  110. package/lib/node/task-server.slow-spec.d.ts +1 -1
  111. package/lib/node/task-server.slow-spec.js +395 -395
  112. package/lib/node/task.d.ts +50 -50
  113. package/lib/node/task.js +77 -77
  114. package/lib/node/test/task-test-container.d.ts +2 -2
  115. package/lib/node/test/task-test-container.js +58 -58
  116. package/package.json +14 -14
  117. package/src/browser/index.ts +22 -22
  118. package/src/browser/process/process-task-contribution.ts +31 -31
  119. package/src/browser/process/process-task-frontend-module.ts +27 -27
  120. package/src/browser/process/process-task-resolver.ts +89 -89
  121. package/src/browser/provided-task-configurations.spec.ts +46 -46
  122. package/src/browser/provided-task-configurations.ts +213 -213
  123. package/src/browser/quick-open-task.ts +831 -827
  124. package/src/browser/style/index.css +19 -19
  125. package/src/browser/task-configuration-manager.ts +256 -256
  126. package/src/browser/task-configuration-model.ts +101 -101
  127. package/src/browser/task-configurations.ts +508 -508
  128. package/src/browser/task-contribution.ts +266 -266
  129. package/src/browser/task-definition-registry.spec.ts +203 -203
  130. package/src/browser/task-definition-registry.ts +131 -131
  131. package/src/browser/task-frontend-contribution.ts +402 -402
  132. package/src/browser/task-frontend-module.ts +86 -86
  133. package/src/browser/task-name-resolver.ts +55 -55
  134. package/src/browser/task-node.ts +37 -37
  135. package/src/browser/task-preferences.ts +40 -40
  136. package/src/browser/task-problem-matcher-registry.ts +308 -308
  137. package/src/browser/task-problem-pattern-registry.ts +196 -196
  138. package/src/browser/task-schema-updater.ts +701 -701
  139. package/src/browser/task-service.ts +1164 -1164
  140. package/src/browser/task-source-resolver.ts +36 -36
  141. package/src/browser/task-templates.ts +168 -168
  142. package/src/browser/task-terminal-widget-manager.ts +224 -224
  143. package/src/browser/tasks-monaco-contribution.ts +27 -27
  144. package/src/common/index.ts +20 -20
  145. package/src/common/problem-matcher-protocol.ts +234 -234
  146. package/src/common/process/task-protocol.ts +97 -97
  147. package/src/common/task-common-module.ts +34 -34
  148. package/src/common/task-protocol.ts +317 -317
  149. package/src/common/task-util.ts +43 -43
  150. package/src/common/task-watcher.ts +78 -78
  151. package/src/node/custom/custom-task-runner-backend-module.ts +37 -37
  152. package/src/node/custom/custom-task-runner-contribution.ts +30 -30
  153. package/src/node/custom/custom-task-runner.ts +60 -60
  154. package/src/node/custom/custom-task.ts +73 -73
  155. package/src/node/index.ts +19 -19
  156. package/src/node/process/process-task-runner-backend-module.ts +37 -37
  157. package/src/node/process/process-task-runner-contribution.ts +31 -31
  158. package/src/node/process/process-task-runner.ts +371 -371
  159. package/src/node/process/process-task.spec.ts +30 -30
  160. package/src/node/process/process-task.ts +144 -144
  161. package/src/node/task-abstract-line-matcher.ts +312 -312
  162. package/src/node/task-backend-application-contribution.ts +36 -36
  163. package/src/node/task-backend-module.ts +57 -57
  164. package/src/node/task-line-matchers.ts +127 -127
  165. package/src/node/task-manager.ts +129 -129
  166. package/src/node/task-problem-collector.spec.ts +338 -338
  167. package/src/node/task-problem-collector.ts +62 -62
  168. package/src/node/task-runner-protocol.ts +33 -33
  169. package/src/node/task-runner.ts +96 -96
  170. package/src/node/task-server.slow-spec.ts +444 -444
  171. package/src/node/task-server.ts +263 -263
  172. package/src/node/task.ts +103 -103
  173. package/src/node/test/task-test-container.ts +63 -63
@@ -1,280 +1,280 @@
1
- import { ApplicationShell, FrontendApplication, QuickPickValue, WidgetManager } from '@theia/core/lib/browser';
2
- import { OpenerService } from '@theia/core/lib/browser/opener-service';
3
- import { CommandService, ILogger } from '@theia/core/lib/common';
4
- import { MessageService } from '@theia/core/lib/common/message-service';
5
- import { Deferred } from '@theia/core/lib/common/promise-util';
6
- import { QuickPickItemOrSeparator, QuickPickService } from '@theia/core/lib/common/quick-pick-service';
7
- import { LabelProvider } from '@theia/core/lib/browser/label-provider';
8
- import { EditorManager } from '@theia/editor/lib/browser';
9
- import { ProblemManager } from '@theia/markers/lib/browser/problem/problem-manager';
10
- import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
11
- import { VariableResolverService } from '@theia/variable-resolver/lib/browser';
12
- import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
13
- import { NamedProblemMatcher, ProblemMatcher, RunTaskOption, TaskConfiguration, TaskConfigurationScope, TaskCustomization, TaskIdentifier, TaskInfo, TaskServer } from '../common';
14
- import { TaskWatcher } from '../common/task-watcher';
15
- import { ProvidedTaskConfigurations } from './provided-task-configurations';
16
- import { TaskConfigurationClient, TaskConfigurations } from './task-configurations';
17
- import { TaskResolverRegistry } from './task-contribution';
18
- import { TaskDefinitionRegistry } from './task-definition-registry';
19
- import { TaskNameResolver } from './task-name-resolver';
20
- import { TaskSourceResolver } from './task-source-resolver';
21
- import { ProblemMatcherRegistry } from './task-problem-matcher-registry';
22
- import { TaskSchemaUpdater } from './task-schema-updater';
23
- import { TaskConfigurationManager } from './task-configuration-manager';
24
- import { TaskNode } from './task-node';
25
- import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
26
- import { TaskTerminalWidgetManager } from './task-terminal-widget-manager';
27
- import { ShellTerminalServerProxy } from '@theia/terminal/lib/common/shell-terminal-protocol';
28
- import { Mutex } from 'async-mutex';
29
- export interface QuickPickProblemMatcherItem {
30
- problemMatchers: NamedProblemMatcher[] | undefined;
31
- learnMore?: boolean;
32
- }
33
- interface TaskGraphNode {
34
- taskConfiguration: TaskConfiguration;
35
- node: TaskNode;
36
- }
37
- export declare enum TaskEndedTypes {
38
- TaskExited = 0,
39
- BackgroundTaskEnded = 1
40
- }
41
- export interface TaskEndedInfo {
42
- taskEndedType: TaskEndedTypes;
43
- value: number | boolean | undefined;
44
- }
45
- export interface LastRunTaskInfo {
46
- resolvedTask?: TaskConfiguration;
47
- option?: RunTaskOption;
48
- }
49
- export declare class TaskService implements TaskConfigurationClient {
50
- /**
51
- * The last executed task.
52
- */
53
- protected lastTask: LastRunTaskInfo;
54
- protected cachedRecentTasks: TaskConfiguration[];
55
- protected runningTasks: Map<number, {
56
- exitCode: Deferred<number | undefined>;
57
- terminateSignal: Deferred<string | undefined>;
58
- isBackgroundTaskEnded: Deferred<boolean | undefined>;
59
- }>;
60
- protected taskStartingLock: Mutex;
61
- protected readonly app: FrontendApplication;
62
- protected readonly shell: ApplicationShell;
63
- protected readonly taskServer: TaskServer;
64
- protected readonly logger: ILogger;
65
- protected readonly widgetManager: WidgetManager;
66
- protected readonly taskWatcher: TaskWatcher;
67
- protected readonly messageService: MessageService;
68
- protected readonly workspaceService: WorkspaceService;
69
- protected readonly taskConfigurations: TaskConfigurations;
70
- protected readonly providedTaskConfigurations: ProvidedTaskConfigurations;
71
- protected readonly variableResolverService: VariableResolverService;
72
- protected readonly taskResolverRegistry: TaskResolverRegistry;
73
- protected readonly terminalService: TerminalService;
74
- protected readonly editorManager: EditorManager;
75
- protected readonly problemManager: ProblemManager;
76
- protected readonly taskDefinitionRegistry: TaskDefinitionRegistry;
77
- protected readonly problemMatcherRegistry: ProblemMatcherRegistry;
78
- protected readonly quickPickService: QuickPickService;
79
- protected readonly openerService: OpenerService;
80
- protected readonly shellTerminalServer: ShellTerminalServerProxy;
81
- protected readonly taskNameResolver: TaskNameResolver;
82
- protected readonly taskSourceResolver: TaskSourceResolver;
83
- protected readonly taskSchemaUpdater: TaskSchemaUpdater;
84
- protected readonly taskConfigurationManager: TaskConfigurationManager;
85
- protected readonly commands: CommandService;
86
- protected readonly labelProvider: LabelProvider;
87
- protected monacoWorkspace: MonacoWorkspace;
88
- protected readonly taskTerminalWidgetManager: TaskTerminalWidgetManager;
89
- protected init(): void;
90
- protected getTaskIdentifier(taskConfig: TaskConfiguration): string;
91
- /**
92
- * Client should call this method to indicate that a new user-level action related to tasks has been started,
93
- * like invoking "Run Task..."
94
- * This method returns a token that can be used with various methods in this service.
95
- * As long as a client uses the same token, task providers will only asked once to contribute
96
- * tasks and the set of tasks will be cached. Each time the a new token is used, the cache of
97
- * contributed tasks is cleared.
98
- * @returns a token to be used for task-related actions
99
- */
100
- startUserAction(): number;
101
- /**
102
- * Returns an array of the task configurations configured in tasks.json and provided by the extensions.
103
- * @param token The cache token for the user interaction in progress
104
- */
105
- getTasks(token: number): Promise<TaskConfiguration[]>;
106
- /**
107
- * Returns an array of the valid task configurations which are configured in tasks.json files
108
- * @param token The cache token for the user interaction in progress
109
- *
110
- */
111
- getConfiguredTasks(token: number): Promise<TaskConfiguration[]>;
112
- /**
113
- * Returns an array that contains the task configurations provided by the task providers for the specified task type.
114
- * @param token The cache token for the user interaction in progress
115
- * @param type The task type (filter) associated to the returning TaskConfigurations
116
- *
117
- * '*' indicates all tasks regardless of the type
118
- */
119
- getProvidedTasks(token: number, type?: string): Promise<TaskConfiguration[]>;
120
- addRecentTasks(tasks: TaskConfiguration | TaskConfiguration[]): void;
121
- get recentTasks(): TaskConfiguration[];
122
- set recentTasks(recent: TaskConfiguration[]);
123
- /**
124
- * Clears the list of recently used tasks.
125
- */
126
- clearRecentTasks(): void;
127
- /**
128
- * Open user ser
129
- */
130
- openUserTasks(): Promise<void>;
131
- /**
132
- * Returns a task configuration provided by an extension by task source, scope and label.
133
- * If there are no task configuration, returns undefined.
134
- * @param token The cache token for the user interaction in progress
135
- * @param source The source for configured tasks
136
- * @param label The label of the task to find
137
- * @param scope The task scope to look in
138
- */
139
- getProvidedTask(token: number, source: string, label: string, scope: TaskConfigurationScope): Promise<TaskConfiguration | undefined>;
140
- /** Returns an array of running tasks 'TaskInfo' objects */
141
- getRunningTasks(): Promise<TaskInfo[]>;
142
- customExecutionComplete(id: number, exitCode: number | undefined): Promise<void>;
143
- /** Returns an array of task types that are registered, including the default types */
144
- getRegisteredTaskTypes(): Promise<string[]>;
145
- /**
146
- * Get the last executed task.
147
- *
148
- * @returns the last executed task or `undefined`.
149
- */
150
- getLastTask(): LastRunTaskInfo;
151
- /**
152
- * Runs a task, by task configuration label.
153
- * Note, it looks for a task configured in tasks.json only.
154
- * @param token The cache token for the user interaction in progress
155
- * @param scope The scope where to look for tasks
156
- * @param taskLabel the label to look for
157
- */
158
- runConfiguredTask(token: number, scope: TaskConfigurationScope, taskLabel: string): Promise<void>;
159
- /**
160
- * Run the last executed task.
161
- * @param token The cache token for the user interaction in progress
162
- */
163
- runLastTask(token: number): Promise<TaskInfo | undefined>;
164
- /**
165
- * Runs a task, by the source and label of the task configuration.
166
- * It looks for configured and detected tasks.
167
- * @param token The cache token for the user interaction in progress
168
- * @param source The source for configured tasks
169
- * @param taskLabel The label to look for
170
- * @param scope The scope where to look for tasks
171
- */
172
- run(token: number, source: string, taskLabel: string, scope: TaskConfigurationScope): Promise<TaskInfo | undefined>;
173
- /**
174
- * Runs a compound task
175
- * @param token The cache token for the user interaction in progress
176
- * @param task The task to be executed
177
- * @param option options for executing the task
178
- */
179
- runCompoundTask(token: number, task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
180
- /**
181
- * A recursive function that runs a task and all its sub tasks that it depends on.
182
- * A task can be executed only when all of its dependencies have been executed, or when it doesn’t have any dependencies at all.
183
- */
184
- runTasksGraph(task: TaskConfiguration, tasks: TaskConfiguration[], option?: RunTaskOption): Promise<TaskInfo | undefined>;
185
- /**
186
- * Creates a graph of dependencies tasks from the root task and verify there is no DAG (Directed Acyclic Graph).
187
- * In case of detection of a circular dependency, an error is thrown with a message which describes the detected circular reference.
188
- */
189
- detectDirectedAcyclicGraph(task: TaskConfiguration, taskNode: TaskNode, tasks: TaskConfiguration[]): void;
190
- createChildTaskNode(task: TaskConfiguration, taskNode: TaskNode, childTaskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskGraphNode;
191
- /**
192
- * Gets task configuration by task label or by a JSON object which represents a task identifier
193
- *
194
- * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
195
- * @param tasks an array of the task configurations
196
- * @returns the correct TaskConfiguration object which matches the taskIdentifier
197
- */
198
- getDependentTask(taskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
199
- /**
200
- * Gets the matched task from an array of task configurations by TaskIdentifier.
201
- * In case that more than one task configuration matches, we returns the first one.
202
- *
203
- * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
204
- * @param tasks An array of task configurations.
205
- * @returns The correct TaskConfiguration object which matches the taskIdentifier.
206
- */
207
- getTaskByTaskIdentifier(taskIdentifier: TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
208
- runTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
209
- /**
210
- * Terminates a task that is actively running.
211
- * @param activeTaskInfo the TaskInfo of the task that is actively running
212
- */
213
- terminateTask(activeTaskInfo: TaskInfo): Promise<void>;
214
- /**
215
- * Terminates a task that is actively running, and restarts it.
216
- * @param activeTaskInfo the TaskInfo of the task that is actively running
217
- */
218
- restartTask(activeTaskInfo: TaskInfo, option?: RunTaskOption): Promise<TaskInfo | undefined>;
219
- protected doRunTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
220
- /**
221
- * Runs the first task with the given label.
222
- *
223
- * @param token The cache token for the user interaction in progress
224
- * @param taskLabel The label of the task to be executed
225
- */
226
- runTaskByLabel(token: number, taskLabel: string): Promise<TaskInfo | undefined>;
227
- /**
228
- * Runs a task identified by the given identifier, but only if found in the given workspace folder
229
- *
230
- * @param token The cache token for the user interaction in progress
231
- * @param workspaceFolderUri The folder to restrict the search to
232
- * @param taskIdentifier The identifier to look for
233
- */
234
- runWorkspaceTask(token: number, workspaceFolderUri: string | undefined, taskIdentifier: string | TaskIdentifier): Promise<TaskInfo | undefined>;
235
- /**
236
- * Updates the task configuration in the `tasks.json`.
237
- * The task config, together with updates, will be written into the `tasks.json` if it is not found in the file.
238
- *
239
- * @param token The cache token for the user interaction in progress
240
- * @param task task that the updates will be applied to
241
- * @param update the updates to be applied
242
- */
243
- updateTaskConfiguration(token: number, task: TaskConfiguration, update: {
244
- [name: string]: any;
245
- }): Promise<void>;
246
- protected getWorkspaceTasks(token: number, restrictToFolder: TaskConfigurationScope | undefined): Promise<TaskConfiguration[]>;
247
- protected resolveProblemMatchers(task: TaskConfiguration, customizationObject: TaskCustomization): Promise<ProblemMatcher[] | undefined>;
248
- protected getTaskCustomization(task: TaskConfiguration): Promise<TaskCustomization>;
249
- protected removeProblemMarkers(option?: RunTaskOption): Promise<void>;
250
- /**
251
- * Runs the resolved task and opens terminal widget if the task is based on a terminal process
252
- * @param resolvedTask the resolved task
253
- * @param option options to run the resolved task
254
- */
255
- protected runResolvedTask(resolvedTask: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
256
- protected getCustomizeProblemMatcherItems(): Array<QuickPickValue<QuickPickProblemMatcherItem> | QuickPickItemOrSeparator>;
257
- /**
258
- * Run selected text in the last active terminal.
259
- */
260
- runSelectedText(): Promise<void>;
261
- attach(terminalId: number, taskInfo: TaskInfo): Promise<number | void>;
262
- protected getTerminalWidgetId(terminalId: number): string | undefined;
263
- /**
264
- * Opens an editor to configure the given task.
265
- *
266
- * @param token The cache token for the user interaction in progress
267
- * @param task The task to configure
268
- */
269
- configure(token: number, task: TaskConfiguration): Promise<void>;
270
- protected isEventForThisClient(context: string | undefined): boolean;
271
- taskConfigurationChanged(event: string[]): void;
272
- protected getContext(): string | undefined;
273
- /** Kill task for a given id if task is found */
274
- kill(id: number): Promise<void>;
275
- isBackgroundTaskEnded(id: number): Promise<boolean | undefined>;
276
- getExitCode(id: number): Promise<number | undefined>;
277
- getTerminateSignal(id: number): Promise<string | undefined>;
278
- }
279
- export {};
1
+ import { ApplicationShell, FrontendApplication, QuickPickValue, WidgetManager } from '@theia/core/lib/browser';
2
+ import { OpenerService } from '@theia/core/lib/browser/opener-service';
3
+ import { CommandService, ILogger } from '@theia/core/lib/common';
4
+ import { MessageService } from '@theia/core/lib/common/message-service';
5
+ import { Deferred } from '@theia/core/lib/common/promise-util';
6
+ import { QuickPickItemOrSeparator, QuickPickService } from '@theia/core/lib/common/quick-pick-service';
7
+ import { LabelProvider } from '@theia/core/lib/browser/label-provider';
8
+ import { EditorManager } from '@theia/editor/lib/browser';
9
+ import { ProblemManager } from '@theia/markers/lib/browser/problem/problem-manager';
10
+ import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
11
+ import { VariableResolverService } from '@theia/variable-resolver/lib/browser';
12
+ import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
13
+ import { NamedProblemMatcher, ProblemMatcher, RunTaskOption, TaskConfiguration, TaskConfigurationScope, TaskCustomization, TaskIdentifier, TaskInfo, TaskServer } from '../common';
14
+ import { TaskWatcher } from '../common/task-watcher';
15
+ import { ProvidedTaskConfigurations } from './provided-task-configurations';
16
+ import { TaskConfigurationClient, TaskConfigurations } from './task-configurations';
17
+ import { TaskResolverRegistry } from './task-contribution';
18
+ import { TaskDefinitionRegistry } from './task-definition-registry';
19
+ import { TaskNameResolver } from './task-name-resolver';
20
+ import { TaskSourceResolver } from './task-source-resolver';
21
+ import { ProblemMatcherRegistry } from './task-problem-matcher-registry';
22
+ import { TaskSchemaUpdater } from './task-schema-updater';
23
+ import { TaskConfigurationManager } from './task-configuration-manager';
24
+ import { TaskNode } from './task-node';
25
+ import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
26
+ import { TaskTerminalWidgetManager } from './task-terminal-widget-manager';
27
+ import { ShellTerminalServerProxy } from '@theia/terminal/lib/common/shell-terminal-protocol';
28
+ import { Mutex } from 'async-mutex';
29
+ export interface QuickPickProblemMatcherItem {
30
+ problemMatchers: NamedProblemMatcher[] | undefined;
31
+ learnMore?: boolean;
32
+ }
33
+ interface TaskGraphNode {
34
+ taskConfiguration: TaskConfiguration;
35
+ node: TaskNode;
36
+ }
37
+ export declare enum TaskEndedTypes {
38
+ TaskExited = 0,
39
+ BackgroundTaskEnded = 1
40
+ }
41
+ export interface TaskEndedInfo {
42
+ taskEndedType: TaskEndedTypes;
43
+ value: number | boolean | undefined;
44
+ }
45
+ export interface LastRunTaskInfo {
46
+ resolvedTask?: TaskConfiguration;
47
+ option?: RunTaskOption;
48
+ }
49
+ export declare class TaskService implements TaskConfigurationClient {
50
+ /**
51
+ * The last executed task.
52
+ */
53
+ protected lastTask: LastRunTaskInfo;
54
+ protected cachedRecentTasks: TaskConfiguration[];
55
+ protected runningTasks: Map<number, {
56
+ exitCode: Deferred<number | undefined>;
57
+ terminateSignal: Deferred<string | undefined>;
58
+ isBackgroundTaskEnded: Deferred<boolean | undefined>;
59
+ }>;
60
+ protected taskStartingLock: Mutex;
61
+ protected readonly app: FrontendApplication;
62
+ protected readonly shell: ApplicationShell;
63
+ protected readonly taskServer: TaskServer;
64
+ protected readonly logger: ILogger;
65
+ protected readonly widgetManager: WidgetManager;
66
+ protected readonly taskWatcher: TaskWatcher;
67
+ protected readonly messageService: MessageService;
68
+ protected readonly workspaceService: WorkspaceService;
69
+ protected readonly taskConfigurations: TaskConfigurations;
70
+ protected readonly providedTaskConfigurations: ProvidedTaskConfigurations;
71
+ protected readonly variableResolverService: VariableResolverService;
72
+ protected readonly taskResolverRegistry: TaskResolverRegistry;
73
+ protected readonly terminalService: TerminalService;
74
+ protected readonly editorManager: EditorManager;
75
+ protected readonly problemManager: ProblemManager;
76
+ protected readonly taskDefinitionRegistry: TaskDefinitionRegistry;
77
+ protected readonly problemMatcherRegistry: ProblemMatcherRegistry;
78
+ protected readonly quickPickService: QuickPickService;
79
+ protected readonly openerService: OpenerService;
80
+ protected readonly shellTerminalServer: ShellTerminalServerProxy;
81
+ protected readonly taskNameResolver: TaskNameResolver;
82
+ protected readonly taskSourceResolver: TaskSourceResolver;
83
+ protected readonly taskSchemaUpdater: TaskSchemaUpdater;
84
+ protected readonly taskConfigurationManager: TaskConfigurationManager;
85
+ protected readonly commands: CommandService;
86
+ protected readonly labelProvider: LabelProvider;
87
+ protected monacoWorkspace: MonacoWorkspace;
88
+ protected readonly taskTerminalWidgetManager: TaskTerminalWidgetManager;
89
+ protected init(): void;
90
+ protected getTaskIdentifier(taskConfig: TaskConfiguration): string;
91
+ /**
92
+ * Client should call this method to indicate that a new user-level action related to tasks has been started,
93
+ * like invoking "Run Task..."
94
+ * This method returns a token that can be used with various methods in this service.
95
+ * As long as a client uses the same token, task providers will only asked once to contribute
96
+ * tasks and the set of tasks will be cached. Each time the a new token is used, the cache of
97
+ * contributed tasks is cleared.
98
+ * @returns a token to be used for task-related actions
99
+ */
100
+ startUserAction(): number;
101
+ /**
102
+ * Returns an array of the task configurations configured in tasks.json and provided by the extensions.
103
+ * @param token The cache token for the user interaction in progress
104
+ */
105
+ getTasks(token: number): Promise<TaskConfiguration[]>;
106
+ /**
107
+ * Returns an array of the valid task configurations which are configured in tasks.json files
108
+ * @param token The cache token for the user interaction in progress
109
+ *
110
+ */
111
+ getConfiguredTasks(token: number): Promise<TaskConfiguration[]>;
112
+ /**
113
+ * Returns an array that contains the task configurations provided by the task providers for the specified task type.
114
+ * @param token The cache token for the user interaction in progress
115
+ * @param type The task type (filter) associated to the returning TaskConfigurations
116
+ *
117
+ * '*' indicates all tasks regardless of the type
118
+ */
119
+ getProvidedTasks(token: number, type?: string): Promise<TaskConfiguration[]>;
120
+ addRecentTasks(tasks: TaskConfiguration | TaskConfiguration[]): void;
121
+ get recentTasks(): TaskConfiguration[];
122
+ set recentTasks(recent: TaskConfiguration[]);
123
+ /**
124
+ * Clears the list of recently used tasks.
125
+ */
126
+ clearRecentTasks(): void;
127
+ /**
128
+ * Open user ser
129
+ */
130
+ openUserTasks(): Promise<void>;
131
+ /**
132
+ * Returns a task configuration provided by an extension by task source, scope and label.
133
+ * If there are no task configuration, returns undefined.
134
+ * @param token The cache token for the user interaction in progress
135
+ * @param source The source for configured tasks
136
+ * @param label The label of the task to find
137
+ * @param scope The task scope to look in
138
+ */
139
+ getProvidedTask(token: number, source: string, label: string, scope: TaskConfigurationScope): Promise<TaskConfiguration | undefined>;
140
+ /** Returns an array of running tasks 'TaskInfo' objects */
141
+ getRunningTasks(): Promise<TaskInfo[]>;
142
+ customExecutionComplete(id: number, exitCode: number | undefined): Promise<void>;
143
+ /** Returns an array of task types that are registered, including the default types */
144
+ getRegisteredTaskTypes(): Promise<string[]>;
145
+ /**
146
+ * Get the last executed task.
147
+ *
148
+ * @returns the last executed task or `undefined`.
149
+ */
150
+ getLastTask(): LastRunTaskInfo;
151
+ /**
152
+ * Runs a task, by task configuration label.
153
+ * Note, it looks for a task configured in tasks.json only.
154
+ * @param token The cache token for the user interaction in progress
155
+ * @param scope The scope where to look for tasks
156
+ * @param taskLabel the label to look for
157
+ */
158
+ runConfiguredTask(token: number, scope: TaskConfigurationScope, taskLabel: string): Promise<void>;
159
+ /**
160
+ * Run the last executed task.
161
+ * @param token The cache token for the user interaction in progress
162
+ */
163
+ runLastTask(token: number): Promise<TaskInfo | undefined>;
164
+ /**
165
+ * Runs a task, by the source and label of the task configuration.
166
+ * It looks for configured and detected tasks.
167
+ * @param token The cache token for the user interaction in progress
168
+ * @param source The source for configured tasks
169
+ * @param taskLabel The label to look for
170
+ * @param scope The scope where to look for tasks
171
+ */
172
+ run(token: number, source: string, taskLabel: string, scope: TaskConfigurationScope): Promise<TaskInfo | undefined>;
173
+ /**
174
+ * Runs a compound task
175
+ * @param token The cache token for the user interaction in progress
176
+ * @param task The task to be executed
177
+ * @param option options for executing the task
178
+ */
179
+ runCompoundTask(token: number, task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
180
+ /**
181
+ * A recursive function that runs a task and all its sub tasks that it depends on.
182
+ * A task can be executed only when all of its dependencies have been executed, or when it doesn’t have any dependencies at all.
183
+ */
184
+ runTasksGraph(task: TaskConfiguration, tasks: TaskConfiguration[], option?: RunTaskOption): Promise<TaskInfo | undefined>;
185
+ /**
186
+ * Creates a graph of dependencies tasks from the root task and verify there is no DAG (Directed Acyclic Graph).
187
+ * In case of detection of a circular dependency, an error is thrown with a message which describes the detected circular reference.
188
+ */
189
+ detectDirectedAcyclicGraph(task: TaskConfiguration, taskNode: TaskNode, tasks: TaskConfiguration[]): void;
190
+ createChildTaskNode(task: TaskConfiguration, taskNode: TaskNode, childTaskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskGraphNode;
191
+ /**
192
+ * Gets task configuration by task label or by a JSON object which represents a task identifier
193
+ *
194
+ * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
195
+ * @param tasks an array of the task configurations
196
+ * @returns the correct TaskConfiguration object which matches the taskIdentifier
197
+ */
198
+ getDependentTask(taskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
199
+ /**
200
+ * Gets the matched task from an array of task configurations by TaskIdentifier.
201
+ * In case that more than one task configuration matches, we returns the first one.
202
+ *
203
+ * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
204
+ * @param tasks An array of task configurations.
205
+ * @returns The correct TaskConfiguration object which matches the taskIdentifier.
206
+ */
207
+ getTaskByTaskIdentifier(taskIdentifier: TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
208
+ runTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
209
+ /**
210
+ * Terminates a task that is actively running.
211
+ * @param activeTaskInfo the TaskInfo of the task that is actively running
212
+ */
213
+ terminateTask(activeTaskInfo: TaskInfo): Promise<void>;
214
+ /**
215
+ * Terminates a task that is actively running, and restarts it.
216
+ * @param activeTaskInfo the TaskInfo of the task that is actively running
217
+ */
218
+ restartTask(activeTaskInfo: TaskInfo, option?: RunTaskOption): Promise<TaskInfo | undefined>;
219
+ protected doRunTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
220
+ /**
221
+ * Runs the first task with the given label.
222
+ *
223
+ * @param token The cache token for the user interaction in progress
224
+ * @param taskLabel The label of the task to be executed
225
+ */
226
+ runTaskByLabel(token: number, taskLabel: string): Promise<TaskInfo | undefined>;
227
+ /**
228
+ * Runs a task identified by the given identifier, but only if found in the given workspace folder
229
+ *
230
+ * @param token The cache token for the user interaction in progress
231
+ * @param workspaceFolderUri The folder to restrict the search to
232
+ * @param taskIdentifier The identifier to look for
233
+ */
234
+ runWorkspaceTask(token: number, workspaceFolderUri: string | undefined, taskIdentifier: string | TaskIdentifier): Promise<TaskInfo | undefined>;
235
+ /**
236
+ * Updates the task configuration in the `tasks.json`.
237
+ * The task config, together with updates, will be written into the `tasks.json` if it is not found in the file.
238
+ *
239
+ * @param token The cache token for the user interaction in progress
240
+ * @param task task that the updates will be applied to
241
+ * @param update the updates to be applied
242
+ */
243
+ updateTaskConfiguration(token: number, task: TaskConfiguration, update: {
244
+ [name: string]: any;
245
+ }): Promise<void>;
246
+ protected getWorkspaceTasks(token: number, restrictToFolder: TaskConfigurationScope | undefined): Promise<TaskConfiguration[]>;
247
+ protected resolveProblemMatchers(task: TaskConfiguration, customizationObject: TaskCustomization): Promise<ProblemMatcher[] | undefined>;
248
+ protected getTaskCustomization(task: TaskConfiguration): Promise<TaskCustomization>;
249
+ protected removeProblemMarkers(option?: RunTaskOption): Promise<void>;
250
+ /**
251
+ * Runs the resolved task and opens terminal widget if the task is based on a terminal process
252
+ * @param resolvedTask the resolved task
253
+ * @param option options to run the resolved task
254
+ */
255
+ protected runResolvedTask(resolvedTask: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
256
+ protected getCustomizeProblemMatcherItems(): Array<QuickPickValue<QuickPickProblemMatcherItem> | QuickPickItemOrSeparator>;
257
+ /**
258
+ * Run selected text in the last active terminal.
259
+ */
260
+ runSelectedText(): Promise<void>;
261
+ attach(terminalId: number, taskInfo: TaskInfo): Promise<number | void>;
262
+ protected getTerminalWidgetId(terminalId: number): string | undefined;
263
+ /**
264
+ * Opens an editor to configure the given task.
265
+ *
266
+ * @param token The cache token for the user interaction in progress
267
+ * @param task The task to configure
268
+ */
269
+ configure(token: number, task: TaskConfiguration): Promise<void>;
270
+ protected isEventForThisClient(context: string | undefined): boolean;
271
+ taskConfigurationChanged(event: string[]): void;
272
+ protected getContext(): string | undefined;
273
+ /** Kill task for a given id if task is found */
274
+ kill(id: number): Promise<void>;
275
+ isBackgroundTaskEnded(id: number): Promise<boolean | undefined>;
276
+ getExitCode(id: number): Promise<number | undefined>;
277
+ getTerminateSignal(id: number): Promise<string | undefined>;
278
+ }
279
+ export {};
280
280
  //# sourceMappingURL=task-service.d.ts.map