diff options
| author | brustybee <bee@4d2.org> | 2026-03-09 17:02:03 +0530 |
|---|---|---|
| committer | brustybee <bee@4d2.org> | 2026-03-09 17:02:03 +0530 |
| commit | 972e5f9c68cc433c5fc26adf92cd25b293a3776a (patch) | |
| tree | c5930854787316181d07854048d9627538017ceb /lua/plugins/ai.lua | |
One shot upload
Diffstat (limited to 'lua/plugins/ai.lua')
| -rw-r--r-- | lua/plugins/ai.lua | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lua/plugins/ai.lua b/lua/plugins/ai.lua new file mode 100644 index 0000000..0aa51d8 --- /dev/null +++ b/lua/plugins/ai.lua @@ -0,0 +1,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, + }, +} |
