[NeoVim] Better LSP management
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user