@theia/task 1.34.2 → 1.34.3

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 (169) hide show
  1. package/LICENSE +641 -641
  2. package/README.md +193 -193
  3. package/lib/browser/index.d.ts +6 -6
  4. package/lib/browser/index.js +33 -33
  5. package/lib/browser/process/process-task-contribution.d.ts +6 -6
  6. package/lib/browser/process/process-task-contribution.js +43 -43
  7. package/lib/browser/process/process-task-frontend-module.d.ts +2 -2
  8. package/lib/browser/process/process-task-frontend-module.js +27 -27
  9. package/lib/browser/process/process-task-resolver.d.ts +17 -17
  10. package/lib/browser/process/process-task-resolver.js +93 -93
  11. package/lib/browser/provided-task-configurations.d.ts +32 -32
  12. package/lib/browser/provided-task-configurations.js +171 -171
  13. package/lib/browser/provided-task-configurations.spec.d.ts +1 -1
  14. package/lib/browser/provided-task-configurations.spec.js +43 -43
  15. package/lib/browser/quick-open-task.d.ts +129 -129
  16. package/lib/browser/quick-open-task.js +636 -636
  17. package/lib/browser/task-configuration-manager.d.ts +64 -64
  18. package/lib/browser/task-configuration-manager.js +261 -261
  19. package/lib/browser/task-configuration-model.d.ts +32 -32
  20. package/lib/browser/task-configuration-model.js +79 -79
  21. package/lib/browser/task-configurations.d.ts +127 -127
  22. package/lib/browser/task-configurations.js +479 -479
  23. package/lib/browser/task-contribution.d.ts +173 -173
  24. package/lib/browser/task-contribution.js +199 -199
  25. package/lib/browser/task-definition-registry.d.ts +38 -38
  26. package/lib/browser/task-definition-registry.js +131 -131
  27. package/lib/browser/task-definition-registry.spec.d.ts +1 -1
  28. package/lib/browser/task-definition-registry.spec.js +170 -170
  29. package/lib/browser/task-frontend-contribution.d.ts +56 -56
  30. package/lib/browser/task-frontend-contribution.js +353 -353
  31. package/lib/browser/task-frontend-module.d.ts +5 -5
  32. package/lib/browser/task-frontend-module.js +79 -79
  33. package/lib/browser/task-name-resolver.d.ts +13 -13
  34. package/lib/browser/task-name-resolver.js +65 -65
  35. package/lib/browser/task-node.d.ts +9 -9
  36. package/lib/browser/task-node.js +17 -17
  37. package/lib/browser/task-preferences.d.ts +4 -4
  38. package/lib/browser/task-preferences.js +40 -40
  39. package/lib/browser/task-problem-matcher-registry.d.ts +40 -40
  40. package/lib/browser/task-problem-matcher-registry.js +310 -310
  41. package/lib/browser/task-problem-pattern-registry.d.ts +23 -23
  42. package/lib/browser/task-problem-pattern-registry.js +208 -208
  43. package/lib/browser/task-schema-updater.d.ts +58 -58
  44. package/lib/browser/task-schema-updater.js +672 -672
  45. package/lib/browser/task-service.d.ts +276 -276
  46. package/lib/browser/task-service.js +1119 -1119
  47. package/lib/browser/task-source-resolver.d.ts +9 -9
  48. package/lib/browser/task-source-resolver.js +51 -51
  49. package/lib/browser/task-templates.d.ts +13 -13
  50. package/lib/browser/task-templates.js +161 -161
  51. package/lib/browser/task-terminal-widget-manager.d.ts +44 -44
  52. package/lib/browser/task-terminal-widget-manager.js +224 -224
  53. package/lib/browser/tasks-monaco-contribution.d.ts +1 -1
  54. package/lib/browser/tasks-monaco-contribution.js +27 -27
  55. package/lib/common/index.d.ts +3 -3
  56. package/lib/common/index.js +30 -30
  57. package/lib/common/problem-matcher-protocol.d.ts +124 -124
  58. package/lib/common/problem-matcher-protocol.js +132 -132
  59. package/lib/common/process/task-protocol.d.ts +68 -68
  60. package/lib/common/process/task-protocol.js +33 -33
  61. package/lib/common/task-common-module.d.ts +7 -7
  62. package/lib/common/task-common-module.js +33 -33
  63. package/lib/common/task-protocol.d.ts +190 -190
  64. package/lib/common/task-protocol.js +125 -125
  65. package/lib/common/task-watcher.d.ts +17 -17
  66. package/lib/common/task-watcher.js +86 -86
  67. package/lib/node/custom/custom-task-runner-backend-module.d.ts +2 -2
  68. package/lib/node/custom/custom-task-runner-backend-module.js +36 -36
  69. package/lib/node/custom/custom-task-runner-contribution.d.ts +6 -6
  70. package/lib/node/custom/custom-task-runner-contribution.js +42 -42
  71. package/lib/node/custom/custom-task-runner.d.ts +15 -15
  72. package/lib/node/custom/custom-task-runner.js +69 -69
  73. package/lib/node/custom/custom-task.d.ts +20 -20
  74. package/lib/node/custom/custom-task.js +78 -78
  75. package/lib/node/index.d.ts +3 -3
  76. package/lib/node/index.js +30 -30
  77. package/lib/node/process/process-task-runner-backend-module.d.ts +2 -2
  78. package/lib/node/process/process-task-runner-backend-module.js +36 -36
  79. package/lib/node/process/process-task-runner-contribution.d.ts +6 -6
  80. package/lib/node/process/process-task-runner-contribution.js +43 -43
  81. package/lib/node/process/process-task-runner.d.ts +60 -60
  82. package/lib/node/process/process-task-runner.js +352 -352
  83. package/lib/node/process/process-task.d.ts +26 -26
  84. package/lib/node/process/process-task.js +139 -139
  85. package/lib/node/process/process-task.spec.d.ts +1 -1
  86. package/lib/node/process/process-task.spec.js +29 -29
  87. package/lib/node/task-abstract-line-matcher.d.ts +49 -49
  88. package/lib/node/task-abstract-line-matcher.js +278 -278
  89. package/lib/node/task-backend-application-contribution.d.ts +8 -8
  90. package/lib/node/task-backend-application-contribution.js +48 -48
  91. package/lib/node/task-backend-module.d.ts +3 -3
  92. package/lib/node/task-backend-module.js +50 -50
  93. package/lib/node/task-line-matchers.d.ts +27 -27
  94. package/lib/node/task-line-matchers.js +121 -121
  95. package/lib/node/task-manager.d.ts +55 -55
  96. package/lib/node/task-manager.js +135 -135
  97. package/lib/node/task-problem-collector.d.ts +10 -10
  98. package/lib/node/task-problem-collector.js +57 -57
  99. package/lib/node/task-problem-collector.spec.d.ts +1 -1
  100. package/lib/node/task-problem-collector.spec.js +310 -310
  101. package/lib/node/task-runner-protocol.d.ts +16 -16
  102. package/lib/node/task-runner-protocol.js +19 -19
  103. package/lib/node/task-runner.d.ts +50 -50
  104. package/lib/node/task-runner.js +97 -97
  105. package/lib/node/task-server.d.ts +39 -39
  106. package/lib/node/task-server.js +237 -237
  107. package/lib/node/task-server.slow-spec.d.ts +1 -1
  108. package/lib/node/task-server.slow-spec.js +395 -395
  109. package/lib/node/task.d.ts +50 -50
  110. package/lib/node/task.js +77 -77
  111. package/lib/node/test/task-test-container.d.ts +2 -2
  112. package/lib/node/test/task-test-container.js +58 -58
  113. package/package.json +13 -13
  114. package/src/browser/index.ts +22 -22
  115. package/src/browser/process/process-task-contribution.ts +31 -31
  116. package/src/browser/process/process-task-frontend-module.ts +27 -27
  117. package/src/browser/process/process-task-resolver.ts +89 -89
  118. package/src/browser/provided-task-configurations.spec.ts +46 -46
  119. package/src/browser/provided-task-configurations.ts +170 -170
  120. package/src/browser/quick-open-task.ts +701 -701
  121. package/src/browser/style/index.css +19 -19
  122. package/src/browser/task-configuration-manager.ts +256 -256
  123. package/src/browser/task-configuration-model.ts +101 -101
  124. package/src/browser/task-configurations.ts +507 -507
  125. package/src/browser/task-contribution.ts +254 -254
  126. package/src/browser/task-definition-registry.spec.ts +203 -203
  127. package/src/browser/task-definition-registry.ts +128 -128
  128. package/src/browser/task-frontend-contribution.ts +396 -396
  129. package/src/browser/task-frontend-module.ts +86 -86
  130. package/src/browser/task-name-resolver.ts +55 -55
  131. package/src/browser/task-node.ts +37 -37
  132. package/src/browser/task-preferences.ts +40 -40
  133. package/src/browser/task-problem-matcher-registry.ts +308 -308
  134. package/src/browser/task-problem-pattern-registry.ts +195 -195
  135. package/src/browser/task-schema-updater.ts +703 -703
  136. package/src/browser/task-service.ts +1163 -1163
  137. package/src/browser/task-source-resolver.ts +36 -36
  138. package/src/browser/task-templates.ts +168 -168
  139. package/src/browser/task-terminal-widget-manager.ts +221 -221
  140. package/src/browser/tasks-monaco-contribution.ts +27 -27
  141. package/src/common/index.ts +19 -19
  142. package/src/common/problem-matcher-protocol.ts +235 -235
  143. package/src/common/process/task-protocol.ts +97 -97
  144. package/src/common/task-common-module.ts +34 -34
  145. package/src/common/task-protocol.ts +310 -310
  146. package/src/common/task-watcher.ts +78 -78
  147. package/src/node/custom/custom-task-runner-backend-module.ts +37 -37
  148. package/src/node/custom/custom-task-runner-contribution.ts +30 -30
  149. package/src/node/custom/custom-task-runner.ts +60 -60
  150. package/src/node/custom/custom-task.ts +73 -73
  151. package/src/node/index.ts +19 -19
  152. package/src/node/process/process-task-runner-backend-module.ts +37 -37
  153. package/src/node/process/process-task-runner-contribution.ts +31 -31
  154. package/src/node/process/process-task-runner.ts +371 -371
  155. package/src/node/process/process-task.spec.ts +30 -30
  156. package/src/node/process/process-task.ts +147 -147
  157. package/src/node/task-abstract-line-matcher.ts +317 -317
  158. package/src/node/task-backend-application-contribution.ts +36 -36
  159. package/src/node/task-backend-module.ts +57 -57
  160. package/src/node/task-line-matchers.ts +127 -127
  161. package/src/node/task-manager.ts +129 -129
  162. package/src/node/task-problem-collector.spec.ts +338 -338
  163. package/src/node/task-problem-collector.ts +62 -62
  164. package/src/node/task-runner-protocol.ts +33 -33
  165. package/src/node/task-runner.ts +96 -96
  166. package/src/node/task-server.slow-spec.ts +444 -444
  167. package/src/node/task-server.ts +263 -263
  168. package/src/node/task.ts +103 -103
  169. package/src/node/test/task-test-container.ts +63 -63
