getHeadEquality static method
Returns the equals head part of l
elements.
Implementation
static String getHeadEquality(List<String> l,
{Pattern? delimiter,
int? minLength,
bool Function(String s)? validator}) {
if (l.length <= 1) return '';
var min = l.map((e) => e.length).min;
if (minLength != null && min > minLength) min = minLength;
var longest = '';
String? longestWithDelimiter;
if (delimiter is RegExp) {
delimiter = asEndingPattern(delimiter);
}
for (var sz = 1; sz < min; ++sz) {
var head = l[0].substring(0, sz);
var matches = true;
for (var i = 1; i < l.length; ++i) {
var e = l[i];
if (!e.startsWith(head)) {
matches = false;
break;
}
}
if (matches && (validator == null || validator(head))) {
longest = head;
if (delimiter != null &&
endsWithPattern(head, delimiter, isEndingPattern: true)) {
longestWithDelimiter = head;
}
}
}
return longestWithDelimiter ?? longest;
}