Skip to content

Commit fab0636

Browse files
authored
Merge branch 'main' into cruel-wren-maroon
2 parents 2b53e0e + b4451e9 commit fab0636

File tree

3 files changed

+33
-17
lines changed

3 files changed

+33
-17
lines changed

src/vs/workbench/contrib/chat/browser/actions/chatContextActions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,7 @@ export class AttachContextAction extends Action2 {
495495

496496
qp.placeholder = pickerConfig.placeholder;
497497
qp.matchOnDescription = true;
498+
qp.matchOnDetail = true;
498499
// qp.ignoreFocusOut = true;
499500
qp.canAcceptInBackground = true;
500501
qp.busy = true;

src/vs/workbench/contrib/chat/browser/chatContextPickService.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export interface IChatContextPickerPickItem {
1717
label: string;
1818
iconClass?: string;
1919
description?: string;
20+
detail?: string;
2021
disabled?: boolean;
2122
asAttachment(): IChatRequestVariableEntry;
2223
}

src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.ts

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { coalesce } from '../../../../base/common/arrays.js';
77
import { Codicon } from '../../../../base/common/codicons.js';
8+
import { fromNow } from '../../../../base/common/date.js';
89
import { Disposable } from '../../../../base/common/lifecycle.js';
910
import { ThemeIcon } from '../../../../base/common/themables.js';
1011
import { URI } from '../../../../base/common/uri.js';
@@ -72,24 +73,37 @@ class SCMHistoryItemContext implements IChatContextPickerItem {
7273

7374
const historyItems = await historyProvider.provideHistoryItems({ historyItemRefs, limit: 100 }) ?? [];
7475

75-
return historyItems.map(historyItem => ({
76-
iconClass: ThemeIcon.asClassName(Codicon.gitCommit),
77-
label: historyItem.subject,
78-
description: historyItem.displayId ?? historyItem.id,
79-
asAttachment: () => {
80-
const historyItemTitle = getHistoryItemEditorTitle(historyItem);
81-
const multiDiffSourceUri = ScmHistoryItemResolver.getMultiDiffSourceUri(activeRepository.provider, historyItem);
82-
const attachmentName = `$(${Codicon.repo.id})\u00A0${activeRepository.provider.name}\u00A0$(${Codicon.gitCommit.id})\u00A0${historyItem.displayId ?? historyItem.id}`;
83-
84-
return {
85-
id: historyItem.id,
86-
name: attachmentName,
87-
value: multiDiffSourceUri,
88-
title: historyItemTitle,
89-
kind: 'scmHistoryItem'
90-
} satisfies ISCMHistoryItemVariableEntry;
76+
return historyItems.map(historyItem => {
77+
const details = [`${historyItem.displayId ?? historyItem.id}`];
78+
if (historyItem.author) {
79+
details.push(historyItem.author);
9180
}
92-
}) satisfies IChatContextPickerPickItem);
81+
if (historyItem.statistics) {
82+
details.push(`${historyItem.statistics.files} ${localize('files', 'file(s)')}`);
83+
}
84+
if (historyItem.timestamp) {
85+
details.push(fromNow(historyItem.timestamp, true, true));
86+
}
87+
88+
return {
89+
iconClass: ThemeIcon.asClassName(Codicon.gitCommit),
90+
label: historyItem.subject,
91+
detail: details.join(`$(${Codicon.circleSmallFilled.id})`),
92+
asAttachment: () => {
93+
const historyItemTitle = getHistoryItemEditorTitle(historyItem);
94+
const multiDiffSourceUri = ScmHistoryItemResolver.getMultiDiffSourceUri(activeRepository.provider, historyItem);
95+
const attachmentName = `$(${Codicon.repo.id})\u00A0${activeRepository.provider.name}\u00A0$(${Codicon.gitCommit.id})\u00A0${historyItem.displayId ?? historyItem.id}`;
96+
97+
return {
98+
id: historyItem.id,
99+
name: attachmentName,
100+
value: multiDiffSourceUri,
101+
title: historyItemTitle,
102+
kind: 'scmHistoryItem'
103+
} satisfies ISCMHistoryItemVariableEntry;
104+
}
105+
} satisfies IChatContextPickerPickItem;
106+
});
93107
}
94108
};
95109
}

0 commit comments

Comments
 (0)