HashTagTextEditingController class

A modern TextEditingController that decorates hashtags, mentions, and cashtags in real-time.

Can be used directly in any standard TextField, TextFormField, or CupertinoTextField without requiring custom widget wrappers.

Example:

TextFormField(
  controller: HashTagTextEditingController(
    decoratedStyle: const TextStyle(color: Colors.blue, fontWeight: FontWeight.bold),
    decorateAtSign: true,
    decorateCashtag: true,
  ),
)
Inheritance

Constructors

HashTagTextEditingController({String? text, TextStyle? decoratedStyle, TextStyle? basicStyle, bool decorateAtSign = false, bool decorateCashtag = false, List<String>? customPrefixes, ValueChanged<String>? onTagChanged, VoidCallback? onTagFinished})
Creates a HashTagTextEditingController with customizable tag styling and callbacks.

Properties

basicStyle → TextStyle?
The TextStyle applied to normal, untagged text.
final
customPrefixes → List<String>?
Optional list of custom prefix symbols to decorate (e.g. ['#', '@', '$']).
final
decorateAtSign → bool
Whether to decorate words starting with @ (mentions).
final
decorateCashtag → bool
Whether to decorate words starting with $ (cashtags for crypto/stocks).
final
decoratedStyle → TextStyle?
The TextStyle applied to decorated hashtags and mentions.
final
hashCode → int
The hash code for this object.
no setterinherited
hasListeners → bool
Whether any listeners are currently registered.
no setterinherited
onTagChanged → ValueChanged<String>?
Callback called whenever the user is actively typing inside a tag.
final
onTagFinished → VoidCallback?
Callback called when the user finishes typing a tag (e.g. whitespace entered).
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
text ↔ String
The current string the user is editing.
getter/setter pairinherited
value ↔ TextEditingValue
The current value stored in this notifier.
getter/setter pairinherited

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
buildTextSpan({required BuildContext context, TextStyle? style, required bool withComposing}) → 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
dispose() → void
Discards any resources used by the object.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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