return { { "williamboman/mason.nvim", dependencies = { "williamboman/mason-lspconfig.nvim" }, keys = { { "m", ":Mason ", desc = "open mason" }, }, config = true, }, { "williamboman/mason-lspconfig.nvim", opts = { -- Replace the language servers listed here -- with the ones you want to install ensure_installed = { "lua_ls", "clangd", "hyprls", "lua_ls" }, handlers = { function(server_name) require("lspconfig")[server_name].setup({ }) end, ["lua_ls"] = function() require 'lspconfig'.lua_ls.setup { on_init = function(client) local path = client.workspace_folders[1].name if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then return end client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, { runtime = { -- Tell the language server which version of Lua you're using -- (most likely LuaJIT in the case of Neovim) version = 'LuaJIT' }, -- Make the server aware of Neovim runtime files workspace = { checkThirdParty = false, library = { vim.env.VIMRUNTIME -- Depending on the usage, you might want to add additional paths here. -- "${3rd}/luv/library" -- "${3rd}/busted/library", } -- or pull in all of 'runtimepath'. NOTE: this is a lot slower -- library = vim.api.nvim_get_runtime_file("", true) } }) end, settings = { Lua = {} } } end }, }, }, { "frostplexx/mason-bridge.nvim", }, }