@@ -723,7 +723,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
723
723
} ) ;
724
724
}
725
725
726
- public async getTask ( folder : IWorkspace | IWorkspaceFolder | string , identifier : string | ITaskIdentifier , compareId : boolean = false ) : Promise < Task | undefined > {
726
+ public async getTask ( folder : IWorkspace | IWorkspaceFolder | string , identifier : string | ITaskIdentifier , compareId : boolean = false , type : string | undefined = undefined ) : Promise < Task | undefined > {
727
727
if ( ! ( await this . _trust ( ) ) ) {
728
728
return ;
729
729
}
@@ -760,7 +760,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
760
760
}
761
761
762
762
// We didn't find the task, so we need to ask all resolvers about it
763
- const map = await this . _getGroupedTasks ( ) ;
763
+ const map = await this . _getGroupedTasks ( { type } ) ;
764
764
let values = map . get ( folder ) ;
765
765
values = values . concat ( map . get ( USER_TASKS_GROUP_KEY ) ) ;
766
766
@@ -1834,11 +1834,12 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
1834
1834
await this . _updateWorkspaceTasks ( ) ;
1835
1835
const taskFolder = task . getWorkspaceFolder ( ) ;
1836
1836
const taskIdentifier = task . configurationProperties . identifier ;
1837
+ const taskType = CustomTask . is ( task ) ? task . customizes ( ) ?. type : ( ContributedTask . is ( task ) ? task . type : undefined ) ;
1837
1838
// Since we save before running tasks, the task may have changed as part of the save.
1838
1839
// However, if the TaskRunSource is not User, then we shouldn't try to fetch the task again
1839
1840
// since this can cause a new'd task to get overwritten with a provided task.
1840
1841
taskToRun = ( ( taskFolder && taskIdentifier && ( runSource === TaskRunSource . User ) )
1841
- ? await this . getTask ( taskFolder , taskIdentifier ) : task ) ?? task ;
1842
+ ? await this . getTask ( taskFolder , taskIdentifier , false , taskType ) : task ) ?? task ;
1842
1843
}
1843
1844
await ProblemMatcherRegistry . onReady ( ) ;
1844
1845
const executeResult = runSource === TaskRunSource . Reconnect ? this . _getTaskSystem ( ) . reconnect ( taskToRun , resolver ) : this . _getTaskSystem ( ) . run ( taskToRun , resolver ) ;
0 commit comments