5 instantiations of FileMatcher
Microsoft.Build (2)
Evaluation\Context\EvaluationContext.cs (1)
71FileMatcher = new FileMatcher(FileSystem, FileEntryExpansionCache);
FileMatcher.cs (1)
84public 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>>()); 2397var fileMatcher = new FileMatcher(new FileSystemAdapter(mockFileSystem), mockFileSystem.GetAccessibleFileSystemEntries); 2467private static FileMatcher loopBackFileMatcher = new FileMatcher(FileSystems.Default, GetFileSystemEntriesLoopBack);
117 references to FileMatcher
Microsoft.Build (39)
BackEnd\BuildManager\BuildManager.cs (1)
2783FileMatcher.ClearFileEnumerationsCache();
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); 3089FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(unevaluatedInclude) || 3428var hasCharactersThatRequireSplitting = FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(itemElement.Include); 3461if (!FileMatcher.HasWildcards(existingIncludePiece)) 3466FileMatcher.Result match = FileMatcher.Default.FileMatch(existingIncludePiece, unevaluatedInclude); 3849if (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)
1584bool 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)
84public static FileMatcher Default = new FileMatcher(FileSystems.Default, null); 567fixedDirectoryPart = 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.ClearFileEnumerationsCache();
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)); 1231files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1243var files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1263var files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1288var files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs").FileList; 1292files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs", new List<string> { "a.cs" }).FileList; 1296files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs", new List<string> { "a.cs", "c.cs" }).FileList; 1303FileMatcher.ClearFileEnumerationsCache(); 1331FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart).ShouldBeTrue(); 1355(string[] fileList, FileMatcher.SearchAction action, string excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1359action.ShouldBe(FileMatcher.SearchAction.FailOnDriveEnumeratingWildcard); 1364(fileList, action, excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1369action.ShouldBe(FileMatcher.SearchAction.FailOnDriveEnumeratingWildcard); 1396(_, FileMatcher.SearchAction action, string excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1400action.ShouldBe(FileMatcher.SearchAction.LogDriveEnumeratingWildcard); 1404(_, action, excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1409action.ShouldBe(FileMatcher.SearchAction.LogDriveEnumeratingWildcard); 1440FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart).ShouldBeFalse(); 1446strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\" : "/").ToArray(); 1450strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\" : "/").ToArray(); 1454strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1458strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1462strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1468strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine").ToArray(); 1472strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine").ToArray(); 1476strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1480strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1484strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1948FileMatcher.Default.GetFileSpecInfo( 1956? FileMatcher.RegularExpressionFromFileSpec(fixedDirectoryPart, wildcardDirectoryPart, filenamePart) 2066if (normalizedCandidate.IndexOfAny(FileMatcher.directorySeparatorCharacters) != -1) 2081files.Add(FileMatcher.Normalize(candidate)); 2090files.Add(FileMatcher.Normalize(candidate)); 2104files.Add(FileMatcher.Normalize(candidate)); 2108else if (!FileMatcher.HasWildcards(pattern)) 2144int nextSlash = normalizedCandidate.IndexOfAny(FileMatcher.directorySeparatorCharacters, path.Length + 1); 2159directories.Add(FileMatcher.Normalize(match)); 2170directories.Add(FileMatcher.Normalize(match)); 2191internal IReadOnlyList<string> GetAccessibleFileSystemEntries(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 2196if (entityType == FileMatcher.FileSystemEntity.Files || entityType == FileMatcher.FileSystemEntity.FilesAndDirectories) 2203if (entityType == FileMatcher.FileSystemEntity.Directories || entityType == FileMatcher.FileSystemEntity.FilesAndDirectories) 2397var fileMatcher = new FileMatcher(new FileSystemAdapter(mockFileSystem), mockFileSystem.GetAccessibleFileSystemEntries); 2458private static IReadOnlyList<string> GetFileSystemEntriesLoopBack(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 2467private static FileMatcher loopBackFileMatcher = new FileMatcher(FileSystems.Default, GetFileSystemEntriesLoopBack); 2599FileMatcher.Result match = FileMatcher.Default.FileMatch(filespec, fileToMatch);