PeachDrawing.Text

PeachDrawing.Text.Unicode Namespace

Classes  
ArabicJoining The cursive joining of Arabic, Syriac and the other scripts that share the Joining_Type property (UAX #44 and the Unicode Core Specification chapter on Arabic).
Bidi The Unicode Bidirectional Algorithm (UAX #9): which direction each character of a paragraph reads in, and in what order the pieces of a line are drawn.
BidiAnalysis What Analyze(string, BaseDirection, IReadOnlyList<EmbeddingSpan>) found out about one paragraph: an embedding level for every UTF-16 code unit of the text, and the paragraph’s own level.
DefaultIgnorables Characters that carry meaning but have no appearance of their own: the Unicode Default_Ignorable_Code_Point property.
Emoji Which of its two appearances, text or emoji, a character that has both is to be drawn in (UTS #51 and CSS Fonts 4 font-variant-emoji).
Hyphenator Finds where a word may be hyphenated, with Liang’s pattern algorithm and the TeX hyphenation patterns published for about seventy languages.
KhmerShaping HarfBuzz’s own (pre-Universal-Shaping-Engine) classification of characters for Khmer - the script’s coeng/subjoined-consonant stacking model, which UniversalShaping does not cover (see KhmerCategory’s own remarks on why this is a separate model, not an extension of it).
LineBreaker The Unicode Line Breaking Algorithm (UAX #14): where a line of text may, and where it must, end.
OpenTypeTags The four-letter tags OpenType uses in place of script and language names.
Scripts Unicode scripts (UAX #24): the script of a character, and the script each character of a text is treated as belonging to once shared characters have been resolved against their surroundings.
Segmenter The default boundaries of Unicode Text Segmentation (UAX #29): where one grapheme cluster, word or sentence ends and the next begins.
UniversalShaping The Universal Shaping Engine’s classification of characters, for the Indic scripts it currently covers: Devanagari, Bengali, Gujarati and Tamil.
VerticalOrientation How a character is oriented when text is set vertically (UAX #50, the Vertical_Orientation property).
Structs  
BidiRun A maximal run of consecutive characters that share one resolved bidi embedding level.
EmbeddingSpan A directional push that applies to a stretch of the analysed text without any control character being present in it: how a host with its own markup (CSS unicode-bidi, an SVG direction attribute) tells Analyze(string, BaseDirection, IReadOnlyList<EmbeddingSpan>) about embeddings the string itself does not spell out.
LineBreakOptions The tailorings CSS applies to the line breaking algorithm. The default value is Auto and Normal, which is Normal, with Dictionary: set Strictness to Strict and ComplexContext to GeneralCategory for the algorithm’s own default.
Enums  
ArabicJoiningForm The positional form a character of a joining script takes: the one that decides which glyph a font substitutes for it.
ArabicJoiningType How a character takes part in cursive joining: the Joining_Type property of the Unicode Character Database, which Arabic, Syriac, N’Ko, Mandaic, Mongolian and several other scripts share.
BaseDirection The direction a paragraph is laid out in before its content says otherwise: the input to UAX #9 rules P2 and P3.
BidiClass The bidirectional character types of UAX #9: the value of the Bidi_Class property, which every code point has exactly one of.
ComplexContextBreaking How the characters of the Complex_Context line breaking class (SA) are resolved. UAX #14 rule LB1 leaves this to criteria outside the algorithm, and for the scripts written without spaces between words the criterion that matters is a word list.
EmojiMode The default a caller asks for when a character has both a text and an emoji presentation and no variation selector says which (CSS Fonts 4’s font-variant-emoji is the one caller today).
EmojiPresentation Which presentation of an [emoji presentation
participating code point](Emoji.IsPresentationParticipant(Rune).html ‘PeachDrawing.Text.Unicode.Emoji.IsPresentationParticipant(System.Text.Rune)’) a character is asked to be drawn in (CSS Fonts 4 font-variant-emoji, UTS #51 emoji presentation sequences).  
ExplicitPush One of the seven explicit directional formatting pushes that UAX #9 rules X2 to X5c recognise, each named after the control character that opens it.
KhmerCategory The category a character has in HarfBuzz’s own Khmer shaper: the alphabet its syllable grammar (KhmerSyllableScanner) is written over and its glyph reorder (KhmerReorderer) acts on.
LineBreakOpportunity What a line may do at a position between two characters.
LineBreakStrictness How strict the line breaking is about characters that should not start a line (CSS line-break).
UseCategory The category a character has in the Universal Shaping Engine (USE), the model that shapes Indic scripts: the alphabet its syllable grammar is written over and its reordering acts on.
VerticalOrientationClass The four values of Unicode’s Vertical_Orientation property (UAX #50), which classifies how a codepoint’s glyph is oriented when set in vertical text. Every assigned codepoint resolves to exactly one of these - see VerticalOrientation.
WordBreakMode How CSS word-break tailors the line breaking of the letters inside a word.