truncatePathMiddle function
Truncates a file path in the middle to preserve directory context and filename.
Implementation
String truncatePathMiddle(String path, int maxLength) {
if (stringWidth(path) <= maxLength) return path;
if (maxLength <= 0) return '\u2026';
if (maxLength < 5) return truncateToWidth(path, maxLength);
final lastSlash = path.lastIndexOf('/');
final filename = lastSlash >= 0 ? path.substring(lastSlash) : path;
final directory = lastSlash >= 0 ? path.substring(0, lastSlash) : '';
final filenameWidth = stringWidth(filename);
if (filenameWidth >= maxLength - 1) {
return truncateStartToWidth(path, maxLength);
}
final availableForDir = maxLength - 1 - filenameWidth;
if (availableForDir <= 0) {
return truncateStartToWidth(filename, maxLength);
}
final truncatedDir = truncateToWidthNoEllipsis(directory, availableForDir);
return '$truncatedDir\u2026$filename';
}