47 lines
1.6 KiB
Lua
47 lines
1.6 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 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({
|
|
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,
|
|
},
|
|
})
|