public async Task <List <TaskRunnerInformation> > FindTasks( IWorkspaceFileObject workspaceFileObject, HashSet <FilePath> filesAdded) { List <TaskRunnerInformation> foundTasks = null; foreach (FilePath configFile in GetFiles(workspaceFileObject)) { if (!filesAdded.Contains(configFile)) { ITaskRunner runner = taskRunnerProvider.GetTaskRunner(configFile); if (runner != null) { ITaskRunnerConfig config = await runner.ParseConfig(null, configFile); var info = new TaskRunnerInformation(workspaceFileObject, config, runner.Options, configFile); if (foundTasks == null) { foundTasks = new List <TaskRunnerInformation> (); } foundTasks.Add(info); filesAdded.Add(configFile); } } } return(foundTasks); }
public TaskRunnerBindings(ITaskRunnerConfig config, FilePath configFile) { this.config = config; this.configFile = configFile; if (config != null) { Init(); } }
public TaskRunnerInformation( IWorkspaceFileObject workspaceFileObject, ITaskRunnerConfig config, IEnumerable <ITaskRunnerOption> options, FilePath configFile) { WorkspaceFileObject = workspaceFileObject; Config = config; Options = options; ConfigFile = configFile; Name = GetName(); Bindings = new TaskRunnerBindings(Config, configFile); }
async Task AddTaskRunner(ITaskRunner runner, FilePath configFile, Project project) { ITaskRunnerConfig config = await runner.ParseConfig(null, configFile); var info = new TaskRunnerInformation(project, config, runner.Options, configFile); var groupedTask = GetGroupedTask(project); if (groupedTask == null) { groupedTask = new GroupedTaskRunnerInformation(project); groupedTasks = groupedTasks.Add(groupedTask); } groupedTask.AddTask(info); OnTasksChanged(); }