// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.Fonts.Unicode { /// /// Unicode Grapheme_Cluster_Break property values and local rule sentinels. /// /// /// /// UAX #29 uses these classes in ordered boundary rules to determine extended /// grapheme clusters. Some members are rule sentinels rather than Unicode property /// values exposed by the standard. /// public enum GraphemeClusterClass { /// /// Rule sentinel that matches any code point. /// /// /// This is not a Unicode property value; it represents the "any" operand in /// UAX #29 boundary rules. /// Any = 0, /// /// U+000D CARRIAGE RETURN (CR). /// CarriageReturn = 1, /// /// U+000A LINE FEED (LF). /// LineFeed = 2, /// /// Controls, separators, formats, and default-ignorable unassigned code points /// that form hard grapheme cluster boundaries. /// /// /// This class excludes CR, LF, U+200C ZERO WIDTH NON-JOINER, U+200D ZERO /// WIDTH JOINER, and prepended concatenation marks because those participate /// in more specific UAX #29 rules. /// Control = 3, /// /// Extending code points that remain in the same extended grapheme cluster as /// the preceding base. /// /// /// This includes Grapheme_Extend code points, emoji modifiers, U+200C ZERO /// WIDTH NON-JOINER, and a small number of spacing marks needed for canonical /// equivalence. /// Extend = 4, /// /// Regional indicator symbols used to build flag emoji pairs. /// RegionalIndicator = 5, /// /// Code points that prepend to the following grapheme cluster. /// /// /// This includes Indic_Syllabic_Category values Consonant_Preceding_Repha and /// Consonant_Prefixed, plus Prepended_Concatenation_Mark code points. /// Prepend = 6, /// /// Spacing marks that extend the previous grapheme cluster. /// /// /// This includes spacing marks whose Grapheme_Cluster_Break value is not /// Extend, plus U+0E33 THAI CHARACTER SARA AM and U+0EB3 LAO VOWEL SIGN AM. /// SpacingMark = 7, /// /// Hangul leading consonant Jamo (Hangul_Syllable_Type = L). /// HangulLead = 8, /// /// Hangul vowel Jamo (Hangul_Syllable_Type = V). /// HangulVowel = 9, /// /// Hangul trailing consonant Jamo (Hangul_Syllable_Type = T). /// HangulTail = 10, /// /// Hangul LV syllables. /// HangulLeadVowel = 11, /// /// Hangul LVT syllables. /// HangulLeadVowelTail = 12, /// /// Extended pictographic code points used by GB11 emoji ZWJ sequence handling. /// /// /// This is not itself a Grapheme_Cluster_Break property value; UAX #29 uses /// it when matching emoji ZWJ sequences. /// ExtendedPictographic = 13, /// /// U+200D ZERO WIDTH JOINER. /// ZeroWidthJoiner = 14, /// /// Other. /// /// /// This is the Unicode Other / XX fallback for code points /// without an explicit grapheme cluster break class. /// Other = 0xFF } }