IReadOnlyList <SearchResultMatch> FindAndFixIssues(List <FileName> fileNames, List <IssueManager.IssueProvider> providers, IProgressMonitor progress, out int fixedIssueCount)
        {
            fixedIssueCount = 0;
            List <SearchResultMatch> remainingIssues = new List <SearchResultMatch>();

            for (int i = 0; i < fileNames.Count; i++)
            {
                remainingIssues.AddRange(FindAndFixIssues(fileNames[i], providers, progress.CancellationToken, ref fixedIssueCount));
                progress.Report((double)i / fileNames.Count);
            }
            return(remainingIssues);
        }
		IReadOnlyList<SearchResultMatch> FindAndFixIssues(List<FileName> fileNames, List<IssueManager.IssueProvider> providers, IProgressMonitor progress, out int fixedIssueCount)
		{
			fixedIssueCount = 0;
			List<SearchResultMatch> remainingIssues = new List<SearchResultMatch>();
			for (int i = 0; i < fileNames.Count; i++) {
				remainingIssues.AddRange(FindAndFixIssues(fileNames[i], providers, progress.CancellationToken, ref fixedIssueCount));
				progress.Report((double)i / fileNames.Count);
			}
			return remainingIssues;
		}