formatText method

void formatText(
  1. int index,
  2. int len,
  3. Attribute? attribute
)

Implementation

void formatText(int index, int len, Attribute? attribute) {
  if (len == 0 && attribute!.isInline && attribute.key != Attribute.link.key) {
    // Add the attribute to our toggledStyle.
    // It will be used later upon insertion.
    toggledStyle = toggledStyle.put(attribute);
  }

  final change = document.format(index, len, attribute);
  // Transform selection against the composed change and give priority to
  // the change. This is needed in cases when format operation actually
  // inserts data into the document (e.g. embeds).
  final adjustedSelection = selection.copyWith(
      baseOffset: change.transformPosition(selection.baseOffset),
      extentOffset: change.transformPosition(selection.extentOffset));
  if (selection != adjustedSelection) {
    _updateSelection(adjustedSelection, ChangeSource.local);
  }
  notifyListeners();
}