63 lines
1.2 KiB
Lua
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})]]
|