1
0

Make autocompletion toggleable

This commit is contained in:
Patrick Auernig 2025-04-13 20:18:30 +02:00
parent c7b1bc4648
commit 31033ddc21

View File

@ -1,3 +1,5 @@
local keymap = vim.keymap.set
local spec = { local spec = {
"hrsh7th/nvim-cmp", "hrsh7th/nvim-cmp",
} }
@ -9,6 +11,21 @@ spec.dependencies = {
"L3MON4D3/LuaSnip", -- just here so snippets returned from LSP servers don't throw errors "L3MON4D3/LuaSnip", -- just here so snippets returned from LSP servers don't throw errors
} }
local function autocompletion_enabled()
local cmp = require("cmp")
local trigger_event = cmp.TriggerEvent.TextChanged
return vim.tbl_contains(cmp.get_config().completion.autocomplete or {}, trigger_event)
end
local function toggle_autocompletion()
local cmp = require("cmp")
if autocompletion_enabled() then
cmp.get_config().completion.autocomplete = false
else
cmp.get_config().completion.autocomplete = { cmp.TriggerEvent.TextChanged }
end
end
spec.config = function() spec.config = function()
local cmp = require("cmp") local cmp = require("cmp")
local lspk = require("lspkind") local lspk = require("lspkind")
@ -16,7 +33,7 @@ spec.config = function()
local cmp_select = { behavior = cmp.SelectBehavior.Select } local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({ cmp.setup({
-- Only trigger completion explicitly through keymapping -- Only trigger completion explicitly through keymapping, or when toggled
completion = { completion = {
autocomplete = false autocomplete = false
}, },
@ -45,6 +62,8 @@ spec.config = function()
{ name = "path" }, { name = "path" },
}) })
}) })
keymap("n", "<Leader>cc", toggle_autocompletion, { desc = "Toggle autocompletion" })
end end