diff --git a/lua/lazyvim/plugins/extras/coding/copilot.lua b/lua/lazyvim/plugins/extras/coding/copilot.lua index 26b29d64..213e4d79 100644 --- a/lua/lazyvim/plugins/extras/coding/copilot.lua +++ b/lua/lazyvim/plugins/extras/coding/copilot.lua @@ -35,7 +35,24 @@ return { ---@param opts cmp.ConfigSchema opts = function(_, opts) local cmp = require("cmp") + opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "copilot" } })) + + local confirm = opts.mapping[""] + local confirm_copilot = cmp.mapping.confirm({ + select = true, + behavior = cmp.ConfirmBehavior.Replace, + }) + + opts.mapping = vim.tbl_extend("force", opts.mapping, { + [""] = function(...) + local entry = cmp.get_selected_entry() + if entry and entry.source.name == "copilot" then + return confirm_copilot(...) + end + return confirm(...) + end, + }) end, }, }