Skip to content

Commit

Permalink
Make dependsOn work with labels
Browse files Browse the repository at this point in the history
  • Loading branch information
dbaeumer committed May 29, 2017
1 parent 212e44d commit c2a17a7
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -686,7 +686,7 @@ class TaskService extends EventEmitter implements ITaskService {
toExecute = resolver.resolve(task);
} else {
requested = task.name;
toExecute = resolver.resolve(task._id);
toExecute = task;
}
if (!toExecute) {
throw new TaskError(Severity.Info, nls.localize('TaskServer.noTask', 'Requested task {0} to execute not found.', requested), TaskErrors.TaskNotFound);
Expand Down Expand Up @@ -738,13 +738,15 @@ class TaskService extends EventEmitter implements ITaskService {

private createRunnableTask(sets: TaskSet[], group: TaskGroup): { task: Task; resolver: ITaskResolver } {
let uuidMap: IStringDictionary<Task> = Object.create(null);
let labelMap: IStringDictionary<Task> = Object.create(null);
let identifierMap: IStringDictionary<Task> = Object.create(null);

let workspaceTasks: Task[] = [];
let extensionTasks: Task[] = [];
sets.forEach((set) => {
set.tasks.forEach((task) => {
uuidMap[task._id] = task;
labelMap[computeTaskLabel(task)] = task;
identifierMap[task.identifier] = task;
if (group && task.group === group) {
if (task._source.kind === TaskSourceKind.Workspace) {
Expand All @@ -757,11 +759,7 @@ class TaskService extends EventEmitter implements ITaskService {
});
let resolver: ITaskResolver = {
resolve: (id: string) => {
let result = uuidMap[id];
if (result) {
return result;
}
return identifierMap[id];
return uuidMap[id] || labelMap[id] || identifierMap[id];
}
};
if (workspaceTasks.length > 0) {
Expand Down Expand Up @@ -791,22 +789,18 @@ class TaskService extends EventEmitter implements ITaskService {
}

private createResolver(sets: TaskSet[]): ITaskResolver {
let uuidMap: IStringDictionary<Task> = Object.create(null);
let labelMap: IStringDictionary<Task> = Object.create(null);
let identifierMap: IStringDictionary<Task> = Object.create(null);

sets.forEach((set) => {
set.tasks.forEach((task) => {
uuidMap[task._id] = task;
labelMap[computeTaskLabel(task)] = task;
identifierMap[task.identifier] = task;
});
});
return {
resolve: (id: string) => {
let result = uuidMap[id];
if (result) {
return result;
}
return identifierMap[id];
return labelMap[id] || identifierMap[id];
}
};
}
Expand Down

0 comments on commit c2a17a7

Please sign in to comment.