textSanitizeRunes function

List<int> textSanitizeRunes(
  1. List<int> runes, {
  2. required bool multiline,
})

Implementation

List<int> textSanitizeRunes(List<int> runes, {required bool multiline}) {
  final tabRunes = multiline
      ? const <int>[0x20, 0x20, 0x20, 0x20]
      : const <int>[0x20];
  final newlineRunes = multiline ? const <int>[0x0A] : const <int>[0x20];
  final result = <int>[];

  for (final rune in runes) {
    if (rune == 0xFFFD) {
      continue;
    } else if (rune == 0x0D || rune == 0x0A) {
      result.addAll(newlineRunes);
    } else if (rune == 0x09) {
      result.addAll(tabRunes);
    } else if (_isControlRune(rune)) {
      continue;
    } else {
      result.add(rune);
    }
  }

  return result;
}