local lsp = require("lsp-zero") local lspconfig = require("lspconfig") lsp.on_attach(function(client, bufnr) lsp.default_keymaps({buffer = bufnr}) vim.keymap.set('n', 'K', function() vim.lsp.buf.hover() end) end) local cmp = require('cmp') cmp.setup({ sources = { {name = 'nvim_lsp'}, {name = 'nvim_lua'} }, mapping = { [''] = cmp.mapping.confirm({select = false}), [''] = cmp.mapping.confirm({select = false}), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), }, snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end, }, }) require('mason').setup({}) require('mason-lspconfig').setup({ ensure_installed = { "rust_analyzer"}, handlers = { function(server_name) lspconfig[server_name].setup({}) end } }) lspconfig.gleam.setup({ cmd = { "gleam", "lsp" }, filetypes = { "gleam" }, root_dir = lspconfig.util.root_pattern("gleam.toml", ".git"), })