findBreakOpportunities static method
Implementation
static List<(int, BreakOpportunity)> findBreakOpportunities(String text) {
final List<(int, BreakOpportunity)> opportunities = [];
for (int i = 0; i < text.length; i++) {
final char = text[i];
if (char == '\n') {
opportunities.add((i, BreakOpportunity.mandatory));
continue;
}
if (char == ' ') {
opportunities.add((i, BreakOpportunity.allowed));
continue;
}
if (_isPunctuation(char)) {
opportunities.add((i, BreakOpportunity.preferred));
continue;
}
if (i > 0 && !_isProhibitedBreak(text, i - 1, i) && i < text.length - 1) {
opportunities.add((i, BreakOpportunity.emergency));
}
}
opportunities.add((text.length - 1, BreakOpportunity.mandatory));
return opportunities;
}