return {
  'jose-elias-alvarez/null-ls.nvim',
  ft = { 'lua', 'rust', 'zsh', 'toml', 'sh', 'bash', 'make', 'python' },
  config = function()
    local nulls = require 'null-ls'
    local fmt = nulls.builtins.formatting
    local dgn = nulls.builtins.diagnostics
    local cda = nulls.builtins.code_actions
    nulls.setup {
      sources = {
        -- # FORMATTING #
        fmt.trim_whitespace.with {
          filetypes = { 'sh', 'zsh', 'yaml', 'toml', 'make', 'conf' },
        },
        fmt.shfmt.with { filetypes = { 'sh', 'bash', 'zsh' } },
        fmt.stylua,
        fmt.jq,
        fmt.isort,
        fmt.black,
        -- # DIAGNOSTICS #
        dgn.shellcheck,
        dgn.zsh,
        dgn.luacheck,
        dgn.mypy,
        dgn.ruff,
        -- # CODE ACTIONS #
        cda.gitsigns.with {
          condition = function(util)
            return util.root_has_file { '.git' }
          end,
        },
        cda.shellcheck,
        cda.gitrebase,
      },
      on_attach = function(client, bufnr)
        if client.supports_method 'textDocument/formatting' then
          vim.api.nvim_create_augroup('LspFormatting', { clear = true })
          vim.api.nvim_create_autocmd('BufWritePre', {
            group = 'LspFormatting',
            buffer = bufnr,
            callback = function()
              vim.lsp.buf.format {
                bufnr = bufnr,
                filter = function()
                  return client.name == 'null-ls'
                end,
              }
            end,
          })
        end
      end,
    }
  end,
}
