summaryrefslogtreecommitdiff
path: root/lua/plugins/ai.lua
blob: 0aa51d8fee901880bb2a45ff540f53bbf6ce0223 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
return {
    {
        "opencode-nvim",
        for_cat = "ai",
        keys = {
                -- stylua: ignore start
                { '<leader>co', function() require('opencode').toggle() end, desc = 'Toggle opencode' },
                { '<leader>ca', function() require('opencode').ask() end, desc = 'Ask opencode', mode = { 'n', 'v' } },
                { '<leader>cA', function() require('opencode').ask('@buffer ', { submit = true }) end, desc = 'Ask opencode about current file', mode = { 'n', 'v' } },
                { '<leader>cn', function() require('opencode').command('session.new') end, desc = 'New session' },
                { '<leader>ce', function() require('opencode').prompt('Explain @this and its context') end, desc = 'Explain code at cursor', mode = { 'n', 'v' } },
                { '<leader>cr', function() require('opencode').prompt('Review @buffer for correctness and readability') end, desc = 'Review file' },
                { '<leader>cf', function() require('opencode').prompt('Fix @diagnostics') end, desc = 'Fix errors' },
                { '<leader>cp', function() require('opencode').prompt('Optimize @this for performance and readability') end, desc = 'Optimize selection', mode = 'v' },
                { '<leader>cd', function() require('opencode').prompt('Add documentation comments for @this') end, desc = 'Document selection', mode = 'v' },
                { '<leader>ct', function() require('opencode').prompt('Add tests for @this') end, desc = 'Test selection', mode = 'v' },
                { '<leader>cs', function() require('opencode').select() end, desc = 'Select opencode action', mode = { 'n', 'v' } },
            -- stylua: ignore end
        },
        before = function()
            vim.g.opencode_opts = {
                providers = {
                    enabled = "terminal",
                    tmux = {},
                },
            }
        end,
    },
}