trackFileDeletion method

AttributionState trackFileDeletion({
  1. required AttributionState attrState,
  2. required String filePath,
  3. required String oldContent,
})

Track a file deletion by Neomage.

Implementation

AttributionState trackFileDeletion({
  required AttributionState attrState,
  required String filePath,
  required String oldContent,
}) {
  final normalizedPath = normalizeFilePath(filePath);
  final existingState = attrState.fileStates[normalizedPath];
  final existingContribution = existingState?.neomageContribution ?? 0;
  final deletedChars = oldContent.length;

  final newFileState = FileAttributionState(
    contentHash: '',
    neomageContribution: existingContribution + deletedChars,
    mtime: DateTime.now().millisecondsSinceEpoch,
  );

  final newFileStates = Map<String, FileAttributionState>.from(
    attrState.fileStates,
  );
  newFileStates[normalizedPath] = newFileState;

  return attrState.copyWith(fileStates: newFileStates);
}