Files
nvim.config/lua/configs/lspconfig.lua

96 lines
2.1 KiB
Lua

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", "lemminx" }
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",
},
},
}