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,
},
}
|