@@ -1,277 +1,277 @@
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 of the task configurations which are provided by the extensions.
114
- * @param token The cache token for the user interaction in progress
115
- */
116
- getProvidedTasks(token: number): Promise<TaskConfiguration[]>;
117
- addRecentTasks(tasks: TaskConfiguration | TaskConfiguration[]): void;
118
- get recentTasks(): TaskConfiguration[];
119
- set recentTasks(recent: TaskConfiguration[]);
120
- /**
121
- * Clears the list of recently used tasks.
122
- */
123
- clearRecentTasks(): void;
124
- /**
125
- * Open user ser
126
- */
127
- openUserTasks(): Promise<void>;
128
- /**
129
- * Returns a task configuration provided by an extension by task source, scope and label.
130
- * If there are no task configuration, returns undefined.
131
- * @param token The cache token for the user interaction in progress
132
- * @param source The source for configured tasks
133
- * @param label The label of the task to find
134
- * @param scope The task scope to look in
135
- */
136
- getProvidedTask(token: number, source: string, label: string, scope: TaskConfigurationScope): Promise<TaskConfiguration | undefined>;
137
- /** Returns an array of running tasks 'TaskInfo' objects */
138
- getRunningTasks(): Promise<TaskInfo[]>;
139
- customExecutionComplete(id: number, exitCode: number | undefined): Promise<void>;
140
- /** Returns an array of task types that are registered, including the default types */
141
- getRegisteredTaskTypes(): Promise<string[]>;
142
- /**
143
- * Get the last executed task.
144
- *
145
- * @returns the last executed task or `undefined`.
146
- */
147
- getLastTask(): LastRunTaskInfo;
148
- /**
149
- * Runs a task, by task configuration label.
150
- * Note, it looks for a task configured in tasks.json only.
151
- * @param token The cache token for the user interaction in progress
152
- * @param scope The scope where to look for tasks
153
- * @param taskLabel the label to look for
154
- */
155
- runConfiguredTask(token: number, scope: TaskConfigurationScope, taskLabel: string): Promise<void>;
156
- /**
157
- * Run the last executed task.
158
- * @param token The cache token for the user interaction in progress
159
- */
160
- runLastTask(token: number): Promise<TaskInfo | undefined>;
161
- /**
162
- * Runs a task, by the source and label of the task configuration.
163
- * It looks for configured and detected tasks.
164
- * @param token The cache token for the user interaction in progress
165
- * @param source The source for configured tasks
166
- * @param taskLabel The label to look for
167
- * @param scope The scope where to look for tasks
168
- */
169
- run(token: number, source: string, taskLabel: string, scope: TaskConfigurationScope): Promise<TaskInfo | undefined>;
170
- /**
171
- * Runs a compound task
172
- * @param token The cache token for the user interaction in progress
173
- * @param task The task to be executed
174
- * @param option options for executing the task
175
- */
176
- runCompoundTask(token: number, task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
177
- /**
178
- * A recursive function that runs a task and all its sub tasks that it depends on.
179
- * A task can be executed only when all of its dependencies have been executed, or when it doesn’t have any dependencies at all.
180
- */
181
- runTasksGraph(task: TaskConfiguration, tasks: TaskConfiguration[], option?: RunTaskOption): Promise<TaskInfo | undefined>;
182
- /**
183
- * Creates a graph of dependencies tasks from the root task and verify there is no DAG (Directed Acyclic Graph).
184
- * In case of detection of a circular dependency, an error is thrown with a message which describes the detected circular reference.
185
- */
186
- detectDirectedAcyclicGraph(task: TaskConfiguration, taskNode: TaskNode, tasks: TaskConfiguration[]): void;
187
- createChildTaskNode(task: TaskConfiguration, taskNode: TaskNode, childTaskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskGraphNode;
188
- /**
189
- * Gets task configuration by task label or by a JSON object which represents a task identifier
190
- *
191
- * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
192
- * @param tasks an array of the task configurations
193
- * @returns the correct TaskConfiguration object which matches the taskIdentifier
194
- */
195
- getDependentTask(taskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
196
- /**
197
- * Gets the matched task from an array of task configurations by TaskIdentifier.
198
- * In case that more than one task configuration matches, we returns the first one.
199
- *
200
- * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
201
- * @param tasks An array of task configurations.
202
- * @returns The correct TaskConfiguration object which matches the taskIdentifier.
203
- */
204
- getTaskByTaskIdentifier(taskIdentifier: TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
205
- runTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
206
- /**
207
- * Terminates a task that is actively running.
208
- * @param activeTaskInfo the TaskInfo of the task that is actively running
209
- */
210
- terminateTask(activeTaskInfo: TaskInfo): Promise<void>;
211
- /**
212
- * Terminates a task that is actively running, and restarts it.
213
- * @param activeTaskInfo the TaskInfo of the task that is actively running
214
- */
215
- restartTask(activeTaskInfo: TaskInfo, option?: RunTaskOption): Promise<TaskInfo | undefined>;
216
- protected doRunTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
217
- /**
218
- * Runs the first task with the given label.
219
- *
220
- * @param token The cache token for the user interaction in progress
221
- * @param taskLabel The label of the task to be executed
222
- */
223
- runTaskByLabel(token: number, taskLabel: string): Promise<TaskInfo | undefined>;
224
- /**
225
- * Runs a task identified by the given identifier, but only if found in the given workspace folder
226
- *
227
- * @param token The cache token for the user interaction in progress
228
- * @param workspaceFolderUri The folder to restrict the search to
229
- * @param taskIdentifier The identifier to look for
230
- */
231
- runWorkspaceTask(token: number, workspaceFolderUri: string | undefined, taskIdentifier: string | TaskIdentifier): Promise<TaskInfo | undefined>;
232
- /**
233
- * Updates the task configuration in the `tasks.json`.
234
- * The task config, together with updates, will be written into the `tasks.json` if it is not found in the file.
235
- *
236
- * @param token The cache token for the user interaction in progress
237
- * @param task task that the updates will be applied to
238
- * @param update the updates to be applied
239
- */
240
- updateTaskConfiguration(token: number, task: TaskConfiguration, update: {
241
- [name: string]: any;
242
- }): Promise<void>;
243
- protected getWorkspaceTasks(token: number, restrictToFolder: TaskConfigurationScope | undefined): Promise<TaskConfiguration[]>;
244
- protected resolveProblemMatchers(task: TaskConfiguration, customizationObject: TaskCustomization): Promise<ProblemMatcher[] | undefined>;
245
- protected getTaskCustomization(task: TaskConfiguration): Promise<TaskCustomization>;
246
- protected removeProblemMarkers(option?: RunTaskOption): Promise<void>;
247
- /**
248
- * Runs the resolved task and opens terminal widget if the task is based on a terminal process
249
- * @param resolvedTask the resolved task
250
- * @param option options to run the resolved task
251
- */
252
- protected runResolvedTask(resolvedTask: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
253
- protected getCustomizeProblemMatcherItems(): Array<QuickPickValue<QuickPickProblemMatcherItem> | QuickPickItemOrSeparator>;
254
- /**
255
- * Run selected text in the last active terminal.
256
- */
257
- runSelectedText(): Promise<void>;
258
- attach(terminalId: number, taskInfo: TaskInfo): Promise<number | void>;
259
- protected getTerminalWidgetId(terminalId: number): string | undefined;
260
- /**
261
- * Opens an editor to configure the given task.
262
- *
263
- * @param token The cache token for the user interaction in progress
264
- * @param task The task to configure
265
- */
266
- configure(token: number, task: TaskConfiguration): Promise<void>;
267
- protected isEventForThisClient(context: string | undefined): boolean;
268
- taskConfigurationChanged(event: string[]): void;
269
- protected getContext(): string | undefined;
270
- /** Kill task for a given id if task is found */
271
- kill(id: number): Promise<void>;
272
- isBackgroundTaskEnded(id: number): Promise<boolean | undefined>;
273
- getExitCode(id: number): Promise<number | undefined>;
274
- getTerminateSignal(id: number): Promise<string | undefined>;
275
- }
276
- 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 of the task configurations which are provided by the extensions.
114
+ * @param token The cache token for the user interaction in progress
115
+ */
116
+ getProvidedTasks(token: number): Promise<TaskConfiguration[]>;
117
+ addRecentTasks(tasks: TaskConfiguration | TaskConfiguration[]): void;
118
+ get recentTasks(): TaskConfiguration[];
119
+ set recentTasks(recent: TaskConfiguration[]);
120
+ /**
121
+ * Clears the list of recently used tasks.
122
+ */
123
+ clearRecentTasks(): void;
124
+ /**
125
+ * Open user ser
126
+ */
127
+ openUserTasks(): Promise<void>;
128
+ /**
129
+ * Returns a task configuration provided by an extension by task source, scope and label.
130
+ * If there are no task configuration, returns undefined.
131
+ * @param token The cache token for the user interaction in progress
132
+ * @param source The source for configured tasks
133
+ * @param label The label of the task to find
134
+ * @param scope The task scope to look in
135
+ */
136
+ getProvidedTask(token: number, source: string, label: string, scope: TaskConfigurationScope): Promise<TaskConfiguration | undefined>;
137
+ /** Returns an array of running tasks 'TaskInfo' objects */
138
+ getRunningTasks(): Promise<TaskInfo[]>;
139
+ customExecutionComplete(id: number, exitCode: number | undefined): Promise<void>;
140
+ /** Returns an array of task types that are registered, including the default types */
141
+ getRegisteredTaskTypes(): Promise<string[]>;
142
+ /**
143
+ * Get the last executed task.
144
+ *
145
+ * @returns the last executed task or `undefined`.
146
+ */
147
+ getLastTask(): LastRunTaskInfo;
148
+ /**
149
+ * Runs a task, by task configuration label.
150
+ * Note, it looks for a task configured in tasks.json only.
151
+ * @param token The cache token for the user interaction in progress
152
+ * @param scope The scope where to look for tasks
153
+ * @param taskLabel the label to look for
154
+ */
155
+ runConfiguredTask(token: number, scope: TaskConfigurationScope, taskLabel: string): Promise<void>;
156
+ /**
157
+ * Run the last executed task.
158
+ * @param token The cache token for the user interaction in progress
159
+ */
160
+ runLastTask(token: number): Promise<TaskInfo | undefined>;
161
+ /**
162
+ * Runs a task, by the source and label of the task configuration.
163
+ * It looks for configured and detected tasks.
164
+ * @param token The cache token for the user interaction in progress
165
+ * @param source The source for configured tasks
166
+ * @param taskLabel The label to look for
167
+ * @param scope The scope where to look for tasks
168
+ */
169
+ run(token: number, source: string, taskLabel: string, scope: TaskConfigurationScope): Promise<TaskInfo | undefined>;
170
+ /**
171
+ * Runs a compound task
172
+ * @param token The cache token for the user interaction in progress
173
+ * @param task The task to be executed
174
+ * @param option options for executing the task
175
+ */
176
+ runCompoundTask(token: number, task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
177
+ /**
178
+ * A recursive function that runs a task and all its sub tasks that it depends on.
179
+ * A task can be executed only when all of its dependencies have been executed, or when it doesn’t have any dependencies at all.
180
+ */
181
+ runTasksGraph(task: TaskConfiguration, tasks: TaskConfiguration[], option?: RunTaskOption): Promise<TaskInfo | undefined>;
182
+ /**
183
+ * Creates a graph of dependencies tasks from the root task and verify there is no DAG (Directed Acyclic Graph).
184
+ * In case of detection of a circular dependency, an error is thrown with a message which describes the detected circular reference.
185
+ */
186
+ detectDirectedAcyclicGraph(task: TaskConfiguration, taskNode: TaskNode, tasks: TaskConfiguration[]): void;
187
+ createChildTaskNode(task: TaskConfiguration, taskNode: TaskNode, childTaskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskGraphNode;
188
+ /**
189
+ * Gets task configuration by task label or by a JSON object which represents a task identifier
190
+ *
191
+ * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
192
+ * @param tasks an array of the task configurations
193
+ * @returns the correct TaskConfiguration object which matches the taskIdentifier
194
+ */
195
+ getDependentTask(taskIdentifier: string | TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
196
+ /**
197
+ * Gets the matched task from an array of task configurations by TaskIdentifier.
198
+ * In case that more than one task configuration matches, we returns the first one.
199
+ *
200
+ * @param taskIdentifier The task label (string) or a JSON object which represents a TaskIdentifier (e.g. {"type":"npm", "script":"script1"})
201
+ * @param tasks An array of task configurations.
202
+ * @returns The correct TaskConfiguration object which matches the taskIdentifier.
203
+ */
204
+ getTaskByTaskIdentifier(taskIdentifier: TaskIdentifier, tasks: TaskConfiguration[]): TaskConfiguration;
205
+ runTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
206
+ /**
207
+ * Terminates a task that is actively running.
208
+ * @param activeTaskInfo the TaskInfo of the task that is actively running
209
+ */
210
+ terminateTask(activeTaskInfo: TaskInfo): Promise<void>;
211
+ /**
212
+ * Terminates a task that is actively running, and restarts it.
213
+ * @param activeTaskInfo the TaskInfo of the task that is actively running
214
+ */
215
+ restartTask(activeTaskInfo: TaskInfo, option?: RunTaskOption): Promise<TaskInfo | undefined>;
216
+ protected doRunTask(task: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
217
+ /**
218
+ * Runs the first task with the given label.
219
+ *
220
+ * @param token The cache token for the user interaction in progress
221
+ * @param taskLabel The label of the task to be executed
222
+ */
223
+ runTaskByLabel(token: number, taskLabel: string): Promise<TaskInfo | undefined>;
224
+ /**
225
+ * Runs a task identified by the given identifier, but only if found in the given workspace folder
226
+ *
227
+ * @param token The cache token for the user interaction in progress
228
+ * @param workspaceFolderUri The folder to restrict the search to
229
+ * @param taskIdentifier The identifier to look for
230
+ */
231
+ runWorkspaceTask(token: number, workspaceFolderUri: string | undefined, taskIdentifier: string | TaskIdentifier): Promise<TaskInfo | undefined>;
232
+ /**
233
+ * Updates the task configuration in the `tasks.json`.
234
+ * The task config, together with updates, will be written into the `tasks.json` if it is not found in the file.
235
+ *
236
+ * @param token The cache token for the user interaction in progress
237
+ * @param task task that the updates will be applied to
238
+ * @param update the updates to be applied
239
+ */
240
+ updateTaskConfiguration(token: number, task: TaskConfiguration, update: {
241
+ [name: string]: any;
242
+ }): Promise<void>;
243
+ protected getWorkspaceTasks(token: number, restrictToFolder: TaskConfigurationScope | undefined): Promise<TaskConfiguration[]>;
244
+ protected resolveProblemMatchers(task: TaskConfiguration, customizationObject: TaskCustomization): Promise<ProblemMatcher[] | undefined>;
245
+ protected getTaskCustomization(task: TaskConfiguration): Promise<TaskCustomization>;
246
+ protected removeProblemMarkers(option?: RunTaskOption): Promise<void>;
247
+ /**
248
+ * Runs the resolved task and opens terminal widget if the task is based on a terminal process
249
+ * @param resolvedTask the resolved task
250
+ * @param option options to run the resolved task
251
+ */
252
+ protected runResolvedTask(resolvedTask: TaskConfiguration, option?: RunTaskOption): Promise<TaskInfo | undefined>;
253
+ protected getCustomizeProblemMatcherItems(): Array<QuickPickValue<QuickPickProblemMatcherItem> | QuickPickItemOrSeparator>;
254
+ /**
255
+ * Run selected text in the last active terminal.
256
+ */
257
+ runSelectedText(): Promise<void>;
258
+ attach(terminalId: number, taskInfo: TaskInfo): Promise<number | void>;
259
+ protected getTerminalWidgetId(terminalId: number): string | undefined;
260
+ /**
261
+ * Opens an editor to configure the given task.
262
+ *
263
+ * @param token The cache token for the user interaction in progress
264
+ * @param task The task to configure
265
+ */
266
+ configure(token: number, task: TaskConfiguration): Promise<void>;
267
+ protected isEventForThisClient(context: string | undefined): boolean;
268
+ taskConfigurationChanged(event: string[]): void;
269
+ protected getContext(): string | undefined;
270
+ /** Kill task for a given id if task is found */
271
+ kill(id: number): Promise<void>;
272
+ isBackgroundTaskEnded(id: number): Promise<boolean | undefined>;
273
+ getExitCode(id: number): Promise<number | undefined>;
274
+ getTerminateSignal(id: number): Promise<string | undefined>;
275
+ }
276
+ export {};
277
277
  //# sourceMappingURL=task-service.d.ts.map