Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/chatSessions/copilotcli/vscode-node/commands/diffCommands.ts
13406 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import * as vscode from 'vscode';
7
import { DiffStateManager } from '../diffState';
8
import { ILogger } from '../../../../../platform/log/common/logService';
9
10
export const ACCEPT_DIFF_COMMAND = 'github.copilot.chat.copilotCLI.acceptDiff';
11
export const REJECT_DIFF_COMMAND = 'github.copilot.chat.copilotCLI.rejectDiff';
12
13
export function registerDiffCommands(logger: ILogger, diffState: DiffStateManager): vscode.Disposable[] {
14
const disposables: vscode.Disposable[] = [];
15
16
disposables.push(
17
vscode.commands.registerCommand(ACCEPT_DIFF_COMMAND, () => {
18
logger.info('[DIFF] ===== ACCEPT COMMAND =====');
19
const diff = diffState.getForCurrentTab();
20
if (!diff) {
21
logger.info('[DIFF] No active diff found for accept');
22
return;
23
}
24
25
logger.info(`[DIFF] Accepting diff: ${diff.tabName}, diffId=${diff.diffId}`);
26
diff.cleanup();
27
diff.resolve({ status: 'SAVED', trigger: 'accepted_via_button' });
28
logger.info('[DIFF] Accept command done');
29
})
30
);
31
32
disposables.push(
33
vscode.commands.registerCommand(REJECT_DIFF_COMMAND, () => {
34
logger.info('[DIFF] ===== REJECT COMMAND =====');
35
const diff = diffState.getForCurrentTab();
36
if (!diff) {
37
logger.info('[DIFF] No active diff found for reject');
38
return;
39
}
40
logger.info(`[DIFF] Rejecting diff: ${diff.tabName}, diffId=${diff.diffId}`);
41
diff.cleanup();
42
diff.resolve({ status: 'REJECTED', trigger: 'rejected_via_button' });
43
logger.info('[DIFF] Reject command done');
44
})
45
);
46
47
return disposables;
48
}
49
50