LogAttr

constructor()

Allocate a new LogAttr.

This instance will be allocated on the native heap and automatically freed when this class instance is garbage collected.


constructor(scope: <Error class: unknown class>)

Allocate a new LogAttr using the provided AutofreeScope.

The AutofreeScope manages the allocation lifetime. The most common usage is with memScoped.

Parameters

scope

The AutofreeScope to allocate this structure in.


constructor(isLineBreak: <Error class: unknown class>, isMandatoryBreak: <Error class: unknown class>, isCharBreak: <Error class: unknown class>, isWhite: <Error class: unknown class>, isCursorPosition: <Error class: unknown class>, isWordStart: <Error class: unknown class>, isWordEnd: <Error class: unknown class>, isSentenceBoundary: <Error class: unknown class>, isSentenceStart: <Error class: unknown class>, isSentenceEnd: <Error class: unknown class>, backspaceDeletesCharacter: <Error class: unknown class>, isExpandableSpace: <Error class: unknown class>, isWordBoundary: <Error class: unknown class>, breakInsertsHyphen: <Error class: unknown class>, breakRemovesPreceding: <Error class: unknown class>, reserved: <Error class: unknown class>)

Allocate a new LogAttr.

This instance will be allocated on the native heap and automatically freed when this class instance is garbage collected.

Parameters

isLineBreak

if set, can break line in front of character

isMandatoryBreak

if set, must break line in front of character

isCharBreak

if set, can break here when doing character wrapping

isWhite

is whitespace character

isCursorPosition

if set, cursor can appear in front of character. i.e. this is a grapheme boundary, or the first character in the text. This flag implements Unicode's Grapheme Cluster Boundaries semantics.

isWordStart

is first character in a word

isWordEnd

is first non-word char after a word Note that in degenerate cases, you could have both @is_word_start and @is_word_end set for some character.

isSentenceBoundary

is a sentence boundary. There are two ways to divide sentences. The first assigns all inter-sentence whitespace/control/format chars to some sentence, so all chars are in some sentence; @is_sentence_boundary denotes the boundaries there. The second way doesn't assign between-sentence spaces, etc. to any sentence, so

isSentenceStart

is first character in a sentence

isSentenceEnd

is first char after a sentence. Note that in degenerate cases, you could have both @is_sentence_start and @is_sentence_end set for some character. (e.g. no space after a period, so the next sentence starts right away)

backspaceDeletesCharacter

if set, backspace deletes one character rather than the entire grapheme cluster. This field is only meaningful on grapheme boundaries (where @is_cursor_position is set). In some languages, the full grapheme (e.g. letter + diacritics) is considered a unit, while in others, each decomposed character in the grapheme is a unit. In the default implementation of func@break, this bit is set on all grapheme boundaries except those following Latin, Cyrillic or Greek base characters.

isExpandableSpace

is a whitespace character that can possibly be expanded for justification purposes. (Since: 1.18)

isWordBoundary

is a word boundary, as defined by UAX#29. More specifically, means that this is not a position in the middle of a word. For example, both sides of a punctuation mark are considered word boundaries. This flag is particularly useful when selecting text word-by-word. This flag implements Unicode's Word Boundaries semantics. (Since: 1.22)

breakInsertsHyphen

when breaking lines before this char, insert a hyphen. Since: 1.50

breakRemovesPreceding

when breaking lines before this char, remove the preceding char. Since 1.50

reserved

constructor(isLineBreak: <Error class: unknown class>, isMandatoryBreak: <Error class: unknown class>, isCharBreak: <Error class: unknown class>, isWhite: <Error class: unknown class>, isCursorPosition: <Error class: unknown class>, isWordStart: <Error class: unknown class>, isWordEnd: <Error class: unknown class>, isSentenceBoundary: <Error class: unknown class>, isSentenceStart: <Error class: unknown class>, isSentenceEnd: <Error class: unknown class>, backspaceDeletesCharacter: <Error class: unknown class>, isExpandableSpace: <Error class: unknown class>, isWordBoundary: <Error class: unknown class>, breakInsertsHyphen: <Error class: unknown class>, breakRemovesPreceding: <Error class: unknown class>, reserved: <Error class: unknown class>, scope: <Error class: unknown class>)

Allocate a new LogAttr using the provided AutofreeScope.

The AutofreeScope manages the allocation lifetime. The most common usage is with memScoped.

Parameters

isLineBreak

if set, can break line in front of character

isMandatoryBreak

if set, must break line in front of character

isCharBreak

if set, can break here when doing character wrapping

isWhite

is whitespace character

isCursorPosition

if set, cursor can appear in front of character. i.e. this is a grapheme boundary, or the first character in the text. This flag implements Unicode's Grapheme Cluster Boundaries semantics.

isWordStart

is first character in a word

isWordEnd

is first non-word char after a word Note that in degenerate cases, you could have both @is_word_start and @is_word_end set for some character.

isSentenceBoundary

is a sentence boundary. There are two ways to divide sentences. The first assigns all inter-sentence whitespace/control/format chars to some sentence, so all chars are in some sentence; @is_sentence_boundary denotes the boundaries there. The second way doesn't assign between-sentence spaces, etc. to any sentence, so

isSentenceStart

is first character in a sentence

isSentenceEnd

is first char after a sentence. Note that in degenerate cases, you could have both @is_sentence_start and @is_sentence_end set for some character. (e.g. no space after a period, so the next sentence starts right away)

backspaceDeletesCharacter

if set, backspace deletes one character rather than the entire grapheme cluster. This field is only meaningful on grapheme boundaries (where @is_cursor_position is set). In some languages, the full grapheme (e.g. letter + diacritics) is considered a unit, while in others, each decomposed character in the grapheme is a unit. In the default implementation of func@break, this bit is set on all grapheme boundaries except those following Latin, Cyrillic or Greek base characters.

isExpandableSpace

is a whitespace character that can possibly be expanded for justification purposes. (Since: 1.18)

isWordBoundary

is a word boundary, as defined by UAX#29. More specifically, means that this is not a position in the middle of a word. For example, both sides of a punctuation mark are considered word boundaries. This flag is particularly useful when selecting text word-by-word. This flag implements Unicode's Word Boundaries semantics. (Since: 1.22)

breakInsertsHyphen

when breaking lines before this char, insert a hyphen. Since: 1.50

breakRemovesPreceding

when breaking lines before this char, remove the preceding char. Since 1.50

reserved
scope

The AutofreeScope to allocate this structure in.


constructor(pointer: <Error class: unknown class><<Error class: unknown class>>, cleaner: <Error class: unknown class>? = null)