URichTextController class

A TextEditingController that keeps a list of UStyleSpans in sync with text edits and renders them via buildTextSpan. It survives insertions/deletions by shifting spans and exposes helpers to toggle/apply formatting on the current selection.

Inheritance
Available extensions

Constructors

URichTextController({String? text, List<UStyleSpan>? spans})

Properties

hashCode → int
The hash code for this object.
no setterinherited
hasListeners → bool
Whether any listeners are currently registered.
no setterinherited
pending → Map<UInlineAttr, Object?>
Formatting queued for the next typed character while the selection is collapsed (so pressing bold then typing produces bold text).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
selection ↔ TextSelection
The currently selected range within text.
getter/setter pairinherited
spans → List<UStyleSpan>
final
text ↔ String
The current string the user is editing.
getter/setter pairinherited
value ↔ TextEditingValue
The current value stored in this notifier.
getter/setter pairinherited-getteroverride-setter

Methods

activeAttributes() → Set<UInlineAttr>
The active boolean attributes covering the whole current selection.
The href active at the current selection, or null.
activeValue(UInlineAttr attr) → Object?
The value of a value-attribute at the current selection, or null when the selection is not uniformly covered by it.
addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
appendCharacter(String character, {int? maxLength}) → void

Available on TextEditingController, provided by the TextEditingControllerExtension extension

applyValue(UInlineAttr attr, Object? value) → void
Apply (or clear when value is null) a value-attribute over the selection.
buildTextSpan({required BuildContext context, required bool withComposing, TextStyle? style}) → TextSpan
Builds TextSpan from current editing value.
override
clear() → void
Set the value to empty.
inherited
clearComposing() → void
Set the composing region to an empty range.
inherited
clearFormatting() → void
Remove every inline attribute over the current selection.
dispose() → void
Discards any resources used by the object.
inherited
dropLastCharacter() → void

Available on TextEditingController, provided by the TextEditingControllerExtension extension

isNotNullOrEmpty() → bool

Available on TextEditingController, provided by the TextEditingControllerExtension extension

isNullOrEmpty() → bool

Available on TextEditingController, provided by the TextEditingControllerExtension extension

normalize() → void
Merge touching/overlapping spans that share attr + value.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
numDouble() → double

Available on TextEditingController, provided by the TextEditingControllerExtension extension

numInt() → int

Available on TextEditingController, provided by the TextEditingControllerExtension extension

numString() → String

Available on TextEditingController, provided by the TextEditingControllerExtension extension

onBeforeTextChange(String oldText, String newText) → void
Optional hook so subclasses can react to text edits before spans shift.
removeAttr(UInlineAttr attr, int s, int e) → void
Subtract the range [s, e) from every span of attr, splitting as needed.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
setContent(String newText, List<UStyleSpan> newSpans, {int? caret}) → void
Replace the whole styled content in one shot.
snapshotSpans() → List<UStyleSpan>
A deep copy of the current spans, for undo snapshots.
styleAt(int i, TextStyle base, ColorScheme cs) → TextStyle
The resolved TextStyle for the character at index i.
toggleAttribute(UInlineAttr attr) → void
Toggle a boolean attribute over the current selection. With a collapsed selection the attribute is queued for the next typed characters.
toString() → String
A string representation of this object.
inherited
trimmedLatin() → String

Available on TextEditingController, provided by the TextEditingControllerExtension extension

valueOrNull() → String?

Available on TextEditingController, provided by the TextEditingControllerExtension extension

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

mapOffsetEnd(int x, int prefix, int removedEnd, int delta) → int
Remaps a range end across the same edit as mapOffsetStart.
mapOffsetStart(int x, int prefix, int removedEnd, int delta) → int
Remaps a range start across an edit that replaced [prefix, removedEnd) with a region of length removedEnd - prefix + delta.
resolveStyle(Map<UInlineAttr, Object?> active, TextStyle base, ColorScheme cs) → TextStyle
Turns a map of active attributes into a TextStyle on top of base.