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 default_setup = function(server) lspconfig[server].setup({ capabilities = require('blink.cmp').get_lsp_capabilities() }) end local signs = { Error = icons.Error, Warn = icons.Warning, Hint = icons.Hint, Info = icons.Information } for type, icon in pairs(signs) do local hl = 'DiagnosticSign' .. type vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) end require('mason-lspconfig').setup({ ensure_installed = installed_servers, handlers = { default_setup, lua_ls = function() lspconfig.lua_ls.setup({ capabilities = lsp_capabilities, settings = { Lua = { runtime = { version = 'LuaJIT' }, diagnostics = { globals = { 'vim' } }, workspace = { library = { vim.env.VIMRUNTIME } }, format = { enable = true, defaultConfig = { align_continuous_assign_statement = false, align_continuous_rect_table_field = false, align_array_table = false, }, }, }, }, }) end, }, })