emptyAddNewFunction method
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,
);
}