import * as vscode from 'vscode';
export class AtomCodeActionProvider implements vscode.CodeActionProvider {
static readonly providedCodeActionKinds = [vscode.CodeActionKind.QuickFix, vscode.CodeActionKind.Refactor];
provideCodeActions(
_document: vscode.TextDocument,
range: vscode.Range | vscode.Selection,
): vscode.CodeAction[] {
if (range.isEmpty) return [];
const actions: vscode.CodeAction[] = [];
const explainAction = new vscode.CodeAction('AtomCode: Explain', vscode.CodeActionKind.Empty);
explainAction.command = { command: 'atomcode.explain', title: 'Explain Selection' };
actions.push(explainAction);
const fixAction = new vscode.CodeAction('AtomCode: Fix', vscode.CodeActionKind.QuickFix);
fixAction.command = { command: 'atomcode.fix', title: 'Fix Selection' };
actions.push(fixAction);
const optimizeAction = new vscode.CodeAction('AtomCode: Optimize', vscode.CodeActionKind.Refactor);
optimizeAction.command = { command: 'atomcode.optimize', title: 'Optimize Selection' };
actions.push(optimizeAction);
const addToChatAction = new vscode.CodeAction('AtomCode: Add to Chat', vscode.CodeActionKind.Empty);
addToChatAction.command = { command: 'atomcode.addToChat', title: 'Add to Chat' };
actions.push(addToChatAction);
return actions;
}
}