提交 1f861499 编写于 作者: A Alex Ross

Allow user tasks to be passed as parameters to Run Task

Fixes #90344
上级 a30ddfa5
...@@ -1167,8 +1167,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer ...@@ -1167,8 +1167,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
} }
}); });
let resolver: ITaskResolver = { let resolver: ITaskResolver = {
resolve: (uri: URI, alias: string) => { resolve: (uri: URI | string, alias: string) => {
let data = resolverData.get(uri.toString()); let data = resolverData.get(typeof uri === 'string' ? uri : uri.toString());
if (!data) { if (!data) {
return undefined; return undefined;
} }
...@@ -1234,8 +1234,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer ...@@ -1234,8 +1234,8 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
}); });
return { return {
resolve: (uri: URI, identifier: string | TaskIdentifier | undefined) => { resolve: (uri: URI | string, identifier: string | TaskIdentifier | undefined) => {
let data = uri ? resolverData.get(uri.toString()) : undefined; let data = resolverData.get(typeof uri === 'string' ? uri : uri.toString());
if (!data || !identifier) { if (!data || !identifier) {
return undefined; return undefined;
} }
...@@ -2116,9 +2116,10 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer ...@@ -2116,9 +2116,10 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
if (identifier !== undefined) { if (identifier !== undefined) {
this.getGroupedTasks().then((grouped) => { this.getGroupedTasks().then((grouped) => {
let resolver = this.createResolver(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) { 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) { if (task) {
this.run(task).then(undefined, reason => { 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 // eat the error, it has already been surfaced to the user and we don't care about it here
......
...@@ -93,7 +93,7 @@ export interface ITaskExecuteResult { ...@@ -93,7 +93,7 @@ export interface ITaskExecuteResult {
} }
export interface ITaskResolver { 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 { export interface TaskTerminateResponse extends TerminateResponse {
......
...@@ -438,7 +438,7 @@ export interface KeyedTaskIdentifier extends TaskIdentifier { ...@@ -438,7 +438,7 @@ export interface KeyedTaskIdentifier extends TaskIdentifier {
} }
export interface TaskDependency { export interface TaskDependency {
uri: URI; uri: URI | string;
task: string | KeyedTaskIdentifier | undefined; task: string | KeyedTaskIdentifier | undefined;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册