Skip to content

Commit 4df6ae2

Browse files
authored
add command to add transient open editor file to working set (microsoft#232997)
1 parent 60796c9 commit 4df6ae2

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,27 @@ abstract class WorkingSetAction extends Action2 {
5757
abstract runWorkingSetAction(accessor: ServicesAccessor, currentEditingSession: IChatEditingSession, chatWidget: IChatWidget | undefined, ...uris: URI[]): any;
5858
}
5959

60+
registerAction2(class AddFileToWorkingSet extends WorkingSetAction {
61+
constructor() {
62+
super({
63+
id: 'chatEditing.addFileToWorkingSet',
64+
title: localize2('addFileToWorkingSet', 'Add File'),
65+
icon: Codicon.plus,
66+
menu: [{
67+
id: MenuId.ChatEditingWidgetModifiedFilesToolbar,
68+
when: ContextKeyExpr.equals(chatEditingWidgetFileStateContextKey.key, WorkingSetEntryState.Transient),
69+
order: 0,
70+
group: 'navigation'
71+
}],
72+
});
73+
}
74+
75+
async runWorkingSetAction(_accessor: ServicesAccessor, currentEditingSession: IChatEditingSession, _chatWidget: IChatWidget, ...uris: URI[]): Promise<void> {
76+
for (const uri of uris) {
77+
currentEditingSession.addFileToWorkingSet(uri);
78+
}
79+
}
80+
});
6081

6182
registerAction2(class RemoveFileFromWorkingSet extends WorkingSetAction {
6283
constructor() {

src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,8 @@ export class ChatEditingSession extends Disposable implements IChatEditingSessio
467467
}
468468

469469
addFileToWorkingSet(resource: URI) {
470-
if (!this._workingSet.has(resource)) {
470+
const state = this._workingSet.get(resource);
471+
if (state === undefined || state === WorkingSetEntryState.Transient) {
471472
this._workingSet.set(resource, WorkingSetEntryState.Attached);
472473

473474
// Convert all transient entries to attachments

0 commit comments

Comments
 (0)