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 = "✗",
                },
            },
        })

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