[NeoVim] Better LSP management

This commit is contained in:
2022-08-22 16:01:07 +02:00
committed by Pierre Jeanjean
parent 6b396ba033
commit ae6dfbff95
4 changed files with 36 additions and 33 deletions

View File

@@ -1,7 +1,5 @@
local servers = { 'pyright', 'sumneko_lua', 'eslint', 'tsserver', 'ltex' }
local ltex = require('lspconfig.ltex')
-- Mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap=true, silent=true }
@@ -41,10 +39,8 @@ require("mason-lspconfig").setup({
ensure_installed = servers
})
-- Use a loop to conveniently call 'setup' on multiple servers and
-- map buffer local keybindings when the language server attaches
for _, lsp in pairs(servers) do
require('lspconfig')[lsp].setup {
local lsp_opts = {
on_attach = on_attach,
capabilities = capabilities,
flags = {
@@ -52,30 +48,14 @@ for _, lsp in pairs(servers) do
debounce_text_changes = 150,
}
}
local status, config = pcall(require, 'lspconfig.' .. lsp)
if status then
config.setup(lsp_opts)
else
require('lspconfig')[lsp].setup(lsp_opts)
end
end
require('lspconfig')['ltex'].setup {
on_attach = function(client)
on_attach(client)
ltex.on_attach()
end,
capabilities = capabilities,
flags = {
-- This will be the default in neovim 0.7+
debounce_text_changes = 150,
},
settings = {
ltex = {
dictionary = {},
disabledRules = {},
hiddenFalsePositives = {},
additionalRules = {
enablePickyRules = true,
},
},
},
}
-- luasnip setup
local luasnip = require 'luasnip'
require('luasnip.loaders.from_vscode').lazy_load()