diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua index 5397205..ec99187 100644 --- a/nvim/lua/config/options.lua +++ b/nvim/lua/config/options.lua @@ -5,6 +5,6 @@ vim.opt.laststatus = 3 vim.g.maplocalleader = "," vim.diagnostic.config({ virtual_text = true }) -vim.opt.completeopt = { "menuone", "noselect", "popup" } +vim.opt.completeopt = { "menu", "menuone", "noinsert", "noselect", "popup" } vim.opt.scrolloff = 20 diff --git a/nvim/lua/plugins/lsp.lua b/nvim/lua/plugins/lsp.lua index dfbdd02..08f00d2 100644 --- a/nvim/lua/plugins/lsp.lua +++ b/nvim/lua/plugins/lsp.lua @@ -71,6 +71,22 @@ vim.api.nvim_create_autocmd("LspAttach", { local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) if client:supports_method("textDocument/completion") then + client.server_capabilities.completionProvider.triggerCharacters = vim.tbl_keys( + vim.tbl_extend( + "force", + vim.iter(client.server_capabilities.completionProvider.triggerCharacters or {}):fold({}, function(chars, char) + chars[char] = true + return chars + end), + vim + .iter(vim.split("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.:-", "")) + :fold({}, function(chars, char) + chars[char] = true + return chars + end) + ) + ) + vim.lsp.completion.enable(true, client.id, args.buf, { autotrigger = true }) end @@ -183,6 +199,7 @@ vim.api.nvim_create_autocmd({ "LspAttach", "BufEnter" }, { end) end, }) + vim.keymap.set("i", "", function() if vim.fn.pumvisible() == 1 then vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("", true, false, true), "n", false) diff --git a/nvim/lua/plugins/plugins.lua b/nvim/lua/plugins/plugins.lua index aabf01d..37c0d07 100644 --- a/nvim/lua/plugins/plugins.lua +++ b/nvim/lua/plugins/plugins.lua @@ -90,6 +90,14 @@ return { -- indent = { enabled = false }, }, }, + { + "folke/noice.nvim", + opts = { + popupmenu = { + enabled = false, + }, + }, + }, { "folke/zen-mode.nvim", keys = {