public IEnumerable <LocationInFile> FindInFileContents(MemberOrSearchTerm memberUsageToFind, string fileContents) { var results = new List <LocationInFile>(); //remove comments: var cleanedLines = FortranParseHelper.CleanLines(fileContents.Split('\n'), false, false).ToList(); int lineNr = 0; foreach (var line in cleanedLines) { lineNr++; SearchInLine(line, memberUsageToFind.Name, lineNr, results); } return(results); }
public IEnumerable <UsageResult> FindInFile(MemberOrSearchTerm memberUsageToFind, SyntaxTree syntaxTree) { var results = new List <UsageResult>(); var fileContents = syntaxTree.CodeFile.Contents; var locations = FindInFileContents(memberUsageToFind, fileContents); foreach (var location in locations) { var enclosingMember = FortranParseHelper.GetEnclosingMember(syntaxTree.Members, location.Line); if (enclosingMember != null && enclosingMember == memberUsageToFind.Member) { continue; //definition/declaration, not usage } results.Add(new UsageResult(syntaxTree, location, enclosingMember, location.LineStr)); } return(results); }
public IList <UsageResult> FindInFiles(MemberOrSearchTerm memberUsageToFind, IEnumerable <SyntaxTree> syntaxTrees) { return(syntaxTrees.SelectMany(st => FindInFile(memberUsageToFind, st)).ToList()); }