224 references to PatternMatchKind
Microsoft.CodeAnalysis.EditorFeatures (1)
IntelliSense\AsyncCompletion\ItemManager.CompletionListUpdater.cs (1)
824selectedItem.PatternMatch.Value.Kind > PatternMatchKind.Prefix)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (85)
Utilities\PatternMatcherTests.cs (85)
127[InlineData("[|Goo|]", "Goo", PatternMatchKind.Exact, CaseSensitive)] 128[InlineData("[|goo|]", "Goo", PatternMatchKind.Exact, CaseInsensitive)] 129[InlineData("[|Goo|]", "goo", PatternMatchKind.Exact, CaseInsensitive)] 131[InlineData("[|Fo|]o", "Fo", PatternMatchKind.Prefix, CaseSensitive)] 132[InlineData("[|Fog|]Bar", "Fog", PatternMatchKind.Prefix, CaseSensitive)] 134[InlineData("[|Fo|]o", "fo", PatternMatchKind.Prefix, CaseInsensitive)] 135[InlineData("[|Fog|]Bar", "fog", PatternMatchKind.Prefix, CaseInsensitive)] 136[InlineData("[|fog|]BarGoo", "Fog", PatternMatchKind.Prefix, CaseInsensitive)] 138[InlineData("[|system.ref|]lection", "system.ref", PatternMatchKind.Prefix, CaseSensitive)] 140[InlineData("Fog[|B|]ar", "b", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 142[InlineData("_[|my|]Button", "my", PatternMatchKind.StartOfWordSubstring, CaseSensitive)] 143[InlineData("my[|_b|]utton", "_b", PatternMatchKind.StartOfWordSubstring, CaseSensitive)] 144[InlineData("_[|my|]button", "my", PatternMatchKind.StartOfWordSubstring, CaseSensitive)] 145[InlineData("_my[|_b|]utton", "_b", PatternMatchKind.StartOfWordSubstring, CaseSensitive)] 146[InlineData("_[|myb|]utton", "myb", PatternMatchKind.StartOfWordSubstring, CaseSensitive)] 147[InlineData("_[|myB|]utton", "myB", PatternMatchKind.NonLowercaseSubstring, CaseSensitive)] 149[InlineData("my[|_B|]utton", "_b", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 150[InlineData("_my[|_B|]utton", "_b", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 151[InlineData("_[|myB|]utton", "myb", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 153[InlineData("[|AbCd|]xxx[|Ef|]Cd[|Gh|]", "AbCdEfGh", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseSensitive)] 155[InlineData("A[|BCD|]EFGH", "bcd", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 156[InlineData("FogBar[|ChangedEventArgs|]", "changedeventargs", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 157[InlineData("Abcdefghij[|EfgHij|]", "efghij", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 159[InlineData("[|F|]og[|B|]ar", "FB", PatternMatchKind.CamelCaseExact, CaseSensitive)] 160[InlineData("[|Fo|]g[|B|]ar", "FoB", PatternMatchKind.CamelCaseExact, CaseSensitive)] 161[InlineData("[|_f|]og[|B|]ar", "_fB", PatternMatchKind.CamelCaseExact, CaseSensitive)] 162[InlineData("[|F|]og[|_B|]ar", "F_B", PatternMatchKind.CamelCaseExact, CaseSensitive)] 163[InlineData("[|F|]og[|B|]ar", "fB", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 164[InlineData("Baz[|F|]ogBar[|F|]oo[|F|]oo", "FFF", PatternMatchKind.CamelCaseNonContiguousSubstring, CaseSensitive)] 165[InlineData("[|F|]og[|B|]arBaz", "FB", PatternMatchKind.CamelCasePrefix, CaseSensitive)] 166[InlineData("[|F|]og_[|B|]ar", "FB", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseSensitive)] 167[InlineData("[|F|]ooFlob[|B|]az", "FB", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseSensitive)] 168[InlineData("Bar[|F|]oo[|F|]oo[|F|]oo", "FFF", PatternMatchKind.CamelCaseSubstring, CaseSensitive)] 169[InlineData("BazBar[|F|]oo[|F|]oo[|F|]oo", "FFF", PatternMatchKind.CamelCaseSubstring, CaseSensitive)] 170[InlineData("[|Fo|]oBarry[|Bas|]il", "FoBas", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseSensitive)] 171[InlineData("[|F|]ogBar[|F|]oo[|F|]oo", "FFF", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseSensitive)] 173[InlineData("[|F|]og[|_B|]ar", "F_b", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 174[InlineData("[|_F|]og[|B|]ar", "_fB", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 175[InlineData("[|F|]og[|_B|]ar", "f_B", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 177[InlineData("[|Si|]mple[|UI|]Element", "SiUI", PatternMatchKind.CamelCaseExact, CaseSensitive)] 179[InlineData("_[|co|]deFix[|Pro|]vider", "copro", PatternMatchKind.CamelCaseNonContiguousSubstring, CaseInsensitive)] 180[InlineData("Code[|Fi|]xObject[|Pro|]vider", "fipro", PatternMatchKind.CamelCaseNonContiguousSubstring, CaseInsensitive)] 181[InlineData("[|Co|]de[|Fi|]x[|Pro|]vider", "cofipro", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 182[InlineData("Code[|Fi|]x[|Pro|]vider", "fipro", PatternMatchKind.CamelCaseSubstring, CaseInsensitive)] 183[InlineData("[|Co|]deFix[|Pro|]vider", "copro", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseInsensitive)] 184[InlineData("[|co|]deFix[|Pro|]vider", "copro", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseInsensitive)] 185[InlineData("[|Co|]deFix_[|Pro|]vider", "copro", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseInsensitive)] 186[InlineData("[|C|]ore[|Ofi|]lac[|Pro|]fessional", "cofipro", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 187[InlineData("[|C|]lear[|Ofi|]lac[|Pro|]fessional", "cofipro", PatternMatchKind.CamelCaseExact, CaseInsensitive)] 188[InlineData("[|CO|]DE_FIX_[|PRO|]VIDER", "copro", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseInsensitive)] 190[InlineData("my[|_b|]utton", "_B", PatternMatchKind.CamelCaseSubstring, CaseInsensitive)] 191[InlineData("[|_|]my_[|b|]utton", "_B", PatternMatchKind.CamelCaseNonContiguousPrefix, CaseInsensitive)] 192[InlineData("Com[|bin|]e", "bin", PatternMatchKind.LowercaseSubstring, CaseSensitive)] 193[InlineData("Combine[|Bin|]ary", "bin", PatternMatchKind.StartOfWordSubstring, CaseInsensitive)] 195[InlineData("_ABC_[|Abc|]_", "Abc", PatternMatchKind.StartOfWordSubstring, CaseSensitive)] 196[InlineData("[|C|]reate[|R|]ange", "CR", PatternMatchKind.CamelCaseExact, CaseSensitive)] 201string candidate, string pattern, PatternMatchKind matchKind, bool isCaseSensitive) 229private static void AssertContainsType(PatternMatchKind type, IEnumerable<PatternMatch> results) 237AssertContainsType(PatternMatchKind.Exact, match); 245AssertContainsType(PatternMatchKind.Prefix, match); 253AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 261AssertContainsType(PatternMatchKind.Prefix, match); 269AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 277AssertContainsType(PatternMatchKind.Prefix, match); 285AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 293AssertContainsType(PatternMatchKind.Prefix, match); 294AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 302AssertContainsType(PatternMatchKind.Prefix, match); 303AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 311AssertContainsType(PatternMatchKind.CamelCasePrefix, match); 319Assert.True(match.Select(m => m.Kind).SequenceEqual(new[] { PatternMatchKind.StartOfWordSubstring, PatternMatchKind.StartOfWordSubstring })); 327Assert.True(match.Select(m => m.Kind).SequenceEqual(new[] { PatternMatchKind.StartOfWordSubstring, PatternMatchKind.StartOfWordSubstring })); 335AssertContainsType(PatternMatchKind.CamelCaseExact, match); 351AssertContainsType(PatternMatchKind.Prefix, match); 352AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 360AssertContainsType(PatternMatchKind.Prefix, match); 361AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 369AssertContainsType(PatternMatchKind.Prefix, match); 370AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 386Assert.True(match.Select(m => m.Kind).SequenceEqual(new[] { PatternMatchKind.StartOfWordSubstring, PatternMatchKind.StartOfWordSubstring })); 397AssertContainsType(PatternMatchKind.StartOfWordSubstring, match); 412Assert.Equal(PatternMatchKind.Exact, match.Value.Kind);
Microsoft.CodeAnalysis.Features (32)
Completion\CompletionHelper.cs (8)
240if (match1.Kind != PatternMatchKind.Exact && match2.Kind != PatternMatchKind.Exact) 261if (!isItem1Expanded && match1.Kind <= PatternMatchKind.Prefix) 266if (!isItem2Expanded && match2.Kind <= PatternMatchKind.Prefix) 273Debug.Assert(isItem1Expanded && match1.Kind == PatternMatchKind.Exact && !isItem2Expanded && match2.Kind > PatternMatchKind.Prefix || 274isItem2Expanded && match2.Kind == PatternMatchKind.Exact && !isItem1Expanded && match1.Kind > PatternMatchKind.Prefix);
NavigateTo\AbstractNavigateToSearchService.InProcess.cs (12)
26private static readonly ImmutableArray<(PatternMatchKind roslynKind, NavigateToMatchKind vsKind)> s_kindPairs = 28(PatternMatchKind.Exact, NavigateToMatchKind.Exact), 29(PatternMatchKind.Prefix, NavigateToMatchKind.Prefix), 30(PatternMatchKind.NonLowercaseSubstring, NavigateToMatchKind.Substring), 31(PatternMatchKind.StartOfWordSubstring, NavigateToMatchKind.Substring), 32(PatternMatchKind.CamelCaseExact, NavigateToMatchKind.CamelCaseExact), 33(PatternMatchKind.CamelCasePrefix, NavigateToMatchKind.CamelCasePrefix), 34(PatternMatchKind.CamelCaseNonContiguousPrefix, NavigateToMatchKind.CamelCaseNonContiguousPrefix), 35(PatternMatchKind.CamelCaseSubstring, NavigateToMatchKind.CamelCaseSubstring), 36(PatternMatchKind.CamelCaseNonContiguousSubstring, NavigateToMatchKind.CamelCaseNonContiguousSubstring), 37(PatternMatchKind.Fuzzy, NavigateToMatchKind.Fuzzy), 42(PatternMatchKind.LowercaseSubstring, NavigateToMatchKind.Fuzzy),
NavigateTo\INavigateToSearchResult.cs (12)
42private static PatternMatchKind GetPatternMatchKind(NavigateToMatchKind matchKind) 45NavigateToMatchKind.Exact => PatternMatchKind.Exact, 46NavigateToMatchKind.Prefix => PatternMatchKind.Prefix, 47NavigateToMatchKind.Substring => PatternMatchKind.NonLowercaseSubstring, 48NavigateToMatchKind.Regular => PatternMatchKind.Fuzzy, 49NavigateToMatchKind.None => PatternMatchKind.Fuzzy, 50NavigateToMatchKind.CamelCaseExact => PatternMatchKind.CamelCaseExact, 51NavigateToMatchKind.CamelCasePrefix => PatternMatchKind.CamelCasePrefix, 52NavigateToMatchKind.CamelCaseNonContiguousPrefix => PatternMatchKind.CamelCaseNonContiguousPrefix, 53NavigateToMatchKind.CamelCaseSubstring => PatternMatchKind.CamelCaseSubstring, 54NavigateToMatchKind.CamelCaseNonContiguousSubstring => PatternMatchKind.CamelCaseNonContiguousSubstring, 55NavigateToMatchKind.Fuzzy => PatternMatchKind.Fuzzy,
Microsoft.CodeAnalysis.Workspaces (30)
FindSymbols\TopLevelSyntaxTree\NavigateToSearchIndex.NavigateToSearchInfo.cs (2)
89/// <see cref="PatternMatching.PatternMatchKind.LowercaseSubstring"/> matches like "line" 380/// <see cref="PatternMatching.PatternMatchKind.NonLowercaseSubstring"/>).
PatternMatching\AllLowerCamelCaseMatcher.cs (3)
38public PatternMatchKind? TryMatch( 66private static PatternMatchKind GetKind(CamelCaseResult result, in TemporaryArray<TextSpan> candidateHumps) 238return GetKind(result, candidateHumps) == PatternMatchKind.CamelCaseExact;
PatternMatching\CamelCaseResult.cs (6)
47private static PatternMatchKind GetCamelCaseKind(CamelCaseResult result, in TemporaryArray<TextSpan> candidateHumps) 58? PatternMatchKind.CamelCaseExact 59: PatternMatchKind.CamelCasePrefix; 63return PatternMatchKind.CamelCaseNonContiguousPrefix; 71? PatternMatchKind.CamelCaseSubstring 72: PatternMatchKind.CamelCaseNonContiguousSubstring;
PatternMatching\FuzzyPatternMatcher.cs (1)
47PatternMatchKind.Fuzzy, punctuationStripped: false,
PatternMatching\PatternMatch.cs (3)
19public PatternMatchKind Kind { get; } 38PatternMatchKind resultType, 48PatternMatchKind kind,
PatternMatching\PatternMatcher.cs (10)
165PatternMatchKind.Exact, punctuationStripped, isCaseSensitive: candidate == patternChunk.Text, 191PatternMatchKind.Prefix, punctuationStripped, isCaseSensitive, matchedSpan: GetMatchedSpan(0, patternChunk.Text.Length)); 211var resultType = char.IsUpper(candidate[caseSensitiveIndex]) ? PatternMatchKind.StartOfWordSubstring : PatternMatchKind.NonLowercaseSubstring; 229return new PatternMatch(PatternMatchKind.StartOfWordSubstring, punctuationStripped, 244return new PatternMatch(PatternMatchKind.StartOfWordSubstring, punctuationStripped, 277PatternMatchKind.LowercaseSubstring, punctuationStripped, isCaseSensitive: true, 476private PatternMatchKind? TryAllLowerCamelCaseMatch( 486private PatternMatchKind? TryUpperCaseCamelCaseMatch(
PatternMatching\PatternMatchKind.cs (5)
111public static bool IsCamelCaseKind(this PatternMatchKind kind) 112=> kind is PatternMatchKind.CamelCaseExact or PatternMatchKind.CamelCasePrefix or PatternMatchKind.CamelCaseNonContiguousPrefix or PatternMatchKind.CamelCaseSubstring;
Microsoft.CodeAnalysis.Workspaces.UnitTests (64)
FindSymbols\NavigateToSearchIndexTests.cs (64)
831[InlineData("GooBar", "", "GooBar", null, PatternMatchKind.Exact)] 832[InlineData("GooBar", "", "goobar", null, PatternMatchKind.Exact)] 834[InlineData("GooBar", "", "Goo", null, PatternMatchKind.Prefix)] 835[InlineData("GooBar", "", "goo", null, PatternMatchKind.Prefix)] 836[InlineData("GooBar", "", "G", null, PatternMatchKind.Prefix)] 837[InlineData("GooBar", "", "g", null, PatternMatchKind.Prefix)] 838[InlineData("GooBarQuux", "", "GooBar", null, PatternMatchKind.Prefix)] 839[InlineData("XMLDocument", "", "XMLDoc", null, PatternMatchKind.Prefix)] 840[InlineData("XMLDocument", "", "xmldoc", null, PatternMatchKind.Prefix)] 842[InlineData("GooBar", "", "GB", null, PatternMatchKind.CamelCaseExact)] 843[InlineData("GooBar", "", "GoBa", null, PatternMatchKind.CamelCaseExact)] 844[InlineData("GooBarQuux", "", "GBQ", null, PatternMatchKind.CamelCaseExact)] 845[InlineData("GooBarQuux", "", "GoBarQu", null, PatternMatchKind.CamelCaseExact)] 846[InlineData("NonEmptyList", "", "NEL", null, PatternMatchKind.CamelCaseExact)] 847[InlineData("CodeFixProvider", "", "CFP", null, PatternMatchKind.CamelCaseExact)] 848[InlineData("XMLDocument", "", "XD", null, PatternMatchKind.CamelCaseExact)] 850[InlineData("GooBar", "", "gb", null, PatternMatchKind.CamelCaseExact)] 851[InlineData("GooBar", "", "goba", null, PatternMatchKind.CamelCaseExact)] 852[InlineData("GooBarQuux", "", "gbq", null, PatternMatchKind.CamelCaseExact)] 853[InlineData("NonEmptyList", "", "nel", null, PatternMatchKind.CamelCaseExact)] 854[InlineData("NonEmptyList", "", "neli", null, PatternMatchKind.CamelCaseExact)] 855[InlineData("CodeFixProvider", "", "cofipro", null, PatternMatchKind.CamelCaseExact)] 857[InlineData("GooBarQuux", "", "GB", null, PatternMatchKind.CamelCasePrefix)] 858[InlineData("GooBarQuux", "", "GoBa", null, PatternMatchKind.CamelCasePrefix)] 859[InlineData("GooBarQuux", "", "GoBar", null, PatternMatchKind.CamelCasePrefix)] 860[InlineData("CodeFixProviderService", "", "CFP", null, PatternMatchKind.CamelCasePrefix)] 862[InlineData("GooBarQuux", "", "gb", null, PatternMatchKind.CamelCasePrefix)] 863[InlineData("GooBarQuux", "", "goba", null, PatternMatchKind.CamelCasePrefix)] 864[InlineData("CodeFixProviderService", "", "cfp", null, PatternMatchKind.CamelCasePrefix)] 866[InlineData("GooBarQuux", "", "GQ", null, PatternMatchKind.CamelCaseNonContiguousPrefix)] 867[InlineData("GooBarQuux", "", "GoQu", null, PatternMatchKind.CamelCaseNonContiguousPrefix)] 869[InlineData("GooBarQuux", "", "gq", null, PatternMatchKind.CamelCaseNonContiguousPrefix)] 870[InlineData("GooBarQuux", "", "goqu", null, PatternMatchKind.CamelCaseNonContiguousPrefix)] 872[InlineData("CodeFixProviderService", "", "FP", null, PatternMatchKind.CamelCaseSubstring)] 874[InlineData("CodeFixProviderService", "", "fp", null, PatternMatchKind.CamelCaseSubstring)] 876[InlineData("CodeFixProviderService", "", "FS", null, PatternMatchKind.CamelCaseNonContiguousSubstring)] 878[InlineData("CodeFixProviderService", "", "fs", null, PatternMatchKind.CamelCaseNonContiguousSubstring)] 880[InlineData("OperatorBinary", "", "Binary", null, PatternMatchKind.StartOfWordSubstring)] 881[InlineData("OperatorBinary", "", "binary", null, PatternMatchKind.StartOfWordSubstring)] 882[InlineData("OperatorBinary", "", "Bin", null, PatternMatchKind.StartOfWordSubstring)] 883[InlineData("OperatorBinary", "", "bin", null, PatternMatchKind.StartOfWordSubstring)] 885[InlineData("Readline", "", "line", null, PatternMatchKind.LowercaseSubstring)] 886[InlineData("Combine", "", "bin", null, PatternMatchKind.LowercaseSubstring)] 888[InlineData("GooBar", "", "GozBar", null, PatternMatchKind.Fuzzy)] 890[InlineData("Quux", "Goo.Bar", "Qu", "Ba", PatternMatchKind.Prefix)] 891[InlineData("Quux", "Goo.Bar", "Qu", "Go.Ba", PatternMatchKind.Prefix)] 892[InlineData("Quux", "Goo.Bar.Baz", "Qu", "Ba.Baz", PatternMatchKind.Prefix)] 893[InlineData("BazQuux", "GooBar", "BQ", "GB", PatternMatchKind.CamelCaseExact)] 894[InlineData("Quux", "GooBar", "Qu", "gb", PatternMatchKind.Prefix)] 898PatternMatchKind expectedNameMatchKind) 959/// Documents that <see cref="PatternMatchKind.NonLowercaseSubstring"/> (cross-hump substring) 969[InlineData("GooBar", "ooBa", PatternMatchKind.NonLowercaseSubstring)] 970[InlineData("GooBar", "oBa", PatternMatchKind.NonLowercaseSubstring)] 971[InlineData("OperatorBinary", "torBin", PatternMatchKind.NonLowercaseSubstring)] 974PatternMatchKind actualPatternMatcherKind) 1139Assert.Equal(PatternMatchKind.Exact, match.Value.Kind); 1161Assert.NotEqual(PatternMatchKind.Fuzzy, match.Value.Kind); 1165/// Verifies that "line" vs "Readline" produces a <see cref="PatternMatchKind.LowercaseSubstring"/> 1187Assert.Equal(PatternMatchKind.LowercaseSubstring, match.Value.Kind); 1219Assert.Equal(PatternMatchKind.Fuzzy, match.Value.Kind); 1239Assert.Equal(PatternMatchKind.Exact, match.Value.Kind); 1259Assert.Equal(PatternMatchKind.Exact, match.Value.Kind); 1277Assert.Equal(PatternMatchKind.Exact, match.Value.Kind); 1295Assert.Equal(PatternMatchKind.Exact, match.Value.Kind);
Microsoft.VisualStudio.LanguageServices (12)
NavigateTo\RoslynNavigateToSearchCallback.cs (12)
95private static PatternMatchKind ConvertKind(PatternMatching.PatternMatchKind kind) 98PatternMatching.PatternMatchKind.Exact => PatternMatchKind.Exact, 99PatternMatching.PatternMatchKind.Prefix => PatternMatchKind.Prefix, 100PatternMatching.PatternMatchKind.NonLowercaseSubstring => PatternMatchKind.Substring, 101PatternMatching.PatternMatchKind.StartOfWordSubstring => PatternMatchKind.Substring, 102PatternMatching.PatternMatchKind.CamelCaseExact => PatternMatchKind.CamelCaseExact, 103PatternMatching.PatternMatchKind.CamelCasePrefix => PatternMatchKind.CamelCasePrefix, 104PatternMatching.PatternMatchKind.CamelCaseNonContiguousPrefix => PatternMatchKind.CamelCaseNonContiguousPrefix, 105PatternMatching.PatternMatchKind.CamelCaseSubstring => PatternMatchKind.CamelCaseSubstring, 106PatternMatching.PatternMatchKind.CamelCaseNonContiguousSubstring => PatternMatchKind.CamelCaseNonContiguousSubstring, 107PatternMatching.PatternMatchKind.Fuzzy => PatternMatchKind.Fuzzy, 109PatternMatching.PatternMatchKind.LowercaseSubstring => PatternMatchKind.Fuzzy,