diff --git a/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua b/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua index 3cc6a1d..d851779 100644 --- a/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua +++ b/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua @@ -120,124 +120,28 @@ return { }) end - lspconfig.lua_ls.setup({ - capabilities = capabilities, - on_attach = on_attach, - on_init = function(client) - 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) - } - } - }) + local languageServers = { + lua_ls = {}, + tsserver = {}, + volar = {}, + cssls = {}, + cssmodules_ls = {}, + prismals = {}, + yamlls = {}, + marksman = {}, + eslint = {}, + dockerls = {}, + rust_analyzer = {}, + intelephense = {}, + elmls = {} + } - client.notify("workspace/didChangeConfiguration", { settings = client.config.settings }) - 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, - }) + for languageServer, languageServerSettings in pairs(languageServers) do + lspconfig[languageServer].setup({ + capabilities = capabilities, + on_attach = on_attach, + settings = languageServerSettings + }) + end end, }