| |
|
| | const vscode = require('vscode'); |
| | const fs = require('fs'); |
| | const path = require('path'); |
| |
|
| | let autoAcceptInterval = null; |
| | let enabled = true; |
| | let statusBarItem; |
| |
|
| | |
| | |
| | const ACCEPT_COMMANDS = [ |
| | |
| | 'antigravity.terminalCommand.accept', |
| | 'antigravity.terminalCommand.run', |
| |
|
| | |
| | 'antigravity.command.accept', |
| |
|
| | |
| | 'antigravity.prioritized.agentAcceptFocusedHunk', |
| | ]; |
| |
|
| | function activate(context) { |
| | |
| | vscode.commands.getCommands(true).then(cmds => { |
| | try { |
| | fs.writeFileSync( |
| | path.join(process.env.USERPROFILE, '.gemini', 'antigravity', 'commands_dump.json'), |
| | JSON.stringify(cmds, null, 2) |
| | ); |
| | } catch (e) { } |
| | }); |
| |
|
| | |
| | let disposable = vscode.commands.registerCommand('unlimited.toggle', function () { |
| | enabled = !enabled; |
| | updateStatusBar(); |
| | if (enabled) { |
| | vscode.window.showInformationMessage('Auto-Skip: ON'); |
| | } else { |
| | vscode.window.showInformationMessage('Auto-Skip: OFF'); |
| | } |
| | }); |
| | context.subscriptions.push(disposable); |
| |
|
| | try { |
| | |
| | |
| | statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 10000); |
| | statusBarItem.command = 'unlimited.toggle'; |
| | context.subscriptions.push(statusBarItem); |
| |
|
| | updateStatusBar(); |
| | statusBarItem.show(); |
| | } catch (e) { |
| | |
| | } |
| |
|
| | |
| | startLoop(); |
| | } |
| |
|
| | function updateStatusBar() { |
| | if (!statusBarItem) return; |
| |
|
| | if (enabled) { |
| | statusBarItem.text = "Auto-Skip: ON"; |
| | statusBarItem.tooltip = "Unlimited Auto-Skip is Executing (Click to Pause)"; |
| | statusBarItem.backgroundColor = undefined; |
| | } else { |
| | statusBarItem.text = "Auto-Skip: OFF"; |
| | statusBarItem.tooltip = "Unlimited Auto-Skip is Paused (Click to Resume)"; |
| | statusBarItem.backgroundColor = new vscode.ThemeColor('statusBarItem.warningBackground'); |
| | } |
| | } |
| |
|
| | function startLoop() { |
| | autoAcceptInterval = setInterval(async () => { |
| | if (!enabled) return; |
| |
|
| | |
| | await Promise.allSettled( |
| | ACCEPT_COMMANDS.map(cmd => vscode.commands.executeCommand(cmd)) |
| | ); |
| | }, 300); |
| | } |
| |
|
| | function deactivate() { |
| | if (autoAcceptInterval) { |
| | clearInterval(autoAcceptInterval); |
| | } |
| | } |
| |
|
| | module.exports = { |
| | activate, |
| | deactivate |
| | } |
| |
|
| |
|