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);
369return CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber;
385private static bool IsBetween(UnicodeCategory c, UnicodeCategory min, UnicodeCategory max) =>
391internal static bool CheckLetter(UnicodeCategory uc)
393return IsBetween(uc, UnicodeCategory.UppercaseLetter, UnicodeCategory.OtherLetter);
444return CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.UppercaseLetter;
458return CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.LowercaseLetter;
461internal static bool CheckPunctuation(UnicodeCategory uc)
463return IsBetween(uc, UnicodeCategory.ConnectorPunctuation, UnicodeCategory.OtherPunctuation);
481internal static bool CheckLetterOrDigit(UnicodeCategory uc)
4841 << (int)UnicodeCategory.UppercaseLetter |
4851 << (int)UnicodeCategory.LowercaseLetter |
4861 << (int)UnicodeCategory.TitlecaseLetter |
4871 << (int)UnicodeCategory.ModifierLetter |
4881 << (int)UnicodeCategory.OtherLetter |
4891 << (int)UnicodeCategory.DecimalDigitNumber;
699return CharUnicodeInfo.GetUnicodeCategoryInternal(s, index) == UnicodeCategory.DecimalDigitNumber;
757return CharUnicodeInfo.GetUnicodeCategoryInternal(s, index) == UnicodeCategory.LowercaseLetter;
764internal static bool CheckNumber(UnicodeCategory uc)
766return IsBetween(uc, UnicodeCategory.DecimalDigitNumber, UnicodeCategory.OtherNumber);
836internal static bool CheckSeparator(UnicodeCategory uc)
838return IsBetween(uc, UnicodeCategory.SpaceSeparator, UnicodeCategory.ParagraphSeparator);
900internal static bool CheckSymbol(UnicodeCategory uc)
902return IsBetween(uc, UnicodeCategory.MathSymbol, UnicodeCategory.OtherSymbol);
946return CharUnicodeInfo.GetUnicodeCategoryInternal(s, index) == UnicodeCategory.UppercaseLetter;
966public static UnicodeCategory GetUnicodeCategory(char c)
975public 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)