diff --git a/init.lua b/init.lua index 6315ae3c..cda68f18 100644 --- a/init.lua +++ b/init.lua @@ -684,9 +684,9 @@ require('lazy').setup({ -- No, but seriously. Please read `:help ins-completion`, it is really good! mapping = cmp.mapping.preset.insert { -- Select the [n]ext item - [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_next_item(), -- Select the [p]revious item - [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.select_prev_item(), -- Scroll the documentation window [b]ack / [f]orward [''] = cmp.mapping.scroll_docs(-4), diff --git a/lua/plugins/copilot.lua b/lua/plugins/copilot.lua index bd703ed8..146c6607 100644 --- a/lua/plugins/copilot.lua +++ b/lua/plugins/copilot.lua @@ -3,7 +3,10 @@ return { cmd = 'Copilot', event = 'InsertEnter', config = function() - require('copilot').setup { + local copilot = require 'copilot' + local suggestion = require 'copilot.suggestion' + + copilot.setup { suggestion = { keymap = { accept = '', @@ -11,6 +14,21 @@ return { }, }, } - require('copilot.suggestion').toggle_auto_trigger() + + -- Define the tab_complete function globally + _G.tab_complete = function() + if suggestion.is_visible() then + vim.schedule(function() + suggestion.accept() + end) + else + return vim.api.nvim_replace_termcodes('', true, true, true) + end + end + + -- Map to the global tab_complete function + vim.api.nvim_set_keymap('i', '', 'v:lua.tab_complete()', { expr = true, noremap = true, silent = true }) + + suggestion.toggle_auto_trigger() end, }