@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.
- package/lib/browser/index.d.ts +7 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +25 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/process/process-task-contribution.d.ts +7 -0
- package/lib/browser/process/process-task-contribution.d.ts.map +1 -0
- package/lib/browser/process/process-task-contribution.js +36 -0
- package/lib/browser/process/process-task-contribution.js.map +1 -0
- package/lib/browser/process/process-task-frontend-module.d.ts +3 -0
- package/lib/browser/process/process-task-frontend-module.d.ts.map +1 -0
- package/lib/browser/process/process-task-frontend-module.js +28 -0
- package/lib/browser/process/process-task-frontend-module.js.map +1 -0
- package/lib/browser/process/process-task-resolver.d.ts +18 -0
- package/lib/browser/process/process-task-resolver.d.ts.map +1 -0
- package/lib/browser/process/process-task-resolver.js +94 -0
- package/lib/browser/process/process-task-resolver.js.map +1 -0
- package/lib/browser/provided-task-configurations.d.ts +44 -0
- package/lib/browser/provided-task-configurations.d.ts.map +1 -0
- package/lib/browser/provided-task-configurations.js +206 -0
- package/lib/browser/provided-task-configurations.js.map +1 -0
- package/lib/browser/provided-task-configurations.spec.d.ts +2 -0
- package/lib/browser/provided-task-configurations.spec.d.ts.map +1 -0
- package/lib/browser/provided-task-configurations.spec.js +44 -0
- package/lib/browser/provided-task-configurations.spec.js.map +1 -0
- package/lib/browser/quick-open-task.d.ts +146 -0
- package/lib/browser/quick-open-task.d.ts.map +1 -0
- package/lib/browser/quick-open-task.js +757 -0
- package/lib/browser/quick-open-task.js.map +1 -0
- package/lib/browser/task-configuration-manager.d.ts +63 -0
- package/lib/browser/task-configuration-manager.d.ts.map +1 -0
- package/lib/browser/task-configuration-manager.js +243 -0
- package/lib/browser/task-configuration-manager.js.map +1 -0
- package/lib/browser/task-configuration-model.d.ts +34 -0
- package/lib/browser/task-configuration-model.d.ts.map +1 -0
- package/lib/browser/task-configuration-model.js +83 -0
- package/lib/browser/task-configuration-model.js.map +1 -0
- package/lib/browser/task-configurations.d.ts +128 -0
- package/lib/browser/task-configurations.d.ts.map +1 -0
- package/lib/browser/task-configurations.js +479 -0
- package/lib/browser/task-configurations.js.map +1 -0
- package/lib/browser/task-context-key-service.d.ts +18 -0
- package/lib/browser/task-context-key-service.d.ts.map +1 -0
- package/lib/browser/task-context-key-service.js +72 -0
- package/lib/browser/task-context-key-service.js.map +1 -0
- package/lib/browser/task-contribution.d.ts +183 -0
- package/lib/browser/task-contribution.d.ts.map +1 -0
- package/lib/browser/task-contribution.js +199 -0
- package/lib/browser/task-contribution.js.map +1 -0
- package/lib/browser/task-definition-registry.d.ts +39 -0
- package/lib/browser/task-definition-registry.d.ts.map +1 -0
- package/lib/browser/task-definition-registry.js +130 -0
- package/lib/browser/task-definition-registry.js.map +1 -0
- package/lib/browser/task-definition-registry.spec.d.ts +2 -0
- package/lib/browser/task-definition-registry.spec.d.ts.map +1 -0
- package/lib/browser/task-definition-registry.spec.js +171 -0
- package/lib/browser/task-definition-registry.spec.js.map +1 -0
- package/lib/browser/task-frontend-contribution.d.ts +57 -0
- package/lib/browser/task-frontend-contribution.d.ts.map +1 -0
- package/lib/browser/task-frontend-contribution.js +351 -0
- package/lib/browser/task-frontend-contribution.js.map +1 -0
- package/lib/browser/task-frontend-module.d.ts +6 -0
- package/lib/browser/task-frontend-module.d.ts.map +1 -0
- package/lib/browser/task-frontend-module.js +82 -0
- package/lib/browser/task-frontend-module.js.map +1 -0
- package/lib/browser/task-name-resolver.d.ts +14 -0
- package/lib/browser/task-name-resolver.d.ts.map +1 -0
- package/lib/browser/task-name-resolver.js +60 -0
- package/lib/browser/task-name-resolver.js.map +1 -0
- package/lib/browser/task-node.d.ts +10 -0
- package/lib/browser/task-node.d.ts.map +1 -0
- package/lib/browser/task-node.js +18 -0
- package/lib/browser/task-node.js.map +1 -0
- package/lib/browser/task-problem-matcher-registry.d.ts +41 -0
- package/lib/browser/task-problem-matcher-registry.d.ts.map +1 -0
- package/lib/browser/task-problem-matcher-registry.js +302 -0
- package/lib/browser/task-problem-matcher-registry.js.map +1 -0
- package/lib/browser/task-problem-pattern-registry.d.ts +24 -0
- package/lib/browser/task-problem-pattern-registry.d.ts.map +1 -0
- package/lib/browser/task-problem-pattern-registry.js +203 -0
- package/lib/browser/task-problem-pattern-registry.js.map +1 -0
- package/lib/browser/task-schema-updater.d.ts +58 -0
- package/lib/browser/task-schema-updater.d.ts.map +1 -0
- package/lib/browser/task-schema-updater.js +676 -0
- package/lib/browser/task-schema-updater.js.map +1 -0
- package/lib/browser/task-service.d.ts +282 -0
- package/lib/browser/task-service.d.ts.map +1 -0
- package/lib/browser/task-service.js +1116 -0
- package/lib/browser/task-service.js.map +1 -0
- package/lib/browser/task-source-resolver.d.ts +10 -0
- package/lib/browser/task-source-resolver.d.ts.map +1 -0
- package/lib/browser/task-source-resolver.js +44 -0
- package/lib/browser/task-source-resolver.js.map +1 -0
- package/lib/browser/task-templates.d.ts +14 -0
- package/lib/browser/task-templates.d.ts.map +1 -0
- package/lib/browser/task-templates.js +158 -0
- package/lib/browser/task-templates.js.map +1 -0
- package/lib/browser/task-terminal-widget-manager.d.ts +45 -0
- package/lib/browser/task-terminal-widget-manager.d.ts.map +1 -0
- package/lib/browser/task-terminal-widget-manager.js +222 -0
- package/lib/browser/task-terminal-widget-manager.js.map +1 -0
- package/lib/browser/tasks-monaco-contribution.d.ts +2 -0
- package/lib/browser/tasks-monaco-contribution.d.ts.map +1 -0
- package/lib/browser/tasks-monaco-contribution.js +28 -0
- package/lib/browser/tasks-monaco-contribution.js.map +1 -0
- package/lib/common/index.d.ts +5 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +23 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/problem-matcher-protocol.d.ts +125 -0
- package/lib/common/problem-matcher-protocol.d.ts.map +1 -0
- package/lib/common/problem-matcher-protocol.js +133 -0
- package/lib/common/problem-matcher-protocol.js.map +1 -0
- package/lib/common/process/task-protocol.d.ts +69 -0
- package/lib/common/process/task-protocol.d.ts.map +1 -0
- package/lib/common/process/task-protocol.js +34 -0
- package/lib/common/process/task-protocol.js.map +1 -0
- package/lib/common/task-common-module.d.ts +8 -0
- package/lib/common/task-common-module.d.ts.map +1 -0
- package/lib/common/task-common-module.js +29 -0
- package/lib/common/task-common-module.js.map +1 -0
- package/lib/common/task-preferences.d.ts +6 -0
- package/lib/common/task-preferences.d.ts.map +1 -0
- package/lib/common/task-preferences.js +41 -0
- package/lib/common/task-preferences.js.map +1 -0
- package/lib/common/task-protocol.d.ts +194 -0
- package/lib/common/task-protocol.d.ts.map +1 -0
- package/lib/common/task-protocol.js +138 -0
- package/lib/common/task-protocol.js.map +1 -0
- package/lib/common/task-util.d.ts +23 -0
- package/lib/common/task-util.d.ts.map +1 -0
- package/lib/common/task-util.js +47 -0
- package/lib/common/task-util.js.map +1 -0
- package/lib/common/task-watcher.d.ts +18 -0
- package/lib/common/task-watcher.d.ts.map +1 -0
- package/lib/common/task-watcher.js +82 -0
- package/lib/common/task-watcher.js.map +1 -0
- package/lib/node/custom/custom-task-runner-backend-module.d.ts +3 -0
- package/lib/node/custom/custom-task-runner-backend-module.d.ts.map +1 -0
- package/lib/node/custom/custom-task-runner-backend-module.js +37 -0
- package/lib/node/custom/custom-task-runner-backend-module.js.map +1 -0
- package/lib/node/custom/custom-task-runner-contribution.d.ts +7 -0
- package/lib/node/custom/custom-task-runner-contribution.d.ts.map +1 -0
- package/lib/node/custom/custom-task-runner-contribution.js +35 -0
- package/lib/node/custom/custom-task-runner-contribution.js.map +1 -0
- package/lib/node/custom/custom-task-runner.d.ts +16 -0
- package/lib/node/custom/custom-task-runner.d.ts.map +1 -0
- package/lib/node/custom/custom-task-runner.js +62 -0
- package/lib/node/custom/custom-task-runner.js.map +1 -0
- package/lib/node/custom/custom-task.d.ts +21 -0
- package/lib/node/custom/custom-task.d.ts.map +1 -0
- package/lib/node/custom/custom-task.js +68 -0
- package/lib/node/custom/custom-task.js.map +1 -0
- package/lib/node/index.d.ts +4 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +22 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/process/process-task-runner-backend-module.d.ts +3 -0
- package/lib/node/process/process-task-runner-backend-module.d.ts.map +1 -0
- package/lib/node/process/process-task-runner-backend-module.js +37 -0
- package/lib/node/process/process-task-runner-backend-module.js.map +1 -0
- package/lib/node/process/process-task-runner-contribution.d.ts +7 -0
- package/lib/node/process/process-task-runner-contribution.d.ts.map +1 -0
- package/lib/node/process/process-task-runner-contribution.js +36 -0
- package/lib/node/process/process-task-runner-contribution.js.map +1 -0
- package/lib/node/process/process-task-runner.d.ts +61 -0
- package/lib/node/process/process-task-runner.d.ts.map +1 -0
- package/lib/node/process/process-task-runner.js +348 -0
- package/lib/node/process/process-task-runner.js.map +1 -0
- package/lib/node/process/process-task.d.ts +27 -0
- package/lib/node/process/process-task.d.ts.map +1 -0
- package/lib/node/process/process-task.js +125 -0
- package/lib/node/process/process-task.js.map +1 -0
- package/lib/node/process/process-task.spec.d.ts +2 -0
- package/lib/node/process/process-task.spec.d.ts.map +1 -0
- package/lib/node/process/process-task.spec.js +30 -0
- package/lib/node/process/process-task.spec.js.map +1 -0
- package/lib/node/task-abstract-line-matcher.d.ts +50 -0
- package/lib/node/task-abstract-line-matcher.d.ts.map +1 -0
- package/lib/node/task-abstract-line-matcher.js +274 -0
- package/lib/node/task-abstract-line-matcher.js.map +1 -0
- package/lib/node/task-backend-application-contribution.d.ts +9 -0
- package/lib/node/task-backend-application-contribution.d.ts.map +1 -0
- package/lib/node/task-backend-application-contribution.js +41 -0
- package/lib/node/task-backend-application-contribution.js.map +1 -0
- package/lib/node/task-backend-module.d.ts +4 -0
- package/lib/node/task-backend-module.d.ts.map +1 -0
- package/lib/node/task-backend-module.js +53 -0
- package/lib/node/task-backend-module.js.map +1 -0
- package/lib/node/task-line-matchers.d.ts +28 -0
- package/lib/node/task-line-matchers.d.ts.map +1 -0
- package/lib/node/task-line-matchers.js +122 -0
- package/lib/node/task-line-matchers.js.map +1 -0
- package/lib/node/task-manager.d.ts +56 -0
- package/lib/node/task-manager.d.ts.map +1 -0
- package/lib/node/task-manager.js +125 -0
- package/lib/node/task-manager.js.map +1 -0
- package/lib/node/task-problem-collector.d.ts +11 -0
- package/lib/node/task-problem-collector.d.ts.map +1 -0
- package/lib/node/task-problem-collector.js +58 -0
- package/lib/node/task-problem-collector.js.map +1 -0
- package/lib/node/task-problem-collector.spec.d.ts +2 -0
- package/lib/node/task-problem-collector.spec.d.ts.map +1 -0
- package/lib/node/task-problem-collector.spec.js +311 -0
- package/lib/node/task-problem-collector.spec.js.map +1 -0
- package/lib/node/task-runner-protocol.d.ts +17 -0
- package/lib/node/task-runner-protocol.d.ts.map +1 -0
- package/lib/node/task-runner-protocol.js +20 -0
- package/lib/node/task-runner-protocol.js.map +1 -0
- package/lib/node/task-runner.d.ts +51 -0
- package/lib/node/task-runner.d.ts.map +1 -0
- package/lib/node/task-runner.js +90 -0
- package/lib/node/task-runner.js.map +1 -0
- package/lib/node/task-server.d.ts +40 -0
- package/lib/node/task-server.d.ts.map +1 -0
- package/lib/node/task-server.js +232 -0
- package/lib/node/task-server.js.map +1 -0
- package/lib/node/task-server.slow-spec.d.ts +2 -0
- package/lib/node/task-server.slow-spec.d.ts.map +1 -0
- package/lib/node/task-server.slow-spec.js +395 -0
- package/lib/node/task-server.slow-spec.js.map +1 -0
- package/lib/node/task.d.ts +51 -0
- package/lib/node/task.d.ts.map +1 -0
- package/lib/node/task.js +73 -0
- package/lib/node/task.js.map +1 -0
- package/lib/node/test/task-test-container.d.ts +3 -0
- package/lib/node/test/task-test-container.d.ts.map +1 -0
- package/lib/node/test/task-test-container.js +59 -0
- package/lib/node/test/task-test-container.js.map +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TaskManager = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// *****************************************************************************
|
|
6
|
+
// Copyright (C) 2017 Ericsson and others.
|
|
7
|
+
//
|
|
8
|
+
// This program and the accompanying materials are made available under the
|
|
9
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
10
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
11
|
+
//
|
|
12
|
+
// This Source Code may also be made available under the following Secondary
|
|
13
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
14
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
15
|
+
// with the GNU Classpath Exception which is available at
|
|
16
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
17
|
+
//
|
|
18
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
19
|
+
// *****************************************************************************
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const common_1 = require("@theia/core/lib/common");
|
|
22
|
+
// inspired by process-manager.ts
|
|
23
|
+
/**
|
|
24
|
+
* The {@link TaskManager} is the common component responsible for managing running tasks.
|
|
25
|
+
*/
|
|
26
|
+
let TaskManager = class TaskManager {
|
|
27
|
+
constructor(logger) {
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
/** contains all running tasks */
|
|
30
|
+
this.tasks = new Map();
|
|
31
|
+
/** contains running tasks per context */
|
|
32
|
+
this.tasksPerCtx = new Map();
|
|
33
|
+
/** each task has this unique task id, for this back-end */
|
|
34
|
+
this.id = -1;
|
|
35
|
+
/**
|
|
36
|
+
* Emit when a registered task is deleted.
|
|
37
|
+
*/
|
|
38
|
+
this.deleteEmitter = new common_1.Emitter();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Registers a new task (in the given context if present). Each registered
|
|
42
|
+
* task is considered to be currently running.
|
|
43
|
+
* @param task the new task.
|
|
44
|
+
* @param ctx the provided context.
|
|
45
|
+
*
|
|
46
|
+
* @returns the registration id for the given task.
|
|
47
|
+
*/
|
|
48
|
+
register(task, ctx) {
|
|
49
|
+
const id = ++this.id;
|
|
50
|
+
this.tasks.set(id, task);
|
|
51
|
+
if (ctx) {
|
|
52
|
+
let tks = this.tasksPerCtx.get(ctx);
|
|
53
|
+
if (tks === undefined) {
|
|
54
|
+
tks = [];
|
|
55
|
+
}
|
|
56
|
+
tks.push(task);
|
|
57
|
+
this.tasksPerCtx.set(ctx, tks);
|
|
58
|
+
}
|
|
59
|
+
return id;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Try to retrieve the registered task for the given id.
|
|
63
|
+
* @param id the task registration id.
|
|
64
|
+
*
|
|
65
|
+
* @returns the task or `undefined` if no task was registered for the given id.
|
|
66
|
+
*/
|
|
67
|
+
get(id) {
|
|
68
|
+
return this.tasks.get(id);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns all running tasks. If a context is provided, filter-down to
|
|
72
|
+
* only tasks started from that context.
|
|
73
|
+
* @param ctx the task execution context.
|
|
74
|
+
*
|
|
75
|
+
* @returns all running tasks for the given context or `undefined` if no tasks are registered for the given context.
|
|
76
|
+
*/
|
|
77
|
+
getTasks(ctx) {
|
|
78
|
+
if (!ctx) {
|
|
79
|
+
return [...this.tasks.values()];
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
if (this.tasksPerCtx.has(ctx)) {
|
|
83
|
+
return this.tasksPerCtx.get(ctx);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Delete the given task from the task manager.
|
|
89
|
+
* @param task the task to delete.
|
|
90
|
+
*/
|
|
91
|
+
delete(task) {
|
|
92
|
+
this.tasks.delete(task.id);
|
|
93
|
+
const ctx = task.context;
|
|
94
|
+
if (ctx && this.tasksPerCtx.has(ctx)) {
|
|
95
|
+
const tasksForWS = this.tasksPerCtx.get(ctx);
|
|
96
|
+
if (tasksForWS !== undefined) {
|
|
97
|
+
const idx = tasksForWS.indexOf(task);
|
|
98
|
+
if (idx !== -1) {
|
|
99
|
+
tasksForWS.splice(idx, 1);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this.deleteEmitter.fire(task.id);
|
|
104
|
+
}
|
|
105
|
+
get onDelete() {
|
|
106
|
+
return this.deleteEmitter.event;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Is triggered on application stop to cleanup all ongoing tasks.
|
|
110
|
+
*/
|
|
111
|
+
onStop() {
|
|
112
|
+
this.tasks.forEach((task, id) => {
|
|
113
|
+
this.logger.debug(`Task Backend application: onStop(): cleaning task id: ${id}`);
|
|
114
|
+
this.delete(task);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
exports.TaskManager = TaskManager;
|
|
119
|
+
exports.TaskManager = TaskManager = tslib_1.__decorate([
|
|
120
|
+
(0, inversify_1.injectable)(),
|
|
121
|
+
tslib_1.__param(0, (0, inversify_1.inject)(common_1.ILogger)),
|
|
122
|
+
tslib_1.__param(0, (0, inversify_1.named)('task')),
|
|
123
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
124
|
+
], TaskManager);
|
|
125
|
+
//# sourceMappingURL=task-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../src/node/task-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ProblemMatcher, ProblemMatch } from '../common/problem-matcher-protocol';
|
|
2
|
+
export declare class ProblemCollector {
|
|
3
|
+
problemMatchers: ProblemMatcher[];
|
|
4
|
+
private lineMatchers;
|
|
5
|
+
constructor(problemMatchers: ProblemMatcher[]);
|
|
6
|
+
processLine(line: string): ProblemMatch[];
|
|
7
|
+
isTaskActiveOnStart(): boolean;
|
|
8
|
+
matchBeginMatcher(line: string): boolean;
|
|
9
|
+
matchEndMatcher(line: string): boolean;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=task-problem-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-problem-collector.d.ts","sourceRoot":"","sources":["../../src/node/task-problem-collector.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlF,qBAAa,gBAAgB;IAKd,eAAe,EAAE,cAAc,EAAE;IAH5C,OAAO,CAAC,YAAY,CAA6B;gBAGtC,eAAe,EAAE,cAAc,EAAE;IAW5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAWzC,mBAAmB,IAAI,OAAO;IAK9B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKxC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAIzC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2019 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ProblemCollector = void 0;
|
|
19
|
+
const problem_matcher_protocol_1 = require("../common/problem-matcher-protocol");
|
|
20
|
+
const task_line_matchers_1 = require("./task-line-matchers");
|
|
21
|
+
class ProblemCollector {
|
|
22
|
+
constructor(problemMatchers) {
|
|
23
|
+
this.problemMatchers = problemMatchers;
|
|
24
|
+
this.lineMatchers = [];
|
|
25
|
+
for (const matcher of problemMatchers) {
|
|
26
|
+
if (problem_matcher_protocol_1.ProblemMatcher.isWatchModeWatcher(matcher)) {
|
|
27
|
+
this.lineMatchers.push(new task_line_matchers_1.WatchModeLineMatcher(matcher));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.lineMatchers.push(new task_line_matchers_1.StartStopLineMatcher(matcher));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
processLine(line) {
|
|
35
|
+
const markers = [];
|
|
36
|
+
this.lineMatchers.forEach(lineMatcher => {
|
|
37
|
+
const match = lineMatcher.match(line);
|
|
38
|
+
if (match) {
|
|
39
|
+
markers.push(match);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return markers;
|
|
43
|
+
}
|
|
44
|
+
isTaskActiveOnStart() {
|
|
45
|
+
const activeOnStart = this.lineMatchers.some(lineMatcher => (lineMatcher instanceof task_line_matchers_1.WatchModeLineMatcher) && lineMatcher.activeOnStart);
|
|
46
|
+
return activeOnStart;
|
|
47
|
+
}
|
|
48
|
+
matchBeginMatcher(line) {
|
|
49
|
+
const match = this.lineMatchers.some(lineMatcher => (lineMatcher instanceof task_line_matchers_1.WatchModeLineMatcher) && lineMatcher.matchBegin(line));
|
|
50
|
+
return match;
|
|
51
|
+
}
|
|
52
|
+
matchEndMatcher(line) {
|
|
53
|
+
const match = this.lineMatchers.some(lineMatcher => (lineMatcher instanceof task_line_matchers_1.WatchModeLineMatcher) && lineMatcher.matchEnd(line));
|
|
54
|
+
return match;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ProblemCollector = ProblemCollector;
|
|
58
|
+
//# sourceMappingURL=task-problem-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-problem-collector.js","sourceRoot":"","sources":["../../src/node/task-problem-collector.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,iFAAkF;AAClF,6DAAkF;AAElF,MAAa,gBAAgB;IAIzB,YACW,eAAiC;QAAjC,oBAAe,GAAf,eAAe,CAAkB;QAHpC,iBAAY,GAA0B,EAAE,CAAC;QAK7C,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,yCAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,yCAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,yCAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YACpC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,mBAAmB;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,yCAAoB,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC;QACxI,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,yCAAoB,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACnI,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,yCAAoB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACjI,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAzCD,4CAyCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-problem-collector.spec.d.ts","sourceRoot":"","sources":["../../src/node/task-problem-collector.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2019 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const severity_1 = require("@theia/core/lib/common/severity");
|
|
19
|
+
const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
|
|
20
|
+
const chai_1 = require("chai");
|
|
21
|
+
const problem_matcher_protocol_1 = require("../common/problem-matcher-protocol");
|
|
22
|
+
const task_problem_collector_1 = require("./task-problem-collector");
|
|
23
|
+
const startStopMatcher1 = {
|
|
24
|
+
owner: 'test1',
|
|
25
|
+
source: 'test1',
|
|
26
|
+
applyTo: problem_matcher_protocol_1.ApplyToKind.allDocuments,
|
|
27
|
+
fileLocation: problem_matcher_protocol_1.FileLocationKind.Absolute,
|
|
28
|
+
pattern: {
|
|
29
|
+
regexp: /^([^:]*: )?((.:)?[^:]*):(\d+)(:(\d+))?: (.*)$/.source,
|
|
30
|
+
kind: problem_matcher_protocol_1.ProblemLocationKind.Location,
|
|
31
|
+
file: 2,
|
|
32
|
+
line: 4,
|
|
33
|
+
character: 6,
|
|
34
|
+
message: 7
|
|
35
|
+
},
|
|
36
|
+
severity: severity_1.Severity.Error
|
|
37
|
+
};
|
|
38
|
+
const startStopMatcher2 = {
|
|
39
|
+
owner: 'test2',
|
|
40
|
+
source: 'test2',
|
|
41
|
+
applyTo: problem_matcher_protocol_1.ApplyToKind.allDocuments,
|
|
42
|
+
fileLocation: problem_matcher_protocol_1.FileLocationKind.Absolute,
|
|
43
|
+
pattern: [
|
|
44
|
+
{
|
|
45
|
+
regexp: /^([^\s].*)$/.source,
|
|
46
|
+
kind: problem_matcher_protocol_1.ProblemLocationKind.Location,
|
|
47
|
+
file: 1
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
regexp: /^\s+(\d+):(\d+)\s+(error|warning|info)\s+(.+?)(?:\s\s+(.*))?$/.source,
|
|
51
|
+
line: 1,
|
|
52
|
+
character: 2,
|
|
53
|
+
severity: 3,
|
|
54
|
+
message: 4,
|
|
55
|
+
code: 5,
|
|
56
|
+
loop: true
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
severity: severity_1.Severity.Error
|
|
60
|
+
};
|
|
61
|
+
const startStopMatcher3 = {
|
|
62
|
+
owner: 'test2',
|
|
63
|
+
source: 'test2',
|
|
64
|
+
applyTo: problem_matcher_protocol_1.ApplyToKind.allDocuments,
|
|
65
|
+
fileLocation: problem_matcher_protocol_1.FileLocationKind.Absolute,
|
|
66
|
+
pattern: [
|
|
67
|
+
{
|
|
68
|
+
regexp: /^([^\s].*)$/.source,
|
|
69
|
+
kind: problem_matcher_protocol_1.ProblemLocationKind.File,
|
|
70
|
+
file: 1
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
regexp: /^\s+(\d+):(\d+)\s+(error|warning|info)\s+(.+?)(?:\s\s+(.*))?$/.source,
|
|
74
|
+
severity: 3,
|
|
75
|
+
message: 4,
|
|
76
|
+
code: 5,
|
|
77
|
+
loop: true
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
severity: severity_1.Severity.Error
|
|
81
|
+
};
|
|
82
|
+
const watchMatcher = {
|
|
83
|
+
owner: 'test3',
|
|
84
|
+
applyTo: problem_matcher_protocol_1.ApplyToKind.closedDocuments,
|
|
85
|
+
fileLocation: problem_matcher_protocol_1.FileLocationKind.Absolute,
|
|
86
|
+
pattern: {
|
|
87
|
+
regexp: /Error: ([^(]+)\((\d+|\d+,\d+|\d+,\d+,\d+,\d+)\): (.*)$/.source,
|
|
88
|
+
file: 1,
|
|
89
|
+
location: 2,
|
|
90
|
+
message: 3
|
|
91
|
+
},
|
|
92
|
+
watching: {
|
|
93
|
+
activeOnStart: false,
|
|
94
|
+
beginsPattern: { regexp: /Starting compilation/.source },
|
|
95
|
+
endsPattern: { regexp: /Finished compilation/.source }
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
describe('ProblemCollector', () => {
|
|
99
|
+
let collector;
|
|
100
|
+
const allMatches = [];
|
|
101
|
+
const collectMatches = (lines) => {
|
|
102
|
+
lines.forEach(line => {
|
|
103
|
+
const matches = collector.processLine(line);
|
|
104
|
+
if (matches.length > 0) {
|
|
105
|
+
allMatches.push(...matches);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
beforeEach(() => {
|
|
110
|
+
allMatches.length = 0;
|
|
111
|
+
});
|
|
112
|
+
it('should find problems from start-stop task when problem matcher is associated with one problem pattern', () => {
|
|
113
|
+
collector = new task_problem_collector_1.ProblemCollector([startStopMatcher1]);
|
|
114
|
+
collectMatches([
|
|
115
|
+
'npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1557403301319-0.5645247996849125/node but npm is using /usr/local/bin/node itself.',
|
|
116
|
+
'Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.',
|
|
117
|
+
'',
|
|
118
|
+
'# command-line-arguments',
|
|
119
|
+
'/home/test/hello.go:9:2: undefined: fmt.Pntln',
|
|
120
|
+
'/home/test/hello.go:10:6: undefined: numb',
|
|
121
|
+
'/home/test/hello.go:15:9: undefined: stri'
|
|
122
|
+
]);
|
|
123
|
+
(0, chai_1.expect)(allMatches.length).to.eq(3);
|
|
124
|
+
(0, chai_1.expect)(allMatches[0].resource.path.toString()).eq('/home/test/hello.go');
|
|
125
|
+
(0, chai_1.expect)(allMatches[0].marker).deep.equal({
|
|
126
|
+
range: { start: { line: 8, character: 1 }, end: { line: 8, character: 1 } },
|
|
127
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
128
|
+
source: 'test1',
|
|
129
|
+
message: 'undefined: fmt.Pntln'
|
|
130
|
+
});
|
|
131
|
+
(0, chai_1.expect)(allMatches[1].resource.path.toString()).eq('/home/test/hello.go');
|
|
132
|
+
(0, chai_1.expect)(allMatches[1].marker).deep.equal({
|
|
133
|
+
range: { start: { line: 9, character: 5 }, end: { line: 9, character: 5 } },
|
|
134
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
135
|
+
source: 'test1',
|
|
136
|
+
message: 'undefined: numb'
|
|
137
|
+
});
|
|
138
|
+
(0, chai_1.expect)(allMatches[2].resource.path.toString()).eq('/home/test/hello.go');
|
|
139
|
+
(0, chai_1.expect)(allMatches[2].marker).deep.equal({
|
|
140
|
+
range: { start: { line: 14, character: 8 }, end: { line: 14, character: 8 } },
|
|
141
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
142
|
+
source: 'test1',
|
|
143
|
+
message: 'undefined: stri'
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
it('should find problems from start-stop task when problem matcher is associated with more than one problem pattern', () => {
|
|
147
|
+
collector = new task_problem_collector_1.ProblemCollector([startStopMatcher2]);
|
|
148
|
+
collectMatches([
|
|
149
|
+
'> test@0.1.0 lint /home/test',
|
|
150
|
+
'> eslint .',
|
|
151
|
+
'',
|
|
152
|
+
'',
|
|
153
|
+
'/home/test/test-dir.js',
|
|
154
|
+
' 14:21 warning Missing semicolon semi',
|
|
155
|
+
' 15:23 warning Missing semicolon semi',
|
|
156
|
+
' 103:9 error Parsing error: Unexpected token inte',
|
|
157
|
+
'',
|
|
158
|
+
'/home/test/more-test.js',
|
|
159
|
+
' 13:9 error Parsing error: Unexpected token 1000',
|
|
160
|
+
'',
|
|
161
|
+
'✖ 3 problems (1 error, 2 warnings)',
|
|
162
|
+
' 0 errors and 2 warnings potentially fixable with the `--fix` option.'
|
|
163
|
+
]);
|
|
164
|
+
(0, chai_1.expect)(allMatches.length).to.eq(4);
|
|
165
|
+
(0, chai_1.expect)(allMatches[0].resource.path.toString()).eq('/home/test/test-dir.js');
|
|
166
|
+
(0, chai_1.expect)(allMatches[0].marker).deep.equal({
|
|
167
|
+
range: { start: { line: 13, character: 20 }, end: { line: 13, character: 20 } },
|
|
168
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning,
|
|
169
|
+
source: 'test2',
|
|
170
|
+
message: 'Missing semicolon',
|
|
171
|
+
code: 'semi'
|
|
172
|
+
});
|
|
173
|
+
(0, chai_1.expect)(allMatches[1].resource.path.toString()).eq('/home/test/test-dir.js');
|
|
174
|
+
(0, chai_1.expect)(allMatches[1].marker).deep.equal({
|
|
175
|
+
range: { start: { line: 14, character: 22 }, end: { line: 14, character: 22 } },
|
|
176
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning,
|
|
177
|
+
source: 'test2',
|
|
178
|
+
message: 'Missing semicolon',
|
|
179
|
+
code: 'semi'
|
|
180
|
+
});
|
|
181
|
+
(0, chai_1.expect)(allMatches[2].resource.path.toString()).eq('/home/test/test-dir.js');
|
|
182
|
+
(0, chai_1.expect)(allMatches[2].marker).deep.equal({
|
|
183
|
+
range: { start: { line: 102, character: 8 }, end: { line: 102, character: 8 } },
|
|
184
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
185
|
+
source: 'test2',
|
|
186
|
+
message: 'Parsing error: Unexpected token inte'
|
|
187
|
+
});
|
|
188
|
+
(0, chai_1.expect)(allMatches[3].resource.path.toString()).eq('/home/test/more-test.js');
|
|
189
|
+
(0, chai_1.expect)(allMatches[3].marker).deep.equal({
|
|
190
|
+
range: { start: { line: 12, character: 8 }, end: { line: 12, character: 8 } },
|
|
191
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
192
|
+
source: 'test2',
|
|
193
|
+
message: 'Parsing error: Unexpected token 1000'
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
it('should find problems from start-stop task when problem matcher is associated with more than one problem pattern and kind is file', () => {
|
|
197
|
+
var _a, _b, _c, _d;
|
|
198
|
+
collector = new task_problem_collector_1.ProblemCollector([startStopMatcher3]);
|
|
199
|
+
collectMatches([
|
|
200
|
+
'> test@0.1.0 lint /home/test',
|
|
201
|
+
'> eslint .',
|
|
202
|
+
'',
|
|
203
|
+
'',
|
|
204
|
+
'/home/test/test-dir.js',
|
|
205
|
+
' 14:21 warning Missing semicolon semi',
|
|
206
|
+
' 15:23 warning Missing semicolon semi',
|
|
207
|
+
' 103:9 error Parsing error: Unexpected token inte',
|
|
208
|
+
'',
|
|
209
|
+
'/home/test/more-test.js',
|
|
210
|
+
' 13:9 error Parsing error: Unexpected token 1000',
|
|
211
|
+
'',
|
|
212
|
+
'✖ 3 problems (1 error, 2 warnings)',
|
|
213
|
+
' 0 errors and 2 warnings potentially fixable with the `--fix` option.'
|
|
214
|
+
]);
|
|
215
|
+
(0, chai_1.expect)(allMatches.length).to.eq(4);
|
|
216
|
+
(0, chai_1.expect)((_a = allMatches[0].resource) === null || _a === void 0 ? void 0 : _a.path.toString()).eq('/home/test/test-dir.js');
|
|
217
|
+
(0, chai_1.expect)(allMatches[0].marker).deep.equal({
|
|
218
|
+
range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } },
|
|
219
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning,
|
|
220
|
+
source: 'test2',
|
|
221
|
+
message: 'Missing semicolon',
|
|
222
|
+
code: 'semi'
|
|
223
|
+
});
|
|
224
|
+
(0, chai_1.expect)((_b = allMatches[1].resource) === null || _b === void 0 ? void 0 : _b.path.toString()).eq('/home/test/test-dir.js');
|
|
225
|
+
(0, chai_1.expect)(allMatches[1].marker).deep.equal({
|
|
226
|
+
range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } },
|
|
227
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Warning,
|
|
228
|
+
source: 'test2',
|
|
229
|
+
message: 'Missing semicolon',
|
|
230
|
+
code: 'semi'
|
|
231
|
+
});
|
|
232
|
+
(0, chai_1.expect)((_c = allMatches[2].resource) === null || _c === void 0 ? void 0 : _c.path.toString()).eq('/home/test/test-dir.js');
|
|
233
|
+
(0, chai_1.expect)(allMatches[2].marker).deep.equal({
|
|
234
|
+
range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } },
|
|
235
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
236
|
+
source: 'test2',
|
|
237
|
+
message: 'Parsing error: Unexpected token inte'
|
|
238
|
+
});
|
|
239
|
+
(0, chai_1.expect)((_d = allMatches[3].resource) === null || _d === void 0 ? void 0 : _d.path.toString()).eq('/home/test/more-test.js');
|
|
240
|
+
(0, chai_1.expect)(allMatches[3].marker).deep.equal({
|
|
241
|
+
range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } },
|
|
242
|
+
severity: vscode_languageserver_protocol_1.DiagnosticSeverity.Error,
|
|
243
|
+
source: 'test2',
|
|
244
|
+
message: 'Parsing error: Unexpected token 1000'
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
it('should search and find defined problems from watch task\'s output', () => {
|
|
248
|
+
collector = new task_problem_collector_1.ProblemCollector([watchMatcher]);
|
|
249
|
+
collectMatches([
|
|
250
|
+
'> code-oss-dev@1.33.1 watch /home/test/vscode',
|
|
251
|
+
'> gulp watch --max_old_space_size=4095',
|
|
252
|
+
'',
|
|
253
|
+
'[09:15:37] Node flags detected: --max_old_space_size=4095',
|
|
254
|
+
'[09:15:37] Respawned to PID: 14560',
|
|
255
|
+
'[09:15:40] Using gulpfile ~/dev/vscode/gulpfile.js',
|
|
256
|
+
"[09:15:40] Starting 'watch'...",
|
|
257
|
+
'[09:15:40] Starting clean-out ...',
|
|
258
|
+
'[09:15:41] Starting clean-extension-configuration-editing ...',
|
|
259
|
+
'[09:15:41] Starting clean-extension-css-language-features-client ...',
|
|
260
|
+
'[09:15:41] Starting clean-extension-css-language-features-server ...',
|
|
261
|
+
'[09:15:41] Starting clean-extension-debug-auto-launch ...',
|
|
262
|
+
'[09:15:41] Starting watch-extension:markdown-language-features-preview-src ...',
|
|
263
|
+
'[09:15:41] Starting compilation...', // begin pattern 1
|
|
264
|
+
'[09:15:41] Finished clean-extension-typescript-basics-test-colorize-fixtures after 49 ms',
|
|
265
|
+
'[09:15:41] Starting watch-extension:typescript-basics-test-colorize-fixtures ...',
|
|
266
|
+
'[09:15:41] Finished compilation with 0 errors after 30 ms',
|
|
267
|
+
'[09:15:41] Finished clean-extension-css-language-features-client after 119 ms',
|
|
268
|
+
'[09:15:41] Starting watch-extension:css-language-features-client ...',
|
|
269
|
+
'[09:15:41] Starting compilation...', // begin pattern 2
|
|
270
|
+
'[09:15:41] Finished clean-extension-configuration-editing after 128 ms',
|
|
271
|
+
'[09:15:41] Starting watch-extension:configuration-editing ...',
|
|
272
|
+
'[09:15:41] Finished clean-extension-debug-auto-launch after 133 ms',
|
|
273
|
+
'[09:15:41] Starting watch-extension:debug-auto-launch ...',
|
|
274
|
+
'[09:15:41] Finished clean-extension-debug-server-ready after 138 ms',
|
|
275
|
+
'[09:15:52] Starting watch-extension:html-language-features-server ...',
|
|
276
|
+
'[09:15:58] Finished clean-out after 17196 ms',
|
|
277
|
+
'[09:15:58] Starting watch-client ...',
|
|
278
|
+
'[09:17:25] Finished compilation with 0 errors after 104209 ms',
|
|
279
|
+
'[09:19:22] Starting compilation...', // begin pattern 3
|
|
280
|
+
"[09:19:23] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskConfiguration.ts(517,19): ')' expected.", // problem 1
|
|
281
|
+
"[09:19:23] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskConfiguration.ts(517,57): ';' expected.", // problem 2
|
|
282
|
+
'[09:19:23] Finished compilation with 2 errors after 1051 ms',
|
|
283
|
+
'[09:20:21] Starting compilation...', // begin pattern 4
|
|
284
|
+
"[09:20:24] Error: /home/test/src/vs/workbench/contrib/tasks/common/problemCollectors.ts(15,30): Cannot find module 'n/uuid'.", // problem 3
|
|
285
|
+
"[09:20:24] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskConfiguration.ts(517,19): ')' expected.", // problem 4
|
|
286
|
+
"[09:20:24] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskConfiguration.ts(517,57): ';' expected.", // problem 5
|
|
287
|
+
'[09:20:24] Finished compilation with 3 errors after 2586 ms',
|
|
288
|
+
'[09:20:24] Starting compilation...', // begin pattern 5
|
|
289
|
+
'[09:20:25] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskTemplates.ts(12,14): Type expected.', // problem 6
|
|
290
|
+
"[09:20:25] Error: /home/test/src/vs/workbench/contrib/tasks/common/problemCollectors.ts(15,30): Cannot find module 'n/uuid'.", // problem 7
|
|
291
|
+
"[09:20:25] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskConfiguration.ts(517,19): ')' expected.", // problem 8
|
|
292
|
+
"[09:20:25] Error: /home/test/src/vs/workbench/contrib/tasks/common/taskConfiguration.ts(517,57): ';' expected.", // problem 9
|
|
293
|
+
'[09:20:25] Finished compilation with 4 errors after 441 ms'
|
|
294
|
+
]);
|
|
295
|
+
(0, chai_1.expect)(allMatches.length).to.eq(14); // 9 events for problems + 5 events for beginner pattern
|
|
296
|
+
});
|
|
297
|
+
it('should return an empty array if no problems are found', () => {
|
|
298
|
+
collector = new task_problem_collector_1.ProblemCollector([startStopMatcher2]);
|
|
299
|
+
collectMatches([]);
|
|
300
|
+
(0, chai_1.expect)(allMatches.length).to.eq(0);
|
|
301
|
+
collectMatches([
|
|
302
|
+
'> test@0.1.0 lint /home/test',
|
|
303
|
+
'> eslint .',
|
|
304
|
+
'',
|
|
305
|
+
'',
|
|
306
|
+
'0 problems (0 error, 0 warnings)',
|
|
307
|
+
]);
|
|
308
|
+
(0, chai_1.expect)(allMatches.length).to.eq(0);
|
|
309
|
+
});
|
|
310
|
+
});
|
|
311
|
+
//# sourceMappingURL=task-problem-collector.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-problem-collector.spec.js","sourceRoot":"","sources":["../../src/node/task-problem-collector.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TaskConfiguration } from '../common';
|
|
2
|
+
import { Task } from './task';
|
|
3
|
+
export declare const TaskRunner: unique symbol;
|
|
4
|
+
/**
|
|
5
|
+
* A {@link TaskRunner} knows how to run a task configuration of a particular type.
|
|
6
|
+
*/
|
|
7
|
+
export interface TaskRunner {
|
|
8
|
+
/**
|
|
9
|
+
* Runs a task based on the given `TaskConfiguration`.
|
|
10
|
+
* @param taskConfig the task configuration that should be executed.
|
|
11
|
+
* @param ctx the execution context.
|
|
12
|
+
*
|
|
13
|
+
* @returns a promise of the (currently running) {@link Task}.
|
|
14
|
+
*/
|
|
15
|
+
run(tskConfig: TaskConfiguration, ctx?: string): Promise<Task>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=task-runner-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runner-protocol.d.ts","sourceRoot":"","sources":["../../src/node/task-runner-protocol.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,eAAO,MAAM,UAAU,eAAuB,CAAC;AAC/C;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;;;;;OAMG;IACH,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TaskRunner = void 0;
|
|
19
|
+
exports.TaskRunner = Symbol('TaskRunner');
|
|
20
|
+
//# sourceMappingURL=task-runner-protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runner-protocol.js","sourceRoot":"","sources":["../../src/node/task-runner-protocol.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAKnE,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Disposable } from '@theia/core/lib/common/disposable';
|
|
2
|
+
import { ProcessTaskRunner } from './process/process-task-runner';
|
|
3
|
+
import { TaskRunner } from './task-runner-protocol';
|
|
4
|
+
export { TaskRunner };
|
|
5
|
+
export declare const TaskRunnerContribution: unique symbol;
|
|
6
|
+
/** The {@link TaskRunnerContribution} can be used to contribute custom {@link TaskRunner}s. */
|
|
7
|
+
export interface TaskRunnerContribution {
|
|
8
|
+
/**
|
|
9
|
+
* Register custom runners using the given {@link TaskRunnerRegistry}.
|
|
10
|
+
* @param runners the common task runner registry.
|
|
11
|
+
*/
|
|
12
|
+
registerRunner(runners: TaskRunnerRegistry): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The {@link TaskRunnerRegistry} is the common component for the registration and provisioning of
|
|
16
|
+
* {@link TaskRunner}s. Theia will collect all {@link TaskRunner}s and invoke {@link TaskRunnerContribution#registerRunner}
|
|
17
|
+
* for each contribution. The `TaskServer` will use the runners provided by this registry to execute `TaskConfiguration`s that
|
|
18
|
+
* have been triggered by the user.
|
|
19
|
+
*/
|
|
20
|
+
export declare class TaskRunnerRegistry {
|
|
21
|
+
protected runners: Map<string, TaskRunner>;
|
|
22
|
+
/** A Task Runner that will be used for executing a Task without an associated Runner. */
|
|
23
|
+
protected defaultRunner: TaskRunner;
|
|
24
|
+
protected readonly processTaskRunner: ProcessTaskRunner;
|
|
25
|
+
protected init(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Registers the given {@link TaskRunner} to execute Tasks of the specified type.
|
|
28
|
+
* If there is already a {@link TaskRunner} registered for the specified type the registration will
|
|
29
|
+
* be overwritten with the new value.
|
|
30
|
+
* @param type the task type for which the given runner should be registered.
|
|
31
|
+
* @param runner the task runner that should be registered.
|
|
32
|
+
*
|
|
33
|
+
* @returns a `Disposable` that can be invoked to unregister the given runner.
|
|
34
|
+
*/
|
|
35
|
+
registerRunner(type: string, runner: TaskRunner): Disposable;
|
|
36
|
+
/**
|
|
37
|
+
* Looks for a registered {@link TaskRunner} for each of the task types in sequence and returns the first that is found
|
|
38
|
+
* If no task runner is registered for any of the types, the default runner is returned.
|
|
39
|
+
* @param types the task types.
|
|
40
|
+
*
|
|
41
|
+
* @returns the registered {@link TaskRunner} or a default runner if none is registered for the specified types.
|
|
42
|
+
*/
|
|
43
|
+
getRunner(...types: string[]): TaskRunner;
|
|
44
|
+
/**
|
|
45
|
+
* Derives all task types for which a {@link TaskRunner} is registered.
|
|
46
|
+
*
|
|
47
|
+
* @returns all derived task types.
|
|
48
|
+
*/
|
|
49
|
+
getRunnerTypes(): string[];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=task-runner.d.ts.map
|