From ecce5c3f76c6e15baf69e476502ff7908bc964de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20SALVI?= Date: Wed, 3 Jan 2024 00:44:27 +0100 Subject: [PATCH] Add autopairs to nvim-cmp --- lua/config/lsp/lsp-attach.lua | 6 +++--- lua/config/nvim-autopairs.lua | 3 ++- lua/config/nvim-cmp.lua | 31 ++++++++++++++++++++++++++++--- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/lua/config/lsp/lsp-attach.lua b/lua/config/lsp/lsp-attach.lua index 6040730..64f7db9 100644 --- a/lua/config/lsp/lsp-attach.lua +++ b/lua/config/lsp/lsp-attach.lua @@ -2,8 +2,8 @@ return function() local km = vim.keymap.set local opts = {} - opts.desc = "show documentation under cursor" - km("n", "lK", vim.lsp.buf.hover, opts) + opts.desc = "show help documentation under cursor" + km("n", "lh", vim.lsp.buf.hover, opts) opts.desc = "show LSP References" km("n", "lR", ":Telescope lsp_references", opts) @@ -24,7 +24,7 @@ return function() km({ "n", "v" }, "lc", vim.lsp.buf.code_action, opts) opts.desc = "Smart rename" - km("n", "ln", vim.lsp.buf.rename, opts) + km("n", "lr", vim.lsp.buf.rename, opts) opts.desc = "Show buffer diagnostics" km("n", "lE", ":Telescope diagnostics bufnr=0", opts) diff --git a/lua/config/nvim-autopairs.lua b/lua/config/nvim-autopairs.lua index 5ac8091..bd5c42b 100644 --- a/lua/config/nvim-autopairs.lua +++ b/lua/config/nvim-autopairs.lua @@ -1,7 +1,8 @@ --- Ensure plugin is avaiable local ok, nvimautopairs = pcall(require, "nvim-autopairs") + if not ok then - return + return end --- Load plugin diff --git a/lua/config/nvim-cmp.lua b/lua/config/nvim-cmp.lua index cc8555c..2566948 100644 --- a/lua/config/nvim-cmp.lua +++ b/lua/config/nvim-cmp.lua @@ -1,6 +1,10 @@ --- Ensure plugins are installed -local ok, cmp, luasnip, lspkind = pcall(function() - return require("cmp"), require("luasnip"), require("lspkind") +local ok, cmp, luasnip, luasnip_from_vscode, lspkind, cmp_autopairs = pcall(function() + return require("cmp"), + require("luasnip"), + require("luasnip.loaders.from_vscode"), + require("lspkind"), + require("nvim-autopairs.completion.cmp") end) if not ok then @@ -8,8 +12,9 @@ if not ok then end --- loads vscode style snippets from installed plugins (e.g. friendly-snippets) -require("luasnip.loaders.from_vscode").lazy_load() +luasnip_from_vscode.lazy_load() +--- Plugin options local opts = { completion = { completeopt = "menu,menuone,preview,noselect", @@ -40,4 +45,24 @@ local opts = { }, } +--- Load plugin cmp.setup(opts) + +--- Add autopairs + +cmp.event:on( + "confirm_done", + cmp_autopairs.on_confirm_done({ + filetypes = { + -- "*" is a alias to all filetypes + ["*"] = { + ["("] = { + kind = { + cmp.lsp.CompletionItemKind.Function, + cmp.lsp.CompletionItemKind.Method, + }, + }, + }, + }, + }) +)