Don't repeat yourself in custom lspconfigs
This commit is contained in:
parent
6affd78df7
commit
a365bcb6b5
@ -72,57 +72,48 @@ return {
|
||||
},
|
||||
|
||||
config = function()
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = vim.tbl_deep_extend(
|
||||
'force', capabilities, require('cmp_nvim_lsp').default_capabilities())
|
||||
local lspconfig_default_opts = {
|
||||
-- Broadcast full client capabilities to language servers
|
||||
capabilities = vim.tbl_deep_extend(
|
||||
'force', vim.lsp.protocol.make_client_capabilities(),
|
||||
require('cmp_nvim_lsp').default_capabilities()),
|
||||
}
|
||||
|
||||
local lspconfig_custom_opts = {
|
||||
clangd = {
|
||||
cmd = { 'clangd', '--completion-style=detailed' },
|
||||
},
|
||||
|
||||
lua_ls = {
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
disable = { 'missing-fields', },
|
||||
globals = { 'vim', },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
pyright = {
|
||||
settings = {
|
||||
pyright = {
|
||||
disableOrganizeImports = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
require('mason').setup()
|
||||
require('mason-lspconfig').setup({
|
||||
automatic_installation = false,
|
||||
ensure_installed = ensure_installed,
|
||||
|
||||
handlers = {
|
||||
-- Default handler, sets up everything unless a custom language server
|
||||
-- setup handler is defined below
|
||||
function(server_name)
|
||||
require('lspconfig')[server_name].setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
local opts = vim.tbl_deep_extend("force",
|
||||
lspconfig_default_opts, lspconfig_custom_opts[server_name] or {})
|
||||
require('lspconfig')[server_name].setup(opts)
|
||||
end,
|
||||
|
||||
['clangd'] = function()
|
||||
require('lspconfig').clangd.setup({
|
||||
capabilities = capabilities,
|
||||
cmd = { 'clangd', '--completion-style=detailed' }
|
||||
})
|
||||
end,
|
||||
|
||||
['lua_ls'] = function()
|
||||
require('neodev').setup()
|
||||
require('lspconfig').lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
disable = { 'missing-fields', },
|
||||
globals = { 'vim', },
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
end,
|
||||
|
||||
['pyright'] = function()
|
||||
require('lspconfig').pyright.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
pyright = {
|
||||
disableOrganizeImports = true, -- Use ruff import sorter instead
|
||||
},
|
||||
}
|
||||
})
|
||||
end,
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user