extractFromCodeChange method
Extract from a code diff with an optional description.
Implementation
List<MemoryCandidate> extractFromCodeChange(String diff, String description) {
final combined = '$description\n$diff';
final candidates = _matchPatterns(combined, ExtractionSource.codeChange);
// Try to pull the file path from the diff header.
final fileMatch = RegExp(
r'^[+\-]{3} [ab]/(.+)$',
multiLine: true,
).firstMatch(diff);
final relatedFile = fileMatch?.group(1);
if (relatedFile != null) {
for (var i = 0; i < candidates.length; i++) {
final c = candidates[i];
candidates[i] = MemoryCandidate(
content: c.content,
source: c.source,
category: c.category,
confidence: c.confidence,
reasoning: c.reasoning,
relatedFile: relatedFile,
);
}
}
return _filterAndCap(candidates);
}