return {
  'williamboman/mason.nvim',
  dependencies = {
    'williamboman/mason-lspconfig.nvim',
    'WhoIsSethDaniel/mason-tool-installer.nvim',
  },
  config = function()
    require('mason').setup({
      ui = { border = 'rounded' },
    })

    require('mason-lspconfig').setup({
      automatic_enable = true,
    })

    require('mason-tool-installer').setup({
      ensure_installed = {
        -- lua scripting
        'stylua', -- lua formatter
        'lua_ls',

        -- vimrc editing
        'vimls',

        -- editorconfig stuff
        'editorconfig-checker',

        -- system administration's related stuff
        'ansiblels',
        'yamllint',
        'systemdlint',
        -- 'nginx_language_server',
        'dockerls',
        'docker_compose_language_service',

        -- shell scripting
        'shellcheck',
        'bashls',
        'beautysh',

        -- python
        'python-lsp-server',
        'pylint',
        'autopep8',
        'mypy',
        'isort',

        -- c/c++
        'clangd',
        'clang-format',
        'cmakelang',
        'cmakelint',
        'checkmake',

        -- latex
        'texlab',
        'latexindent',

        -- web development
        'html',
        'cssls',
        'stylelint',
        'eslint',
        'standardjs',
        'jsonlint',

        -- databases
        'sqlfluff',

        -- misc
        'jinja_lsp',
      },
    })
  end,
}
