primaryDirection property

TextDirection get primaryDirection

Returns the primary direction based on character count For mixed text, returns the direction with more characters

Implementation

TextDirection get primaryDirection {
  if (_root == null) return TextDirection.ltr;

  int rtlCount = 0;
  int ltrCount = 0;

  for (final chunk in _root!.chunks()) {
    for (int i = 0; i < chunk.length; i++) {
      final codeUnit = chunk.codeUnitAt(i);
      if (BiDi.isRtlChar(codeUnit)) {
        rtlCount++;
      } else if (BiDi.isLtrChar(codeUnit)) {
        ltrCount++;
      }
    }
  }

  if (rtlCount == 0 && ltrCount == 0) return TextDirection.ltr;
  return rtlCount > ltrCount ? TextDirection.rtl : TextDirection.ltr;
}