postProcessTrackedFiles function

List<FigSuggestion> postProcessTrackedFiles(
  1. String out, [
  2. List<String>? context
])

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();
}