require("nvchad.configs.lspconfig").defaults() local lspconfig = require "lspconfig" local nvlsp = require "nvchad.configs.lspconfig" local servers = { "html", "cssls", "jdtls", "clangd", "gopls", "stylelint_lsp", "jsonls", "svelte", "eslint" } for _, lsp in ipairs(servers) do lspconfig[lsp].setup { on_attach = nvlsp.on_attach, on_init = nvlsp.on_init, capabilities = nvlsp.capabilities, } end lspconfig["tailwindcss"].setup { on_attach = nvlsp.on_attach, on_init = nvlsp.on_init, capabilities = nvlsp.capabilities, settings = { validate = true, filetypes = { "svelte" }, }, } local ymlCapabilities = vim.lsp.protocol.make_client_capabilities() ymlCapabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true, } lspconfig.yamlls.setup { on_attach = nvlsp.on_attach, on_init = nvlsp.on_init, capabilities = ymlCapabilities, settings = { yaml = { schemas = {}, }, }, } lspconfig.vtsls.setup { on_init = nvlsp.on_init, on_attach = nvlsp.on_attach, capabilities = nvlsp.capabilities, filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx", "vue", }, settings = { vtsls = { autoUseWorkspaceTsdk = true, tsserver = { globalPlugins = { { name = "@vue/typescript-plugin", location = vim.fn.stdpath "data" .. "/mason/packages/vue-language-server/node_modules/@vue/language-server", languages = { "vue" }, configNamespace = "typescript", enableForWorkspaceTypeScriptVersions = true, }, }, }, }, typescript = { preferences = { importModuleSpecifier = "non-relative", updateImportsOnFileMove = { enabled = "always", }, suggest = { completeFunctionCalls = true, }, }, }, }, } lspconfig.volar.setup { on_init = nvlsp.on_init, on_attach = nvlsp.on_attach, capabilities = nvlsp.capabilities, settings = { emmet = { showExpandedAbbreviation = "never", }, }, }