@@ -7,7 +7,6 @@ namespace StyleCop.Analyzers.Settings.ObjectModel
77{
88 using System . Collections . Immutable ;
99 using System . Linq ;
10- using System . Text . RegularExpressions ;
1110 using LightJson ;
1211 using StyleCop . Analyzers . Lightup ;
1312
@@ -55,7 +54,7 @@ protected internal NamingSettings(JsonObject namingSettingsObject, AnalyzerConfi
5554 {
5655 var prefix = prefixJsonValue . ToStringValue ( kvp . Key ) ;
5756
58- if ( ! Regex . IsMatch ( prefix , "^[a-z]{1,2}$" ) )
57+ if ( ! IsValidHungarianPrefix ( prefix ) )
5958 {
6059 continue ;
6160 }
@@ -86,7 +85,7 @@ protected internal NamingSettings(JsonObject namingSettingsObject, AnalyzerConfi
8685
8786 allowCommonHungarianPrefixes ??= AnalyzerConfigHelper . TryGetBooleanValue ( analyzerConfigOptions , "stylecop.naming.allowCommonHungarianPrefixes" ) ;
8887 allowedHungarianPrefixes ??= AnalyzerConfigHelper . TryGetStringListValue ( analyzerConfigOptions , "stylecop.naming.allowedHungarianPrefixes" )
89- ? . Where ( value => Regex . IsMatch ( value , "^[a-z]{1,2}$" ) )
88+ ? . Where ( value => IsValidHungarianPrefix ( value ) )
9089 . ToImmutableArray ( )
9190 . ToBuilder ( ) ;
9291 allowedNamespaceComponents ??= AnalyzerConfigHelper . TryGetStringListValue ( analyzerConfigOptions , "stylecop.naming.allowedNamespaceComponents" ) ? . ToBuilder ( ) ;
@@ -115,5 +114,19 @@ protected internal NamingSettings(JsonObject namingSettingsObject, AnalyzerConfi
115114 public bool IncludeInferredTupleElementNames { get ; }
116115
117116 public TupleElementNameCase TupleElementNameCasing { get ; }
117+
118+ private static bool IsValidHungarianPrefix ( string prefix )
119+ {
120+ // Equivalent to Regex.IsMatch(prefix, "^[a-z]{1,2}$")
121+ for ( var i = 0 ; i < prefix . Length ; i ++ )
122+ {
123+ if ( prefix [ i ] is not ( >= 'a' and <= 'z' ) )
124+ {
125+ return false ;
126+ }
127+ }
128+
129+ return prefix . Length is ( >= 1 and <= 2 ) ;
130+ }
118131 }
119132}
0 commit comments