Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ require('copilot').setup({
enabled = true,
auto_trigger = false,
hide_during_completion = true,
debounce = 75,
debounce = 15,
trigger_on_accept = true,
keymap = {
accept = "<M-l>",
Expand All @@ -142,6 +142,7 @@ require('copilot').setup({
next = "<M-]>",
prev = "<M-[>",
dismiss = "<C-]>",
toggle_auto_trigger = false,
},
},
nes = {
Expand Down
2 changes: 2 additions & 0 deletions lua/copilot/config/suggestion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ local suggestion = {
next = "<M-]>",
prev = "<M-[>",
dismiss = "<C-]>",
toggle_auto_trigger = false,
},
},
}
Expand All @@ -51,6 +52,7 @@ function suggestion.validate(config)
vim.validate("keymap.next", config.keymap.next, { "string", "boolean" })
vim.validate("keymap.prev", config.keymap.prev, { "string", "boolean" })
vim.validate("keymap.dismiss", config.keymap.dismiss, { "string", "boolean" })
vim.validate("keymap.toggle_auto_trigger", config.keymap.toggle_auto_trigger, { "string", "boolean" })
end

return suggestion
25 changes: 24 additions & 1 deletion lua/copilot/suggestion/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,14 @@ function M.set_keymap(bufnr)

return false
end, "[copilot] dismiss suggestion", bufnr)

keymaps.register_keymap(
"i",
keymap.toggle_auto_trigger,
M.toggle_auto_trigger,
"[copilot] toggle auto trigger",
bufnr
)
end

---@param bufnr integer
Expand All @@ -184,6 +192,7 @@ function M.unset_keymap(bufnr)
keymaps.unset_keymap_if_exists("i", keymap.next, bufnr)
keymaps.unset_keymap_if_exists("i", keymap.prev, bufnr)
keymaps.unset_keymap_if_exists("i", keymap.dismiss, bufnr)
keymaps.unset_keymap_if_exists("i", keymap.toggle_auto_trigger, bufnr)
end

local function stop_timer()
Expand Down Expand Up @@ -733,7 +742,21 @@ end

-- toggles auto trigger for the current buffer
function M.toggle_auto_trigger()
vim.b.copilot_suggestion_auto_trigger = not should_auto_trigger()
local bufnr = vim.api.nvim_get_current_buf()
local new_state = not should_auto_trigger()
vim.b.copilot_suggestion_auto_trigger = new_state

-- Long debounce will still show suggestions after toggling in
-- insert mode, so we clear them manually.
if not new_state then
local ctx = get_ctx()
clear(ctx)
M.clear_preview()
else
request_suggestion_when_auto_trigger(bufnr)
end

logger.trace("auto trigger toggled to " .. tostring(new_state))
end

local function on_insert_leave()
Expand Down