Files
keycodex/lua/plugins/lang/lspconfig.lua
T
2024-08-13 02:48:13 +05:45

50 lines
1.7 KiB
Lua

local lspconfig = require('lspconfig')
local cmp_lsp = require('cmp_nvim_lsp')
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 lsp_capabilities = cmp_lsp.default_capabilities()
local default_setup = function(server)
lspconfig[server].setup({
capabilities = 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,
},
})