39
}
40
41
>
export async function awaitStatsForSession(model: IChatModel): Promise<IChatSessionStats | undefined> {
chat.ts
42
>
if (!model.editingSession) {
43
return undefined;
44
}
46
>
await chatEditingSessionIsReady(model.editingSession);
47
>
if (!model.editingSession) {
48
return undefined;
49
}
51
>
await Promise.all(model.editingSession.entries.get().map(entry => entry.getDiffInfo?.()));
52
>
if (!model.editingSession) {
53
return undefined;
54
}
56
>
const diffs = model.editingSession.entries.get();
57
>
const reduceResult = diffs.reduce((acc, diff) => {
58
acc.fileUris.add(diff.originalURI);
59
acc.added += diff.linesAdded?.get() ?? 0;
60
acc.removed += diff.linesRemoved?.get() ?? 0;
61
return acc;
62
>
}, { fileUris: new ResourceSet(), added: 0, removed: 0 });
chat.ts
63
>
64
>
if (reduceResult.fileUris.size > 0 && (reduceResult.added > 0 || reduceResult.removed > 0)) {
65
return {
66
fileCount: reduceResult.fileUris.size,