@@ -21,6 +21,8 @@ import { FolderOperation } from "../WorkspaceContext";
21
21
import contextKeys from "../contextKeys" ;
22
22
import { Dependency , ResolvedDependency , Target } from "../SwiftPackage" ;
23
23
import { FolderContext } from "../FolderContext" ;
24
+ import { getPlatformConfig , resolveTaskCwd } from "../utilities/tasks" ;
25
+ import { SwiftTask , TaskPlatformSpecificConfig } from "../tasks/SwiftTaskProvider" ;
24
26
25
27
const LOADING_ICON = "loading~spin" ;
26
28
/**
@@ -573,17 +575,20 @@ export class ProjectPanelProvider implements vscode.TreeDataProvider<TreeNode> {
573
575
}
574
576
575
577
private async tasks ( folderContext : FolderContext ) : Promise < TaskNode [ ] > {
576
- const tasks = await vscode . tasks . fetchTasks ( ) ;
578
+ const tasks = await vscode . tasks . fetchTasks ( { type : "swift" } ) ;
577
579
578
580
return (
579
581
tasks
580
582
// Plugin tasks are shown under the Commands header
581
- . filter (
582
- task =>
583
- ( ! task . definition . cwd ||
584
- task . definition . cwd === folderContext . folder . fsPath ) &&
585
- task . source !== "swift-plugin"
586
- )
583
+ . filter ( task => {
584
+ const platform : TaskPlatformSpecificConfig | undefined =
585
+ getPlatformConfig ( task ) ;
586
+ return (
587
+ ! task . definition . cwd ||
588
+ resolveTaskCwd ( task , platform ?. cwd ?? task . definition . cwd ) ===
589
+ folderContext . folder . fsPath
590
+ ) ;
591
+ } )
587
592
. map (
588
593
( task , i ) =>
589
594
new TaskNode (
@@ -631,7 +636,7 @@ export class ProjectPanelProvider implements vscode.TreeDataProvider<TreeNode> {
631
636
* This is a workaround for the lack of an event when tasks are added or removed.
632
637
*/
633
638
class TaskPoller implements vscode . Disposable {
634
- private previousTasks : vscode . Task [ ] = [ ] ;
639
+ private previousTasks : SwiftTask [ ] = [ ] ;
635
640
private timeout ?: NodeJS . Timeout ;
636
641
private static POLL_INTERVAL = 5000 ;
637
642
@@ -641,15 +646,13 @@ class TaskPoller implements vscode.Disposable {
641
646
642
647
private async pollTasks ( ) {
643
648
try {
644
- const tasks = await vscode . tasks . fetchTasks ( ) ;
649
+ const tasks = ( await vscode . tasks . fetchTasks ( { type : "swift" } ) ) as SwiftTask [ ] ;
645
650
const tasksChanged =
646
651
tasks . length !== this . previousTasks . length ||
647
652
tasks . some ( ( task , i ) => {
648
653
const prev = this . previousTasks [ i ] ;
649
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
650
- const c1 = ( task . execution as any ) . command ;
651
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
652
- const c2 = ( prev . execution as any ) . command ;
654
+ const c1 = task . execution . command ;
655
+ const c2 = prev . execution . command ;
653
656
return (
654
657
! prev ||
655
658
task . name !== prev . name ||
0 commit comments