return { { "williamboman/mason.nvim", config = function() require("mason").setup() end }, { "williamboman/mason-lspconfig.nvim", dependencies = { "neovim/nvim-lspconfig" }, config = function() require("mason-lspconfig").setup { ensure_installed = { "gopls", "pyright", "clangd", "lua_ls" } } end }, { "neovim/nvim-lspconfig", config = function() local lspconfig = require("lspconfig") local capabilities = require('cmp_nvim_lsp').default_capabilities() lspconfig.gopls.setup {} lspconfig.pyright.setup {} lspconfig.clangd.setup {} lspconfig.lua_ls.setup {} vim.g.rustaceanvim = { server = { cmd = function() local mason_registry = require('mason-registry') if mason_registry.is_installed('rust-analyzer') then local ra = mason_registry.get_package('rust-analyzer') local ra_filename = ra:get_receipt():get().links.bin['rust-analyzer'] return { ('%s/%s'):format(ra:get_install_path(), ra_filename or 'rust-analyzer') } else return { 'rust-analyzer' } end end, }, } end } }