emptyAddNewFunction method

void emptyAddNewFunction({
  1. required AwsFormatOptionMD formatOption,
})

Implementation

void emptyAddNewFunction({
  required AwsFormatOptionMD formatOption,
}) {
  var baseOffset = 0;
  var extentOffset = 0;
  switch (formatOption) {
    case AwsFormatOptionMD.formatStartEnd:
      var newText = character;
      var beforeText = controller.text.substring(0, selection.start);
      var afterText =
          controller.text.substring(selection.end, controller.text.length);
      controller.text = '$beforeText$newText$placeholder$newText$afterText';
      baseOffset = selection.start + character!.length;
      extentOffset = selection.end + placeholder.length + character!.length;
      break;
    case AwsFormatOptionMD.formatStart:
      var newText = character;
      var beforeText = controller.text.substring(0, selection.start);
      var afterText =
          controller.text.substring(selection.end, controller.text.length);
      controller.text = '$beforeText$newText$placeholder$afterText';

      baseOffset = selection.start + character!.length;
      extentOffset = selection.end + placeholder.length + character!.length;
      break;
    case AwsFormatOptionMD.formatList:
      var newText = orderedList == true ? '1. ' : character;
      var beforeText = controller.text.substring(0, selection.start);
      var afterText =
          controller.text.substring(selection.end, controller.text.length);
      controller.text = '$beforeText$newText$placeholder$afterText';
      baseOffset = selection.start + newText!.length;
      extentOffset = selection.end + placeholder.length + newText.length;
      break;
    case AwsFormatOptionMD.formatAddNew:
      newLine == true ? newText = '\n$character\n' : newText = character!;
      controller.text = '$beforeText$newText$afterText';
      baseOffset = selection.start + character!.length + 1;
      extentOffset = selection.start + character!.length + 1;
      break;
    default:
  }
  if (baseOffset >= controller.text.length) {
    baseOffset = controller.text.length;
  }
  if (extentOffset >= controller.text.length) {
    extentOffset = controller.text.length;
  }
  if (baseOffset <= 0) baseOffset = 0;
  if (extentOffset <= 0) extentOffset = 0;
  controller.selection = TextSelection(
    baseOffset: baseOffset,
    extentOffset: extentOffset,
  );
}