903 references to UnicodeCategory
Aspire.Hosting.Azure (2)
dotnet-svcutil-lib (64)
GenerateDocumentationAndConfigFiles (29)
Microsoft.Build (8)
Microsoft.Build.Tasks.CodeAnalysis (17)
Microsoft.Build.Tasks.Core (22)
Microsoft.CodeAnalysis (17)
Microsoft.CodeAnalysis.Analyzers (29)
Microsoft.CodeAnalysis.AnalyzerUtilities (29)
Microsoft.CodeAnalysis.CodeStyle (17)
Microsoft.CodeAnalysis.CSharp (10)
Microsoft.CodeAnalysis.CSharp.CodeStyle (2)
Microsoft.CodeAnalysis.CSharp.Features (36)
LanguageServices\CSharpSymbolDisplayService.SymbolDescriptionBuilder.cs (31)
227var category = char.GetUnicodeCategory(c);
230UnicodeCategory.UppercaseLetter => true,
231UnicodeCategory.LowercaseLetter => true,
232UnicodeCategory.TitlecaseLetter => true,
233UnicodeCategory.ModifierLetter => true,
234UnicodeCategory.OtherLetter => true,
235UnicodeCategory.NonSpacingMark => false, // does not render well when surrounded by single quotes
236UnicodeCategory.SpacingCombiningMark => true, // adds space, so still legible
237UnicodeCategory.EnclosingMark => false, // not generally displayable
238UnicodeCategory.DecimalDigitNumber => true,
239UnicodeCategory.LetterNumber => true,
240UnicodeCategory.OtherNumber => true,
241UnicodeCategory.SpaceSeparator => true,
242UnicodeCategory.LineSeparator => false, // renders as newline, looks awkward
243UnicodeCategory.ParagraphSeparator => false, // renders as newline, looks awkward
244UnicodeCategory.Control => false, // no glyph
245UnicodeCategory.Format => false, // no glyph
246UnicodeCategory.Surrogate => false, // no glyph
247UnicodeCategory.PrivateUse => false, // no glyph
248UnicodeCategory.ConnectorPunctuation => true,
249UnicodeCategory.DashPunctuation => true,
250UnicodeCategory.OpenPunctuation => true,
251UnicodeCategory.ClosePunctuation => true,
252UnicodeCategory.InitialQuotePunctuation => true,
253UnicodeCategory.FinalQuotePunctuation => true,
254UnicodeCategory.OtherPunctuation => true,
255UnicodeCategory.MathSymbol => true,
256UnicodeCategory.CurrencySymbol => true,
257UnicodeCategory.ModifierSymbol => true,
258UnicodeCategory.OtherSymbol => true,
259UnicodeCategory.OtherNotAssigned => false,
Microsoft.CodeAnalysis.Features (8)
Microsoft.CodeAnalysis.NetAnalyzers (12)
Microsoft.CodeAnalysis.Razor.Compiler (4)
Microsoft.CodeAnalysis.ResxSourceGenerator (42)
Microsoft.CodeAnalysis.VisualBasic (25)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (6)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (6)
Microsoft.CodeAnalysis.Workspaces (17)
Microsoft.DotNet.Arcade.Sdk (13)
Microsoft.Extensions.FileProviders.Embedded (6)
Microsoft.ML.Tokenizers (14)
Microsoft.ML.Transforms (14)
Microsoft.NET.Build.Containers (8)
Microsoft.TemplateEngine.Orchestrator.RunnableProjects (17)
Microsoft.TestPlatform.AdapterUtilities (6)
Microsoft.VisualBasic.Core (4)
mscorlib (1)
netstandard (1)
NuGet.Common (8)
PresentationBuildTasks (10)
PresentationFramework (8)
Roslyn.Diagnostics.Analyzers (29)
Roslyn.Diagnostics.VisualBasic.Analyzers (6)
System.CodeDom (11)
System.Data.Common (1)
System.Data.Odbc (1)
System.Data.OleDb (1)
System.Diagnostics.EventLog (12)
System.Globalization (1)
System.Private.CoreLib (81)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Char.cs (35)
95private static UnicodeCategory GetLatin1UnicodeCategory(char c)
98return (UnicodeCategory)(Latin1CharInfo[c] & UnicodeCategoryMask);
372return CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber;
388private static bool IsBetween(UnicodeCategory c, UnicodeCategory min, UnicodeCategory max) =>
394internal static bool CheckLetter(UnicodeCategory uc)
396return IsBetween(uc, UnicodeCategory.UppercaseLetter, UnicodeCategory.OtherLetter);
447return CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.UppercaseLetter;
461return CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.LowercaseLetter;
464internal static bool CheckPunctuation(UnicodeCategory uc)
466return IsBetween(uc, UnicodeCategory.ConnectorPunctuation, UnicodeCategory.OtherPunctuation);
484internal static bool CheckLetterOrDigit(UnicodeCategory uc)
4871 << (int)UnicodeCategory.UppercaseLetter |
4881 << (int)UnicodeCategory.LowercaseLetter |
4891 << (int)UnicodeCategory.TitlecaseLetter |
4901 << (int)UnicodeCategory.ModifierLetter |
4911 << (int)UnicodeCategory.OtherLetter |
4921 << (int)UnicodeCategory.DecimalDigitNumber;
702return CharUnicodeInfo.GetUnicodeCategoryInternal(s, index) == UnicodeCategory.DecimalDigitNumber;
760return CharUnicodeInfo.GetUnicodeCategoryInternal(s, index) == UnicodeCategory.LowercaseLetter;
767internal static bool CheckNumber(UnicodeCategory uc)
769return IsBetween(uc, UnicodeCategory.DecimalDigitNumber, UnicodeCategory.OtherNumber);
839internal static bool CheckSeparator(UnicodeCategory uc)
841return IsBetween(uc, UnicodeCategory.SpaceSeparator, UnicodeCategory.ParagraphSeparator);
903internal static bool CheckSymbol(UnicodeCategory uc)
905return IsBetween(uc, UnicodeCategory.MathSymbol, UnicodeCategory.OtherSymbol);
949return CharUnicodeInfo.GetUnicodeCategoryInternal(s, index) == UnicodeCategory.UppercaseLetter;
969public static UnicodeCategory GetUnicodeCategory(char c)
978public static UnicodeCategory GetUnicodeCategory(string s, int index)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Rune.cs (25)
1314public static UnicodeCategory GetUnicodeCategory(Rune value)
1318return (UnicodeCategory)(AsciiCharInfo[value.Value] & UnicodeCategoryMask);
1326private static UnicodeCategory GetUnicodeCategoryNonAscii(Rune value)
1341private static bool IsCategoryLetter(UnicodeCategory category)
1343return UnicodeUtility.IsInRangeInclusive((uint)category, (uint)UnicodeCategory.UppercaseLetter, (uint)UnicodeCategory.OtherLetter);
1347private static bool IsCategoryLetterOrDecimalDigit(UnicodeCategory category)
1349return UnicodeUtility.IsInRangeInclusive((uint)category, (uint)UnicodeCategory.UppercaseLetter, (uint)UnicodeCategory.OtherLetter)
1350|| (category == UnicodeCategory.DecimalDigitNumber);
1354private static bool IsCategoryNumber(UnicodeCategory category)
1356return UnicodeUtility.IsInRangeInclusive((uint)category, (uint)UnicodeCategory.DecimalDigitNumber, (uint)UnicodeCategory.OtherNumber);
1360private static bool IsCategoryPunctuation(UnicodeCategory category)
1362return UnicodeUtility.IsInRangeInclusive((uint)category, (uint)UnicodeCategory.ConnectorPunctuation, (uint)UnicodeCategory.OtherPunctuation);
1366private static bool IsCategorySeparator(UnicodeCategory category)
1368return UnicodeUtility.IsInRangeInclusive((uint)category, (uint)UnicodeCategory.SpaceSeparator, (uint)UnicodeCategory.ParagraphSeparator);
1372private static bool IsCategorySymbol(UnicodeCategory category)
1374return UnicodeUtility.IsInRangeInclusive((uint)category, (uint)UnicodeCategory.MathSymbol, (uint)UnicodeCategory.OtherSymbol);
1399return GetUnicodeCategoryNonAscii(value) == UnicodeCategory.DecimalDigitNumber;
1435return GetUnicodeCategoryNonAscii(value) == UnicodeCategory.LowercaseLetter;
1474return GetUnicodeCategoryNonAscii(value) == UnicodeCategory.UppercaseLetter;
System.Private.Xml (43)
System.Runtime (1)
System.Runtime.Serialization.Schema (11)
System.Text.Json (6)
System.Text.Json.SourceGeneration (6)
System.Text.RegularExpressions (90)
System\Text\RegularExpressions\RegexCharClass.cs (45)
519public static bool TryGetOnlyCategories(string set, Span<UnicodeCategory> categories, out int numCategories, out bool negated)
551categories[numCategories++] = (UnicodeCategory)(c - 1);
567categories[numCategories++] = (UnicodeCategory)(-1 - c);
590categories[numCategories++] = (UnicodeCategory)(c - 1);
611categories[numCategories++] = (UnicodeCategory)(-1 - c);
800Span<UnicodeCategory> categories1 = stackalloc UnicodeCategory[16], categories2 = stackalloc UnicodeCategory[16];
821foreach (UnicodeCategory cat1 in categories1.Slice(0, numCategories1))
823foreach (UnicodeCategory cat2 in categories2.Slice(0, numCategories2))
920Span<UnicodeCategory> categories1 = stackalloc UnicodeCategory[16], categories2 = stackalloc UnicodeCategory[16];
924foreach (UnicodeCategory cat1 in categories1.Slice(0, numCategories1))
927foreach (UnicodeCategory cat2 in categories2.Slice(0, numCategories2))
986case UnicodeCategory.ClosePunctuation:
987case UnicodeCategory.ConnectorPunctuation:
988case UnicodeCategory.Control:
989case UnicodeCategory.DashPunctuation:
990case UnicodeCategory.DecimalDigitNumber:
991case UnicodeCategory.FinalQuotePunctuation:
992case UnicodeCategory.InitialQuotePunctuation:
993case UnicodeCategory.LineSeparator:
994case UnicodeCategory.OpenPunctuation:
995case UnicodeCategory.OtherNumber:
996case UnicodeCategory.OtherPunctuation:
997case UnicodeCategory.ParagraphSeparator:
998case UnicodeCategory.SpaceSeparator:
11711 << (int)UnicodeCategory.UppercaseLetter |
11721 << (int)UnicodeCategory.LowercaseLetter |
11731 << (int)UnicodeCategory.TitlecaseLetter |
11741 << (int)UnicodeCategory.ModifierLetter |
11751 << (int)UnicodeCategory.OtherLetter |
11761 << (int)UnicodeCategory.NonSpacingMark |
11771 << (int)UnicodeCategory.DecimalDigitNumber |
11781 << (int)UnicodeCategory.ConnectorPunctuation;
1216private static bool IsWordCategory(UnicodeCategory category) =>
1366UnicodeCategory chcategory = char.GetUnicodeCategory(ch);
1391else if (chcategory == (UnicodeCategory)(curcat - 1))
1406else if (chcategory != (UnicodeCategory)(-1 - curcat))
1420private static bool CharInCategoryGroup(UnicodeCategory chcategory, ReadOnlySpan<char> category, ref int i)
1432result |= chcategory == (UnicodeCategory)(curcat - 1);
1444result &= chcategory != (UnicodeCategory)(-1 - curcat);
2044(short)(UnicodeCategory.DecimalDigitNumber + 1) => @"\d",
2045-(short)(UnicodeCategory.DecimalDigitNumber + 1) => @"\D",
System.Text.RegularExpressions.Generator (63)
src\runtime\src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCharClass.cs (45)
519public static bool TryGetOnlyCategories(string set, Span<UnicodeCategory> categories, out int numCategories, out bool negated)
551categories[numCategories++] = (UnicodeCategory)(c - 1);
567categories[numCategories++] = (UnicodeCategory)(-1 - c);
590categories[numCategories++] = (UnicodeCategory)(c - 1);
611categories[numCategories++] = (UnicodeCategory)(-1 - c);
800Span<UnicodeCategory> categories1 = stackalloc UnicodeCategory[16], categories2 = stackalloc UnicodeCategory[16];
821foreach (UnicodeCategory cat1 in categories1.Slice(0, numCategories1))
823foreach (UnicodeCategory cat2 in categories2.Slice(0, numCategories2))
920Span<UnicodeCategory> categories1 = stackalloc UnicodeCategory[16], categories2 = stackalloc UnicodeCategory[16];
924foreach (UnicodeCategory cat1 in categories1.Slice(0, numCategories1))
927foreach (UnicodeCategory cat2 in categories2.Slice(0, numCategories2))
986case UnicodeCategory.ClosePunctuation:
987case UnicodeCategory.ConnectorPunctuation:
988case UnicodeCategory.Control:
989case UnicodeCategory.DashPunctuation:
990case UnicodeCategory.DecimalDigitNumber:
991case UnicodeCategory.FinalQuotePunctuation:
992case UnicodeCategory.InitialQuotePunctuation:
993case UnicodeCategory.LineSeparator:
994case UnicodeCategory.OpenPunctuation:
995case UnicodeCategory.OtherNumber:
996case UnicodeCategory.OtherPunctuation:
997case UnicodeCategory.ParagraphSeparator:
998case UnicodeCategory.SpaceSeparator:
11711 << (int)UnicodeCategory.UppercaseLetter |
11721 << (int)UnicodeCategory.LowercaseLetter |
11731 << (int)UnicodeCategory.TitlecaseLetter |
11741 << (int)UnicodeCategory.ModifierLetter |
11751 << (int)UnicodeCategory.OtherLetter |
11761 << (int)UnicodeCategory.NonSpacingMark |
11771 << (int)UnicodeCategory.DecimalDigitNumber |
11781 << (int)UnicodeCategory.ConnectorPunctuation;
1216private static bool IsWordCategory(UnicodeCategory category) =>
1366UnicodeCategory chcategory = char.GetUnicodeCategory(ch);
1391else if (chcategory == (UnicodeCategory)(curcat - 1))
1406else if (chcategory != (UnicodeCategory)(-1 - curcat))
1420private static bool CharInCategoryGroup(UnicodeCategory chcategory, ReadOnlySpan<char> category, ref int i)
1432result |= chcategory == (UnicodeCategory)(curcat - 1);
1444result &= chcategory != (UnicodeCategory)(-1 - curcat);
2044(short)(UnicodeCategory.DecimalDigitNumber + 1) => @"\d",
2045-(short)(UnicodeCategory.DecimalDigitNumber + 1) => @"\D",
System.Windows.Forms (8)
System.Windows.Forms.Design (6)
System.Windows.Forms.Primitives (1)
System.Xaml (13)