diff --git a/lua/custom/plugins/ai.lua b/lua/custom/plugins/ai.lua index 9e5c8b3..702838a 100644 --- a/lua/custom/plugins/ai.lua +++ b/lua/custom/plugins/ai.lua @@ -40,7 +40,24 @@ vim.keymap.set({ 'n', 'x' }, 'ap', function() sk().prompt() end, { desc vim.keymap.set('n', 'ac', function() sk().toggle { name = 'claude', focus = true } end, { desc = 'Sidekick [C]laude' }) -- [[ codecompanion.nvim ]] -require('codecompanion').setup {} +-- Redrob Code speaks ACP (opencode-compatible), so reuse the opencode adapter. +-- Inline edit stays HTTP-only in CodeCompanion; chat edits files via ACP with a diff to accept. +require('codecompanion').setup { + adapters = { + acp = { + redrob = function() + return require('codecompanion.adapters').extend('opencode', { + name = 'redrob', + formatted_name = 'Redrob Code', + commands = { default = { 'redrob', 'acp' } }, + }) + end, + }, + }, + interactions = { + chat = { adapter = 'redrob' }, + }, +} vim.keymap.set({ 'n', 'v' }, 'cc', 'CodeCompanionChat Toggle', { desc = 'CodeCompanion [C]hat' }) vim.keymap.set({ 'n', 'v' }, 'ca', 'CodeCompanionActions', { desc = 'CodeCompanion [A]ctions' }) vim.keymap.set('v', 'ce', ":'<,'>CodeCompanion ", { desc = 'CodeCompanion inline [E]dit' })