postProcessTrackedFiles function
Implementation
List<FigSuggestion> postProcessTrackedFiles(String out,
[List<String>? context]) {
final output = filterMessages(out);
if (output.startsWith('fatal:')) return [];
final files = output.split('\n').map((line) {
final arr = line.trim().split(' ');
return _TrackedFile(working: arr[0], file: arr.sublist(1).join(' ').trim());
}).toList();
return files.map((item) {
final file = item.file.replaceAll(RegExp(r'^"|"$'), '');
var ext = '';
try {
final parts = file.split('.');
ext = parts.isEmpty ? '' : parts.last;
} catch (_) {}
if (file.endsWith('/')) ext = 'folder';
final ctx = context ?? [];
final priority = ctx.any((c) => c.contains(file)) ? 50 : 100;
return FigSuggestion(
name: file,
icon: 'fig://icon?type=$ext&color=ff0000&badge=${item.working}',
description: 'Changed tracked files',
priority: priority,
);
}).toList();
}