Files
.dotfiles/nvim/.config/nvim/lua/plugins/lsp-zero.lua
2025-01-12 19:54:41 -06:00

63 lines
1.2 KiB
Lua

local lsp_zero = require('lsp-zero')
local cmp = require('cmp')
local cmp_action = lsp_zero.cmp_action()
-- LSP Zero
lsp_zero.on_attach(function(client, bufnr)
lsp_zero.default_keymaps({buffer = bufnr})
end)
lsp_zero.set_sign_icons({
error = '',
warn = '',
hint = '',
info = '»'
})
-- CMP
cmp.setup({
source = {
{ name = 'nvim_lsp' },
{ name = 'buffer' },
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
preselect = 'item',
completion = {
completeopt = 'menu,menuone,noinsert'
},
mapping = {
['<Tab>'] = cmp_action.luasnip_supertab(),
['<S-Tab>'] = cmp_action.luasnip_shift_supertab(),
['<CR>'] = cmp.mapping.confirm({select = true}),
}
})
-- Mason
require('mason').setup({})
require('mason-lspconfig').setup({
ensure_installed = {
'lua_ls',
'ts_ls',
'html',
'cssls',
'jsonls',
'emmet_ls',
},
handlers = {
function(server_name)
require('lspconfig')[server_name].setup({})
end,
},
})
-- Show line diagnostics automatically in hover window
vim.diagnostic.config({
virtual_text = false,
})
vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]