defaultIndentWidthBuilder static method

HorizontalSpacing defaultIndentWidthBuilder(
  1. Block block,
  2. BuildContext context,
  3. int count,
  4. LeadingBlockNumberPointWidth numberPointWidthBuilder,
)

Get the horizontalSpacing using the default implementation provided by Flutter Quill

Implementation

static HorizontalSpacing defaultIndentWidthBuilder(
    Block block,
    BuildContext context,
    int count,
    LeadingBlockNumberPointWidth numberPointWidthBuilder) {
  final defaultStyles = QuillStyles.getStyles(context, false)!;
  final fontSize = defaultStyles.paragraph?.style.fontSize ?? 16;
  final attrs = block.style.attributes;

  final indent = attrs[Attribute.indent.key];
  var extraIndent = 0.0;
  if (indent != null && indent.value != null) {
    extraIndent = fontSize * indent.value;
  }

  if (attrs.containsKey(Attribute.blockQuote.key)) {
    return HorizontalSpacing(fontSize + extraIndent, 0);
  }

  var baseIndent = 0.0;

  if (attrs.containsKey(Attribute.list.key)) {
    baseIndent = fontSize * 2;
    if (attrs[Attribute.list.key] == Attribute.ol) {
      baseIndent = numberPointWidthBuilder(fontSize, count);
    } else if (attrs.containsKey(Attribute.codeBlock.key)) {
      baseIndent = numberPointWidthBuilder(fontSize, count);
    }
  }

  return HorizontalSpacing(baseIndent + extraIndent, 0);
}