Skip to content

Commit

Permalink
Task tweaks for tasks in workspace file
Browse files Browse the repository at this point in the history
Part of #1435
  • Loading branch information
alexr00 committed Oct 17, 2019
1 parent 3fc8e40 commit c179d2f
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 13 deletions.
13 changes: 7 additions & 6 deletions src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1054,8 +1054,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
}
});
let resolver: ITaskResolver = {
resolve: (workspaceFolder: IWorkspaceFolder, alias: string) => {
let data = resolverData.get(workspaceFolder.uri.toString());
resolve: (uri: URI, alias: string) => {
let data = resolverData.get(uri.toString());
if (!data) {
return undefined;
}
Expand Down Expand Up @@ -1086,7 +1086,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
{ reevaluateOnRerun: true },
{
identifier: id,
dependsOn: extensionTasks.map((extensionTask) => { return { workspaceFolder: extensionTask.getWorkspaceFolder()!, task: extensionTask._id }; }),
dependsOn: extensionTasks.map((extensionTask) => { return { uri: extensionTask.getWorkspaceFolder()!.uri, task: extensionTask._id }; }),
name: id,
}
);
Expand Down Expand Up @@ -1119,9 +1119,10 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
}
}
});

return {
resolve: (workspaceFolder: IWorkspaceFolder, identifier: string | TaskIdentifier | undefined) => {
let data = resolverData.get(workspaceFolder.uri.toString());
resolve: (uri: URI, identifier: string | TaskIdentifier | undefined) => {
let data = uri ? resolverData.get(uri.toString()) : undefined;
if (!data || !identifier) {
return undefined;
}
Expand Down Expand Up @@ -1949,7 +1950,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
let resolver = this.createResolver(grouped);
let folders = this.contextService.getWorkspace().folders;
for (let folder of folders) {
let task = resolver.resolve(folder, identifier);
let task = resolver.resolve(folder.uri, identifier);
if (task) {
this.run(task).then(undefined, reason => {
// eat the error, it has already been surfaced to the user and we don't care about it here
Expand Down
4 changes: 2 additions & 2 deletions src/vs/workbench/contrib/tasks/browser/terminalTaskSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ export class TerminalTaskSystem implements ITaskSystem {
let promises: Promise<ITaskSummary>[] = [];
if (task.configurationProperties.dependsOn) {
for (const dependency of task.configurationProperties.dependsOn) {
let dependencyTask = resolver.resolve(dependency.workspaceFolder, dependency.task!);
let dependencyTask = resolver.resolve(dependency.uri, dependency.task!);
if (dependencyTask) {
let key = dependencyTask.getMapKey();
let promise = this.activeTasks[key] ? this.activeTasks[key].promise : undefined;
Expand All @@ -363,7 +363,7 @@ export class TerminalTaskSystem implements ITaskSystem {
this.log(nls.localize('dependencyFailed',
'Couldn\'t resolve dependent task \'{0}\' in workspace folder \'{1}\'',
Types.isString(dependency.task) ? dependency.task : JSON.stringify(dependency.task, undefined, 0),
dependency.workspaceFolder.name
dependency.uri.toString()
));
this.showOutput();
}
Expand Down
7 changes: 5 additions & 2 deletions src/vs/workbench/contrib/tasks/common/taskConfiguration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1226,9 +1226,12 @@ namespace GroupKind {
namespace TaskDependency {
export function from(this: void, external: string | TaskIdentifier, context: ParseContext): Tasks.TaskDependency | undefined {
if (Types.isString(external)) {
return { workspaceFolder: context.workspaceFolder, task: external };
return { uri: context.workspace && context.workspace.configuration ? context.workspace.configuration : context.workspaceFolder.uri, task: external };
} else if (TaskIdentifier.is(external)) {
return { workspaceFolder: context.workspaceFolder, task: Tasks.TaskDefinition.createTaskIdentifier(external as Tasks.TaskIdentifier, context.problemReporter) };
return {
uri: context.workspace && context.workspace.configuration ? context.workspace.configuration : context.workspaceFolder.uri,
task: Tasks.TaskDefinition.createTaskIdentifier(external as Tasks.TaskIdentifier, context.problemReporter)
};
} else {
return undefined;
}
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/contrib/tasks/common/taskSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export interface ITaskExecuteResult {
}

export interface ITaskResolver {
resolve(workspaceFolder: IWorkspaceFolder, identifier: string | KeyedTaskIdentifier | undefined): Task | undefined;
resolve(uri: URI, identifier: string | KeyedTaskIdentifier | undefined): Task | undefined;
}

export interface TaskTerminateResponse extends TerminateResponse {
Expand Down
4 changes: 2 additions & 2 deletions src/vs/workbench/contrib/tasks/common/tasks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as Types from 'vs/base/common/types';
import * as resources from 'vs/base/common/resources';
import { IJSONSchemaMap } from 'vs/base/common/jsonSchema';
import * as Objects from 'vs/base/common/objects';
import { UriComponents } from 'vs/base/common/uri';
import { UriComponents, URI } from 'vs/base/common/uri';

import { ProblemMatcher } from 'vs/workbench/contrib/tasks/common/problemMatcher';
import { IWorkspaceFolder, IWorkspace } from 'vs/platform/workspace/common/workspace';
Expand Down Expand Up @@ -438,7 +438,7 @@ export interface KeyedTaskIdentifier extends TaskIdentifier {
}

export interface TaskDependency {
workspaceFolder: IWorkspaceFolder;
uri: URI;
task: string | KeyedTaskIdentifier | undefined;
}

Expand Down

0 comments on commit c179d2f

Please sign in to comment.