diff options
Diffstat (limited to 'lua/lsp.lua')
-rw-r--r-- | lua/lsp.lua | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/lua/lsp.lua b/lua/lsp.lua index 7d34725..54337eb 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -1,6 +1,38 @@ -local lsp = require("lsp-zero").preset({}) +require("mason").setup() -lsp.on_attach(function(client, b) +require("mason-lspconfig").setup({ + ensure_installed = { "clangd" }, +}) + +local cmp = require("cmp") +cmp.setup({ + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + sources = cmp.config.sources({ + { + name = "nvim_lsp", + entry_filter = function(entry, ctx) + if entry:get_kind() == 15 then -- Snippet + print("OH NO") + return false + end + return true + end, + }, + }), + mapping = cmp.mapping.preset.insert({ + ['<cr>'] = cmp.mapping.confirm({ select = true }), + ['<esc>'] = cmp.mapping.abort(), + }) +}) + +local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() +lsp_capabilities.textDocument.completion.completionItem.snipperSupport = false + +local lsp_on_attach = function(client, b) local nmap = function(keys, func, desc) vim.keymap.set("n", keys, func, { buffer = b, desc = desc }) end @@ -11,22 +43,22 @@ lsp.on_attach(function(client, b) nmap("<leader>fr", require("telescope.builtin").lsp_references, "Find references") nmap("<c-o>", require("telescope.builtin").lsp_document_symbols, "Find document symbols") nmap("<c-h>", vim.lsp.buf.hover, "Signature help") -end) +end -lsp.ensure_installed({ - "clangd", -}) +local lspconfig = require("lspconfig") -require("lspconfig").clangd.setup({ - cmd = { "C:\\Program Files\\LLVM-15\\bin\\clangd.exe" }, +require("mason-lspconfig").setup_handlers({ + function (server_name) + lspconfig[server_name].setup({ + on_attach = lsp_on_attach, + capabilities = lsp_capabilities, + }) + end }) -lsp.setup() - -require("cmp").setup({ - mapping = { - ['<cr>'] = require("cmp").mapping.confirm({ select = true }), - ['<esc>'] = require("cmp").mapping.abort(), - } +lspconfig.clangd.setup({ + on_attach = lsp_on_attach, + capabilities = lsp_capabilities, + cmd = { "C:\\Program Files\\LLVM-15\\bin\\clangd.exe" }, }) |