nvim/after/plugin/lsp.lua

43 lines
974 B
Lua
Raw Normal View History

2024-06-12 10:10:49 +02:00
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 = {
['<TAB>'] = cmp.mapping.confirm({select = false}),
['<CR>'] = cmp.mapping.confirm({select = false}),
['<C-Space>'] = cmp.mapping.complete(),
['<Esc>'] = 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"),
})