toolbarItemPressed static method

void toolbarItemPressed({
  1. required AwsMarkdownMenuOption markdownToolbarOption,
  2. required TextEditingController controller,
  3. required TextSelection selection,
  4. int? option,
  5. String? customBoldCharacter,
  6. String? customItalicCharacter,
  7. String? customCodeCharacter,
  8. String? customBulletedListCharacter,
  9. String? customHorizontalRuleCharacter,
})

Implementation

static void toolbarItemPressed({
  required AwsMarkdownMenuOption markdownToolbarOption,
  required TextEditingController controller,
  required TextSelection selection,
  int? option,
  String? customBoldCharacter,
  String? customItalicCharacter,
  String? customCodeCharacter,
  String? customBulletedListCharacter,
  String? customHorizontalRuleCharacter,
}) {
  switch (markdownToolbarOption) {
    case AwsMarkdownMenuOption.bold:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatStartEnd,
        controller: controller,
        selection: selection,
        character: customBoldCharacter ?? '**',
        placeholder: 'Bold',
      ).format();
      break;
    case AwsMarkdownMenuOption.italic:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatStartEnd,
        controller: controller,
        selection: selection,
        character: customItalicCharacter ?? '*',
        placeholder: 'Italic',
      ).format();
      break;
    case AwsMarkdownMenuOption.strikethrough:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatStartEnd,
        controller: controller,
        selection: selection,
        character: '~~',
        placeholder: 'Strikethrough',
      ).format();
      break;
    case AwsMarkdownMenuOption.code:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatStartEnd,
        controller: controller,
        selection: selection,
        character: customCodeCharacter ?? '```',
        placeholder: 'Code',
        newLine: true,
      ).format();
      break;
    case AwsMarkdownMenuOption.heading:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatStart,
        controller: controller,
        selection: selection,
        multipleCharacters: [
          '# ',
          '## ',
          '### ',
          '#### ',
          '##### ',
          '###### '
        ],
        multipleCharactersOption: option,
        newLine: true,
        placeholder: 'Heading',
      ).format();
      break;
    case AwsMarkdownMenuOption.quote:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatStart,
        controller: controller,
        selection: selection,
        character: '> ',
        newLine: true,
        placeholder: 'Quote',
      ).format();
      break;
    case AwsMarkdownMenuOption.unorderedList:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatList,
        controller: controller,
        selection: selection,
        character: customBulletedListCharacter != null
            ? '$customBulletedListCharacter '
            : '- ',
        placeholder: 'Bulleted list',
      ).format();
      break;
    case AwsMarkdownMenuOption.orderedList:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatList,
        controller: controller,
        selection: selection,
        orderedList: true,
        placeholder: 'Numbered list',
      ).format();
      break;
    case AwsMarkdownMenuOption.checkbox:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatList,
        controller: controller,
        selection: selection,
        placeholder: 'Checkbox',
        multipleCharacters: ['- [ ] ', '- [x] '],
        multipleCharactersOption: option,
      ).format();
      break;
    case AwsMarkdownMenuOption.link:
      formatTextLink(
        controller: controller,
        selection: selection,
      );
      break;
    case AwsMarkdownMenuOption.image:
      formatImage(
        controller: controller,
        selection: selection,
      );
      break;
    case AwsMarkdownMenuOption.horizontalRule:
      AwsFormatMD(
        formatOption: AwsFormatOptionMD.formatAddNew,
        controller: controller,
        selection: selection,
        //newLine: true,
        character: customHorizontalRuleCharacter ?? '---',
      ).format();
      break;
    default:
  }
}