Files
keycodex/lua/plugins/lang/lspconfig.lua
T
2025-06-02 15:43:05 +05:45

56 lines
1.7 KiB
Lua

local lspconfig = require('lspconfig')
local icons = require('lib.icons').diagnostics
local auto_install = require('lib.util').get_user_config('auto_install', true)
local installed_servers = {}
if auto_install then
installed_servers = require('plugins.list').lsp_servers
end
local capabilities = require('blink.cmp').get_lsp_capabilities()
local default_setup = function(server)
if server == 'tailwindcss' then
lspconfig[server].setup({
capabilities = capabilities,
filetypes = {
'html', 'css', 'scss', 'javascript', 'javascriptreact',
'typescript', 'typescriptreact', 'vue', 'svelte'
},
init_options = {
userLanguages = {
['javascript'] = 'javascript',
['javascriptreact'] = 'javascript',
['typescript'] = 'typescript',
['typescriptreact'] = 'typescript',
},
},
})
else
lspconfig[server].setup({
capabilities = capabilities,
})
end
end
require('mason-lspconfig').setup({
ensure_installed = installed_servers,
handlers = { default_setup },
})
local signs = { Error = icons.Error, Warn = icons.Warning, Hint = icons.Hint, Info = icons.Information }
vim.diagnostic.config({
underline = true,
update_in_insert = true,
severity_sort = true,
virtual_text = true,
float = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = signs.Error,
[vim.diagnostic.severity.WARN] = signs.Warn,
[vim.diagnostic.severity.INFO] = signs.Info,
[vim.diagnostic.severity.HINT] = signs.Hint,
},
},
})