diff --git a/config/nvim/.gitignore b/config/nvim/.gitignore new file mode 100644 index 0000000..2123d55 --- /dev/null +++ b/config/nvim/.gitignore @@ -0,0 +1,2 @@ +# secrets for nvim +lua/secrets/*.lua diff --git a/config/nvim/lua/plugins/codecompanion.lua b/config/nvim/lua/plugins/codecompanion.lua new file mode 100644 index 0000000..bf0ff04 --- /dev/null +++ b/config/nvim/lua/plugins/codecompanion.lua @@ -0,0 +1,61 @@ +local secrets = require('secrets.codecompanion') + +return { + "olimorris/codecompanion.nvim", + opts = { + strategies = { + -- Change Default Adapter + chat = { + adapter = "ollama", + }, + inline = { + adapter = "openai_41mini", + keymaps = { + accept_change = { + modes = { n = "ga" }, + description = "Accept the suggested change", + }, + reject_change = { + modes = { n = "gr" }, + description = "Reject the suggested change", + }, + }, + }, + }, + adapters = { + openai_41mini = function() + return require("codecompanion.adapters").extend("openai", { + name = "openai_41mini", + schema = { + model = { + default = "gpt-4.1-mini" + } + }, + env = { + api_key = secrets.openai_api_key + } + }) + end, + ollama = function() + return require("codecompanion.adapters").extend("ollama", { + name = "local_llama3.2", + schema = { + model = { + default = "llama3.2:3b" + }, + num_ctx = { + default = 16384, + }, + num_predict = { + default = -1, + }, + }, + }) + end, + }, + }, + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-treesitter/nvim-treesitter", + }, +} diff --git a/config/nvim/lua/secrets/codecompanion.lua.sample b/config/nvim/lua/secrets/codecompanion.lua.sample new file mode 100644 index 0000000..de84bdd --- /dev/null +++ b/config/nvim/lua/secrets/codecompanion.lua.sample @@ -0,0 +1,3 @@ +return { + openai_api_key = "your_own_api_key" +}