5 types derived from PatternMatcher
Microsoft.CodeAnalysis.Workspaces (5)
PatternMatching\CompoundPatternMatcher.cs (1)
17private sealed class CompoundPatternMatcher : PatternMatcher
PatternMatching\ContainerPatternMatcher.cs (1)
19private sealed partial class ContainerPatternMatcher : PatternMatcher
PatternMatching\FuzzyPatternMatcher.cs (1)
20internal sealed class FuzzyPatternMatcher : PatternMatcher
PatternMatching\RegexPatternMatcher.cs (1)
23: PatternMatcher(includeMatchedSpans, culture)
PatternMatching\SimplePatternMatcher.cs (1)
15internal sealed partial class SimplePatternMatcher : PatternMatcher
33 references to PatternMatcher
Microsoft.CodeAnalysis.Features (11)
Completion\PatternMatchHelper.cs (6)
38private readonly Dictionary<(CultureInfo, bool includeMatchedSpans), PatternMatcher> _patternMatcherMap = []; 50var patternMatcher = GetPatternMatcher(culture, includeMatchSpans); 81private PatternMatcher GetPatternMatcher(CultureInfo culture, bool includeMatchedSpans) 86if (!_patternMatcherMap.TryGetValue(key, out var patternMatcher)) 88patternMatcher = PatternMatcher.CreatePatternMatcher( 250foreach (var matcher in _patternMatcherMap.Values)
NavigateTo\AbstractNavigateToSearchService.InProcess.cs (5)
86var (patternName, containerOpt) = PatternMatcher.GetNameAndContainer(searchPattern); 149using var nameMatcher = PatternMatcher.CreateNameMatcher( 154using var containerMatcher = PatternMatcher.CreateContainerMatcher(
Microsoft.CodeAnalysis.Workspaces (22)
FindSymbols\Declarations\DeclarationFinder_SourceDeclarations.cs (5)
211var (namePart, containerPart) = PatternMatcher.GetNameAndContainer(pattern); 216using var nameMatcher = PatternMatcher.CreatePatternMatcher(namePart, includeMatchedSpans: false); 231using var containerPatternMatcher = PatternMatcher.CreateDotSeparatedContainerMatcher(containerPart, includeMatchedSpans: false);
FindSymbols\TopLevelSyntaxTree\NavigateToSearchIndex.NavigateToSearchInfo.cs (4)
356/// the <see cref="PatternMatcher"/>'s preprocessing: strips leading non-letter/digit 359/// Since the <see cref="PatternMatcher"/> requires all words to match, failing fast on the 396while (pattern.Length > 0 && !PatternMatcher.IsWordChar(pattern[0])) 399while (pattern.Length > 0 && !PatternMatcher.IsWordChar(pattern[^1]))
PatternMatching\CompoundPatternMatcher.cs (6)
19private readonly ArrayBuilder<PatternMatcher> _matchers; 21public CompoundPatternMatcher(ReadOnlySpan<PatternMatcher> matchers) 24_matchers = ArrayBuilder<PatternMatcher>.GetInstance(matchers.Length); 25foreach (var matcher in matchers) 31foreach (var matcher in _matchers) 39foreach (var matcher in _matchers)
PatternMatching\PatternMatcher.cs (5)
61public static PatternMatcher CreatePatternMatcher( 69public static PatternMatcher CreatePatternMatcher( 88public static PatternMatcher? CreateDotSeparatedContainerMatcher( 105public static PatternMatcher? CreateNameMatcher( 118public static PatternMatcher? CreateContainerMatcher(
PatternMatching\PatternMatcherExtensions.cs (2)
12public static PatternMatch? GetFirstMatch(this PatternMatcher matcher, string? candidate) 19public static bool Matches(this PatternMatcher matcher, [NotNullWhen(true)] string? candidate)