// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.Fonts.Unicode { /// /// Unicode Line_Break property values. /// /// public enum LineBreakClass : uint { /// /// Open punctuation (OP): characters that prohibit a line break after them. /// OpenPunctuation = 0, /// /// Close punctuation (CL): characters that prohibit a line break before them. /// ClosePunctuation = 1, /// /// Close parenthesis (CP): closing bracket and parenthesis characters that prohibit a line break before them. /// CloseParenthesis = 2, /// /// Quotation (QU): quotation marks that can behave as opening punctuation, closing punctuation, or both. /// Quotation = 3, /// /// Non-breaking glue (GL): characters that prohibit line breaks before and after themselves. /// Glue = 4, /// /// Nonstarter (NS): characters that allow only indirect line breaks before themselves. /// Nonstarter = 5, /// /// Exclamation or interrogation (EX): sentence punctuation that prohibits a line break before itself. /// Exclamation = 6, /// /// Symbols allowing break after (SY): characters that prevent a line break before and allow one after. /// BreakSymbols = 7, /// /// Infix numeric separator (IS): characters that suppress breaks inside numeric expressions. /// InfixNumeric = 8, /// /// Prefix numeric (PR): characters that stay with a following numeric expression. /// PrefixNumeric = 9, /// /// Postfix numeric (PO): characters that stay with a preceding numeric expression. /// PostfixNumeric = 10, /// /// Numeric (NU): digits and related characters that form numeric expressions. /// Numeric = 11, /// /// Alphabetic (AL): letters and ordinary symbols that use alphabetic line breaking behavior. /// Alphabetic = 12, /// /// Hebrew letter (HL): Hebrew characters with special hyphen and solidus behavior. /// HebrewLetter = 13, /// /// Ideographic (ID): ideographic characters that generally allow breaks before or after. /// Ideographic = 14, /// /// Inseparable (IN): characters, such as leaders, that allow only indirect line breaks between pairs. /// Inseparable = 15, /// /// Hyphen (HY): hyphen-minus and similar characters that allow breaks after except in numeric context. /// Hyphen = 16, /// /// Break after (BA): characters that generally provide a line break opportunity after themselves. /// BreakAfter = 17, /// /// Break before (BB): characters that generally provide a line break opportunity before themselves. /// BreakBefore = 18, /// /// Break before and after (B2): characters that allow breaks on either side, but not between two B2 characters. /// BreakBeforeAndAfter = 19, /// /// Zero width space (ZW): an explicit opportunity for a line break. /// ZeroWidthSpace = 20, /// /// Combining mark (CM): combining marks and related controls that stay with the preceding character. /// CombiningMark = 21, /// /// Word joiner (WJ): characters that prohibit line breaks before and after themselves. /// WordJoiner = 22, /// /// Hangul LV syllable (H2): part of the Hangul sequence classes used to form Korean syllable blocks. /// HangulLeadVowelSyllable = 23, /// /// Hangul LVT syllable (H3): part of the Hangul sequence classes used to form Korean syllable blocks. /// HangulLeadVowelTailSyllable = 24, /// /// Hangul L Jamo (JL): leading consonant Jamo used to form Korean syllable blocks. /// HangulLeadJamo = 25, /// /// Hangul V Jamo (JV): vowel Jamo used to form Korean syllable blocks. /// HangulVowelJamo = 26, /// /// Hangul T Jamo (JT): trailing consonant Jamo used to form Korean syllable blocks. /// HangulTailJamo = 27, /// /// Regional indicator (RI): symbols paired for flag sequences. /// RegionalIndicator = 28, /// /// Emoji base (EB): emoji characters that must not break from a following emoji modifier. /// EmojiBase = 29, /// /// Emoji modifier (EM): emoji modifiers that must not break from a preceding emoji base. /// EmojiModifier = 30, /// /// Zero width joiner (ZWJ): joiner control that prohibits breaks inside joiner sequences. /// ZeroWidthJoiner = 31, /// /// Contingent break (CB): break opportunity determined by additional layout information. /// ContingentBreak = 32, /// /// Ambiguous alphabetic or ideographic (AI): resolved by LB1 before rule evaluation. /// Ambiguous = 33, /// /// Mandatory break (BK): characters that cause a line break after themselves. /// MandatoryBreak = 34, /// /// Conditional Japanese starter (CJ): small Kana and related characters resolved by tailoring. /// ConditionalJapaneseStarter = 35, /// /// Carriage return (CR): causes a line break after itself except in a CR LF sequence. /// CarriageReturn = 36, /// /// Line feed (LF): causes a line break after itself. /// LineFeed = 37, /// /// Next line (NL): causes a line break after itself. /// NextLine = 38, /// /// Complex context dependent (SA): requires language-specific analysis for line break opportunities. /// ComplexContext = 39, /// /// Surrogate (SG): surrogate code points, which do not occur in well-formed Unicode scalar text. /// Surrogate = 40, /// /// Space (SP): enables indirect line breaks. /// Space = 41, /// /// Aksara (AK): consonants that form orthographic syllables in Brahmic scripts. /// Aksara = 43, /// /// Aksara pre-base (AP): pre-base signs, such as repha, that form Brahmic orthographic syllables. /// AksaraPrebase = 44, /// /// Aksara start (AS): independent vowels and related starters for Brahmic orthographic syllables. /// AksaraStart = 45, /// /// Unambiguous hyphen (HH): hyphen characters with unambiguous break-after behavior except word-initially. /// UnambiguousHyphen = 46, /// /// Virama final (VF): final consonant viramas that form Brahmic orthographic syllables. /// ViramaFinal = 47, /// /// Virama (VI): conjoining viramas that form Brahmic orthographic syllables. /// Virama = 48, /// /// Unknown (XX): code points without an explicit line break class. /// Unknown = 0xFF, } }