buildTextSpan method

  1. @override
TextSpan buildTextSpan({
  1. required BuildContext context,
  2. TextStyle? style,
  3. required bool withComposing,
})
override

Builds TextSpan from current editing value.

By default makes text in composing range appear as underlined. Descendants can override this method to customize appearance of text.

Implementation

@override
TextSpan buildTextSpan({
  required BuildContext context,
  TextStyle? style,
  required bool withComposing,
}) {
  if (rxText.value != text) {
    rxText.value = text;
    if (onTextChange != null) {
      onTextChange?.call(text);
    }
  }

  if (decorations.isEmpty) {
    return super.buildTextSpan(
      context: context,
      style: style,
      withComposing: withComposing,
    );
  }

  final defaultStyle = style ?? DefaultTextStyle.of(context).style;
  final textValue = text;

  final spans = _buildSpans(textValue, defaultStyle);
  return TextSpan(style: defaultStyle, children: spans);
}