return {
	-- lsp package manager
	"mason-org/mason.nvim",
	dependencies = {
		"mason-org/mason-lspconfig.nvim",
	},
	config = function()
		-- import mason
		local mason = require("mason")

		-- import mason-lspconfig
		local mason_lspconfig = require("mason-lspconfig")

		-- enable mason and configure icons
		mason.setup({
			ui = {
				icons = {
					package_installed = "✔",
					package_pending = "➜",
					package_uninstalled = "✗",
				},
			},
		})

		-- list of servers for mason to install
		mason_lspconfig.setup({
			ensure_installed = {
				"asm_lsp",
				"bashls",
				"clangd",
				"cssls",
				"docker_language_server",
				"gh_actions_ls",
				"gopls",
				"html",
				"hls",
				"hyprls",
				"intelephense",
				"jdtls",
				"jsonls",
				"marksman",
				"lua_ls",
                "postgres_lsp",
				"pyright",
				"rust_analyzer",
				"ruby_lsp",
				"verible",
				"vtsls",
				"vue_ls",
                "yamlls"
			},
			-- auto-install configured servers (with lspconfig)
			automatic_enable = false,
		})
	end,
}
