factorizing the lsp setup

This commit is contained in:
aminnairi
2023-12-28 23:20:44 +01:00
parent 67e8f8f45f
commit 50cd291268
+19 -115
View File
@@ -120,124 +120,28 @@ return {
}) })
end end
lspconfig.lua_ls.setup({ local languageServers = {
lua_ls = {},
tsserver = {},
volar = {},
cssls = {},
cssmodules_ls = {},
prismals = {},
yamlls = {},
marksman = {},
eslint = {},
dockerls = {},
rust_analyzer = {},
intelephense = {},
elmls = {}
}
for languageServer, languageServerSettings in pairs(languageServers) do
lspconfig[languageServer].setup({
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_init = function(client) settings = languageServerSettings
local path = client.workspace_folders[1].name
if not vim.loop.fs_stat(path .. '/.luarc.json') and not vim.loop.fs_stat(path .. '/.luarc.jsonc') then
client.config.settings = vim.tbl_deep_extend('force', client.config.settings, {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using
-- (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT'
},
diagnostics = {
globals = {
"vim"
},
},
-- Make the server aware of Neovim runtime files
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME
-- "${3rd}/luv/library"
-- "${3rd}/busted/library",
}
-- or pull in all of 'runtimepath'. NOTE: this is a lot slower
-- library = vim.api.nvim_get_runtime_file("", true)
}
}
}) })
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
end end
return true
end
})
lspconfig.tsserver.setup({
capabilities = capabilities,
on_attach = on_attach,
})
lspconfig.volar.setup({
capabilities = capabilities,
on_attach = on_attach,
filetypes = {
"vue",
},
})
lspconfig.cssls.setup({
capabilities = capabilities,
on_attach = on_attach,
filetypes = {
"css",
"scss",
"sass",
"less",
},
})
lspconfig.cssmodules_ls.setup({
capabilities = capabilities,
on_attach = on_attach,
filetypes = {
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
},
})
lspconfig.prismals.setup({
on_attach = on_attach,
filetypes = {
"prisma",
},
capabilities = capabilities,
})
lspconfig.yamlls.setup({
capabilities = capabilities,
filetypes = {
"yaml",
},
})
lspconfig.marksman.setup({
capabilities = capabilities,
filetypes = {
"markdown",
},
})
lspconfig.eslint.setup({
capabilities = capabilities,
on_attach = on_attach,
})
lspconfig.dockerls.setup({
capabilities = capabilities,
on_attach = on_attach,
})
lspconfig.rust_analyzer.setup({
capabilities = capabilities,
on_attach = on_attach,
})
lspconfig.intelephense.setup({
capabilities = capabilities,
on_attach = on_attach,
})
lspconfig.elmls.setup({
capabilities = capabilities,
on_attach = on_attach,
})
end, end,
} }