dotfiles/.config/nvim/after/plugin/lsp.lua

40 lines
1,008 B
Lua

require('mason').setup({
ui = {
border = 'rounded'
}
})
-- Install language servers
require('mason-lspconfig').setup {
ensure_installed = {
'lua_ls', 'clangd', 'pylsp', 'yamlls'
}
}
local lsp = require('lsp-zero').preset({})
lsp.on_attach(function(client, bufnr)
lsp.default_keymaps({buffer = bufnr})
end)
-- (Optional) Configure lua language server for neovim
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
lsp.setup()
local cmp = require('cmp')
local cmp_action= require('lsp-zero').cmp_action()
-- configure auto complete key
cmp.setup({
mapping = {
['<Tab>'] = cmp_action.tab_complete(),
['<S-Tab>'] = cmp_action.select_prev_or_fallback(),
['<C-e>'] = cmp.mapping.abort(),
['<C-space>'] = cmp.mapping.complete(),
['<C-j>'] = cmp.mapping.scroll_docs(1),
['<C-k>'] = cmp.mapping.scroll_docs(-1),
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
})