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. |