5 instantiations of FileMatcher
Microsoft.Build (2)
Evaluation\Context\EvaluationContext.cs (1)
71FileMatcher = new FileMatcher(FileSystem, FileEntryExpansionCache);
FileMatcher.cs (1)
90public static FileMatcher Default = new FileMatcher(FileSystems.Default, null);
Microsoft.Build.Engine.UnitTests (3)
FileMatcher_Tests.cs (3)
133var fileMatcherWithCache = new FileMatcher(FileSystems.Default, new ConcurrentDictionary<string, IReadOnlyList<string>>()); 2423var fileMatcher = new FileMatcher(new FileSystemAdapter(mockFileSystem), mockFileSystem.GetAccessibleFileSystemEntries); 2493private static FileMatcher loopBackFileMatcher = new FileMatcher(FileSystems.Default, GetFileSystemEntriesLoopBack);
117 references to FileMatcher
Microsoft.Build (39)
BackEnd\BuildManager\BuildManager.cs (1)
2830FileMatcher.ClearCaches();
Construction\ProjectItemElement.cs (1)
344_includeHasWildcards = (Include != null) && FileMatcher.HasWildcards(_include);
Definition\BuiltInMetadata.cs (2)
110FileMatcher.Result match = FileMatcher.Default.FileMatch(evaluatedIncludeBeforeWildcardExpansion, evaluatedInclude);
Definition\Project.cs (7)
1707var hasCharactersThatRequireSplitting = FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(itemElement.Include); 3103FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(unevaluatedInclude) || 3442var hasCharactersThatRequireSplitting = FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(itemElement.Include); 3475if (!FileMatcher.HasWildcards(existingIncludePiece)) 3480FileMatcher.Result match = FileMatcher.Default.FileMatch(existingIncludePiece, unevaluatedInclude); 3863if (FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(unevaluatedInclude))
Definition\ProjectItem.cs (1)
705if (_xml.Count == 0 /* no metadata */ && _project.IsSuitableExistingItemXml(_xml, name, null /* no metadata */) && !FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(name))
Evaluation\Context\EvaluationContext.cs (1)
56internal FileMatcher FileMatcher { get; }
Evaluation\Evaluator.cs (1)
1589bool containsWildcards = FileMatcher.HasWildcards(importElement.Project);
Evaluation\ItemSpec.cs (1)
227if (!FileMatcher.HasWildcards(splitEscaped))
Evaluation\LazyItemEvaluator.cs (1)
50protected FileMatcher FileMatcher => EvaluationContext.FileMatcher;
Evaluation\LazyItemEvaluator.LazyItemOperation.cs (1)
53protected FileMatcher FileMatcher => _lazyEvaluator.FileMatcher;
FileMatcher.cs (2)
90public static FileMatcher Default = new FileMatcher(FileSystems.Default, null); 577fixedDirectoryPart = FileMatcher.GetLongPathName(fixedDirectoryPart, _getFileSystemEntries);
FileSystem\DirectoryCacheFileSystemWrapper.cs (2)
88return FileMatcher.IsAllFilesWildcard(searchPattern) || FileMatcher.IsMatch(fileName, searchPattern);
Globbing\MSBuildGlob.cs (4)
127FileMatcher.GetRegexMatchInfo( 184FileMatcher.Default.GetFileSpecInfo( 201string matchFileExpression = FileMatcher.RegularExpressionFromFileSpec(fixedDirectoryPart, wildcardDirectoryPart, filenamePart); 210RegexOptions regexOptions = FileMatcher.DefaultRegexOptions;
Utilities\EngineFileUtilities.cs (10)
70fileMatcher: FileMatcher.Default, 106FileMatcher? fileMatcher = null, 121fileMatcher ?? FileMatcher.Default, 133if (!FileMatcher.HasWildcards(filespecEscaped)) 178FileMatcher fileMatcher, 219FileMatcher.Default.GetFileSpecInfo(filespecUnescaped, out string directoryPart, out string wildcardPart, out string filenamePart, out bool needsRecursion, out bool isLegalFileSpec); 222bool logDriveEnumeratingWildcard = FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart); 229FileMatcher.Default.GetFileSpecInfo(excludeSpec, out directoryPart, out wildcardPart, out filenamePart, out needsRecursion, out isLegalFileSpec); 230bool logDriveEnumeratingWildcardFromExludeSpec = FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart); 561var hasBothWildcardsAndEscapedWildcards = FileMatcher.HasWildcards(exclude) && EscapingUtilities.ContainsEscapedWildcards(exclude);
Utilities\FileSpecMatchTester.cs (4)
90if (!FileMatcher.IsMatch(filename, _filenamePattern)) 107FileMatcher.Default.SplitFileSpec( 121if (string.IsNullOrEmpty(fixedDirPart) && FileMatcher.IsRecursiveDirectoryMatch(wildcardDirectoryPart)) 138FileMatcher.Default.GetFileSpecInfoWithRegexObject(
Microsoft.Build.Engine.UnitTests (78)
Evaluation\ItemEvaluation_Tests.cs (1)
696FileMatcher.ClearCaches();
FileMatcher_Tests.cs (77)
68string[] fileMatches = FileMatcher.Default.GetFiles(testFolder.Path, pattern).FileList; 84string[] fileMatches = FileMatcher.Default.GetFiles(testFolder.Path, "**").FileList; 111void VerifyImpl(FileMatcher fileMatcher, string include, string[] excludes, bool shouldHaveNoMatches = false, string customMessage = null) 133var fileMatcherWithCache = new FileMatcher(FileSystems.Default, new ConcurrentDictionary<string, IReadOnlyList<string>>()); 138VerifyImpl(FileMatcher.Default, include, excludes, shouldHaveNoMatches, customMessage); 593Assert.Equal(input.Item3, FileMatcher.IsMatch(input.Item1, input.Item2)); 594Assert.Equal(input.Item3, FileMatcher.IsMatch(input.Item1.ToUpperInvariant(), input.Item2)); 595Assert.Equal(input.Item3, FileMatcher.IsMatch(input.Item1, input.Item2.ToUpperInvariant())); 611private static IReadOnlyList<string> GetFileSystemEntries(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 777FileMatcher.Normalize(inputString).ShouldBe(expectedString); 829string longPath = FileMatcher.GetLongPathName( 831new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 845string longPath = FileMatcher.GetLongPathName( 847new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 861string longPath = FileMatcher.GetLongPathName( 863new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 877string longPath = FileMatcher.GetLongPathName( 879new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 893string longPath = FileMatcher.GetLongPathName( 895new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 909string longPath = FileMatcher.GetLongPathName( 911new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 925string longPath = FileMatcher.GetLongPathName( 927new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 941string longPath = FileMatcher.GetLongPathName( 943new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 958string longPath = FileMatcher.GetLongPathName( 960new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 1257files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1269var files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1289var files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1314var files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs").FileList; 1318files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs", new List<string> { "a.cs" }).FileList; 1322files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs", new List<string> { "a.cs", "c.cs" }).FileList; 1329FileMatcher.ClearCaches(); 1357FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart).ShouldBeTrue(); 1381(string[] fileList, FileMatcher.SearchAction action, string excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1385action.ShouldBe(FileMatcher.SearchAction.FailOnDriveEnumeratingWildcard); 1390(fileList, action, excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1395action.ShouldBe(FileMatcher.SearchAction.FailOnDriveEnumeratingWildcard); 1422(_, FileMatcher.SearchAction action, string excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1426action.ShouldBe(FileMatcher.SearchAction.LogDriveEnumeratingWildcard); 1430(_, action, excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1435action.ShouldBe(FileMatcher.SearchAction.LogDriveEnumeratingWildcard); 1466FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart).ShouldBeFalse(); 1472strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\" : "/").ToArray(); 1476strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\" : "/").ToArray(); 1480strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1484strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1488strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1494strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine").ToArray(); 1498strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine").ToArray(); 1502strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1506strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1510strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1974FileMatcher.Default.GetFileSpecInfo( 1982? FileMatcher.RegularExpressionFromFileSpec(fixedDirectoryPart, wildcardDirectoryPart, filenamePart) 2092if (normalizedCandidate.IndexOfAny(FileMatcher.directorySeparatorCharacters) != -1) 2107files.Add(FileMatcher.Normalize(candidate)); 2116files.Add(FileMatcher.Normalize(candidate)); 2130files.Add(FileMatcher.Normalize(candidate)); 2134else if (!FileMatcher.HasWildcards(pattern)) 2170int nextSlash = normalizedCandidate.IndexOfAny(FileMatcher.directorySeparatorCharacters, path.Length + 1); 2185directories.Add(FileMatcher.Normalize(match)); 2196directories.Add(FileMatcher.Normalize(match)); 2217internal IReadOnlyList<string> GetAccessibleFileSystemEntries(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 2222if (entityType == FileMatcher.FileSystemEntity.Files || entityType == FileMatcher.FileSystemEntity.FilesAndDirectories) 2229if (entityType == FileMatcher.FileSystemEntity.Directories || entityType == FileMatcher.FileSystemEntity.FilesAndDirectories) 2423var fileMatcher = new FileMatcher(new FileSystemAdapter(mockFileSystem), mockFileSystem.GetAccessibleFileSystemEntries); 2484private static IReadOnlyList<string> GetFileSystemEntriesLoopBack(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 2493private static FileMatcher loopBackFileMatcher = new FileMatcher(FileSystems.Default, GetFileSystemEntriesLoopBack); 2625FileMatcher.Result match = FileMatcher.Default.FileMatch(filespec, fileToMatch);