diff --git a/private_dot_config/nvim/init.lua b/private_dot_config/nvim/init.lua index f3165a1..855aa4f 100644 --- a/private_dot_config/nvim/init.lua +++ b/private_dot_config/nvim/init.lua @@ -20,6 +20,7 @@ -- ├──── 25_git.lua Gitsigns -- ├──── 30_formatting.lua vim-sleuth and conform formatting configs -- ├──── 35_yanky.lua Yank and Put improvements +-- ├──── 40_ai.lua Github Copilot integration, CodeCompanion,etc. -- ├ snippets/ Snippets definitions are in here -- ├── package.json Snippet repository metadata -- ├── global.json Global text snippets diff --git a/private_dot_config/nvim/lua/plugin/40_ai.lua b/private_dot_config/nvim/lua/plugin/40_ai.lua new file mode 100644 index 0000000..fba37e2 --- /dev/null +++ b/private_dot_config/nvim/lua/plugin/40_ai.lua @@ -0,0 +1,76 @@ +return { + { + "olimorris/codecompanion.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-treesitter/nvim-treesitter", + { + "MeanderingProgrammer/render-markdown.nvim", + ft = { "markdown", "codecompanion" }, + }, + { + "nvim-mini/mini.diff", + config = function() + require("mini.diff").setup({ + source = require("mini.diff").gen_source.none(), + }) + end, + }, + { + "HakonHarnes/img-clip.nvim", + opts = { + filetypes = { + codecompanion = { + prompt_for_file_name = false, + template = "[Image]($FILE_PATH)", + use_absolute_path = true, + }, + }, + }, + }, + }, + -- stylua: ignore + keys = { + { "ac", mode = { "n", "v" }, "CodeCompanionChat Toggle", desc = "toggle chat" }, + { "ai", mode = { "n", "v" }, "CodeCompanionActions", desc = "actions picker" }, + { "y", mode = { "v" }, "CodeCompanionChat Add", desc = "put in chat", }, + }, + -- stylua: unignore + opts = { + strategies = { + chat = { + variables = { + ["buffer"] = { + opts = { + default_params = "watch", + }, + }, + }, + slash_commands = { + ["buffer"] = { + keymaps = { + modes = { + i = "", + n = "b", + }, + }, + }, + }, + }, + }, + display = { + action_palette = { + width = 85, + height = 10, + prompt = "prompt:", + provider = "fzf_lua", + opts = { + show_default_actions = true, + show_default_prompt_library = true, + title = "action:", + }, + }, + }, + }, + }, +}