42 lines
974 B
Lua
42 lines
974 B
Lua
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"),
|
|
})
|