From 1f86149904dfa8f2b61b48439533dc3e5d003fd6 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Fri, 21 Feb 2020 11:40:07 +0100 Subject: [PATCH] Allow user tasks to be passed as parameters to Run Task Fixes #90344 --- .../contrib/tasks/browser/abstractTaskService.ts | 13 +++++++------ src/vs/workbench/contrib/tasks/common/taskSystem.ts | 2 +- src/vs/workbench/contrib/tasks/common/tasks.ts | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 4eff5ae0290..728fff5fac2 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -1167,8 +1167,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer } }); let resolver: ITaskResolver = { - resolve: (uri: URI, alias: string) => { - let data = resolverData.get(uri.toString()); + resolve: (uri: URI | string, alias: string) => { + let data = resolverData.get(typeof uri === 'string' ? uri : uri.toString()); if (!data) { return undefined; } @@ -1234,8 +1234,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer }); return { - resolve: (uri: URI, identifier: string | TaskIdentifier | undefined) => { - let data = uri ? resolverData.get(uri.toString()) : undefined; + resolve: (uri: URI | string, identifier: string | TaskIdentifier | undefined) => { + let data = resolverData.get(typeof uri === 'string' ? uri : uri.toString()); if (!data || !identifier) { return undefined; } @@ -2116,9 +2116,10 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer if (identifier !== undefined) { this.getGroupedTasks().then((grouped) => { let resolver = this.createResolver(grouped); - let folders = this.contextService.getWorkspace().folders; + let folders: (IWorkspaceFolder | string)[] = this.contextService.getWorkspace().folders; + folders = folders.concat([USER_TASKS_GROUP_KEY]); for (let folder of folders) { - let task = resolver.resolve(folder.uri, identifier); + let task = resolver.resolve(typeof folder === 'string' ? folder : 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 diff --git a/src/vs/workbench/contrib/tasks/common/taskSystem.ts b/src/vs/workbench/contrib/tasks/common/taskSystem.ts index 888d79b912c..0ac0d5799a6 100644 --- a/src/vs/workbench/contrib/tasks/common/taskSystem.ts +++ b/src/vs/workbench/contrib/tasks/common/taskSystem.ts @@ -93,7 +93,7 @@ export interface ITaskExecuteResult { } export interface ITaskResolver { - resolve(uri: URI, identifier: string | KeyedTaskIdentifier | undefined): Task | undefined; + resolve(uri: URI | string, identifier: string | KeyedTaskIdentifier | undefined): Task | undefined; } export interface TaskTerminateResponse extends TerminateResponse { diff --git a/src/vs/workbench/contrib/tasks/common/tasks.ts b/src/vs/workbench/contrib/tasks/common/tasks.ts index 8130ab56092..2fcd3f90195 100644 --- a/src/vs/workbench/contrib/tasks/common/tasks.ts +++ b/src/vs/workbench/contrib/tasks/common/tasks.ts @@ -438,7 +438,7 @@ export interface KeyedTaskIdentifier extends TaskIdentifier { } export interface TaskDependency { - uri: URI; + uri: URI | string; task: string | KeyedTaskIdentifier | undefined; } -- GitLab