if not vim.g.fastmode then return {} end

-- nvim --cmd "lua vim.g.fastmode = true"

local enabled = {
  "noice.nvim",
  "MunifTanjim/nui.nvim",
  "folke/noice.nvim",
  "nvim-treesitter-endwise",
  "plenary.nvim",
  "nvim-lua/plenary.nvim",
  "LazyVim/LazyVim",
  "folke/lazy.nvim",
  "folke/snacks.nvim",
  "echasnovski/mini.pairs",
  "folke/ts-comments.nvim",
  "echasnovski/mini.ai",
  "folke/lazydev.nvim",
  "folke/tokyonight.nvim",
  "catppuccin/nvim",
  "akinsho/bufferline.nvim",
  "MagicDuck/grug-far.nvim",
  "folke/which-key.nvim",
  "folke/trouble.nvim",
  "folke/todo-comments.nvim",
  "stevearc/conform.nvim",
  "mason.nvim",
  "mfussenegger/nvim-lint",
  "neovim/nvim-lspconfig",
  "mason-org/mason-lspconfig.nvim",
  "mason-org/mason.nvim",
  "nvim-treesitter/nvim-treesitter",
  "nvim-treesitter/nvim-treesitter-textobjects",
  "windwp/nvim-ts-autotag",
  "nvim-lualine/lualine.nvim",
  "echasnovski/mini.icons",
  "snacks.nvim",
  "folke/persistence.nvim",
  "hrsh7th/nvim-cmp",
  "hrsh7th/cmp-nvim-lsp",
  "hrsh7th/cmp-buffer",
  "hrsh7th/cmp-path",
  "garymjr/nvim-snippets",
  "rafamadriz/friendly-snippets",
  "folke/edgy.nvim",
  "nvim-neo-tree/neo-tree.nvim",
  "ibhagwan/fzf-lua",
  "echasnovski/mini.surround",
  "gbprod/yanky.nvim",
  "smjonas/inc-rename.nvim",
  "echasnovski/mini.diff",
  "mini.diff",
  "echasnovski/mini.move",
  "nvim-treesitter/nvim-treesitter-context",
  "yetone/avante.nvim",
  "stevearc/dressing.nvim",
  "nvim-tree/nvim-web-devicons",
  "HakonHarnes/img-clip.nvim",
  "MeanderingProgrammer/render-markdown.nvim",
  "zbirenbaum/copilot.lua",
  "zbirenbaum/copilot-cmp",
  "gsuuon/model.nvim",
  "hrsh7th/cmp-cmdline",
  "hrsh7th/cmp-nvim-lua",
  "jake-stewart/multicursor.nvim",
  "brianhuster/nvim-treesitter-endwise",
  "Wansmer/sibling-swap.nvim",
  "Wansmer/treesj",
  "luckasRanarison/nvim-devdocs",
  "axieax/urlview.nvim",
  "FabijanZulj/blame.nvim",
  "sindrets/diffview.nvim",
  "akinsho/git-conflict.nvim",
  "NeogitOrg/neogit",
  "ggandor/flit.nvim",
  "ggandor/leap.nvim",
  "tpope/vim-repeat",
  "roobert/search-replace.nvim",
  "b0o/SchemaStore.nvim",
  "suketa/nvim-dap-ruby",
  "olimorris/neotest-rspec",
  "tpope/vim-rails",
  "tpope/vim-bundler",
  "cbochs/grapple.nvim",
  "echasnovski/mini.extra",
  "echasnovski/mini.files",
  "echasnovski/mini.hipatterns",
  "scottmckendry/cyberdream.nvim",
  "OXY2DEV/helpview.nvim",
  "fei6409/log-highlight.nvim",
  "max397574/better-escape.nvim",
  "glacambre/firenvim",
  "lualine.nvim",
  "mikesmithgh/kitty-scrollback.nvim",
  "mrjones2014/smart-splits.nvim",
  -- LazyVim
  "lazyvim.plugins.extras.ai.copilot",
  "lazyvim.plugins.extras.coding.mini-surround",
  "lazyvim.plugins.extras.coding.neogen",
  "lazyvim.plugins.extras.coding.nvim-cmp",
  "lazyvim.plugins.extras.coding.yanky",
  "lazyvim.plugins.extras.dap.core",
  "lazyvim.plugins.extras.editor.dial",
  "lazyvim.plugins.extras.editor.fzf",
  "lazyvim.plugins.extras.editor.inc-rename",
  "lazyvim.plugins.extras.editor.leap",
  "lazyvim.plugins.extras.editor.mini-diff",
  "lazyvim.plugins.extras.editor.mini-files",
  "lazyvim.plugins.extras.editor.mini-move",
  "lazyvim.plugins.extras.editor.neo-tree",
  "lazyvim.plugins.extras.formatting.prettier",
  "lazyvim.plugins.extras.ui.edgy",
  "lazyvim.plugins.extras.ui.treesitter-context",
  "lazyvim.plugins.extras.util.mini-hipatterns",
}

local Config = require("lazy.core.config")
Config.options.checker.enabled = false
Config.options.change_detection.enabled = false
Config.options.defaults.cond = function(plugin)
  return vim.tbl_contains(enabled, plugin.name)
end

local disabled = {
  { import = "lazyvim.plugins.extras.editor.dial", enabled = false },
  { import = "lazyvim.plugins.extras.editor.refactoring", enabled = false },
  { import = "lazyvim.plugins.extras.lang.rust", enabled = false },
  { import = "lazyvim.plugins.extras.lang.toml", enabled = false },
  { import = "lazyvim.plugins.extras.test.core", enabled = false },
  { import = "lazyvim.plugins.extras.util.dot", enabled = false },
  { import = "lazyvim.plugins.extras.util.startuptime", enabled = false },
  { import = "plugins.extras.ai.codecompanion", enabled = false },
  { import = "plugins.extras.coding.annotation", enabled = false },
  { import = "plugins.extras.coding.luapad", enabled = false },
  { import = "plugins.extras.coding.treesitter.puppeteer", enabled = false },
  { import = "plugins.extras.coding.treesitter.various-textobjs", enabled = false },
  { import = "plugins.extras.dap.core-extended", enabled = false },
  { import = "plugins.extras.editor.docs.peek", enabled = false },
  { import = "plugins.extras.editor.git.gitgraph", enabled = false },
  { import = "plugins.extras.editor.package-info", enabled = false },
  { import = "plugins.extras.formatting.prettier-extended", enabled = false },
  { import = "plugins.extras.lang.bash", enabled = false },
  { import = "plugins.extras.lang.docker-extended", enabled = false },
  { import = "plugins.extras.lang.git-extended", enabled = false },
  { import = "plugins.extras.lang.go-extended", enabled = false },
  { import = "plugins.extras.lang.json-extended", enabled = false },
  { import = "plugins.extras.lang.kitty", enabled = false },
  { import = "plugins.extras.lang.lua", enabled = false },
  { import = "plugins.extras.lang.markdown-extended", enabled = false },
  { import = "plugins.extras.lang.pg_format", enabled = false },
  { import = "plugins.extras.lang.python-extended", enabled = false },
  { import = "plugins.extras.lang.rust-extended", enabled = false },
  { import = "plugins.extras.lang.sql-extended", enabled = false },
  { import = "plugins.extras.lang.sqlfluff", enabled = false },
  { import = "plugins.extras.lang.terraform", enabled = false },
  { import = "plugins.extras.lang.tilt", enabled = false },
  { import = "plugins.extras.lang.web.html-css", enabled = false },
  { import = "plugins.extras.lang.web.tailwind-extended", enabled = false },
  { import = "plugins.extras.lang.web.typescript-extended", enabled = false },
  { import = "plugins.extras.lang.xml", enabled = false },
  { import = "plugins.extras.lang.yaml-extended", enabled = false },
  { import = "plugins.extras.linting.eslint-extended", enabled = false },
  { import = "plugins.extras.linting.stylelint", enabled = false },
  { import = "plugins.extras.linting.vale", enabled = false },
  { import = "plugins.extras.lsp.garbage-day", enabled = false },
  { import = "plugins.extras.org.neorg", enabled = false },
  { import = "plugins.extras.test.core-extended", enabled = false },
  { import = "plugins.extras.ui.colorschemes.catppuccin", enabled = false },
  { import = "plugins.extras.ui.colorschemes.cyberdream", enabled = false },
  { import = "plugins.extras.ui.dap-view", enabled = false },
  { import = "plugins.extras.ui.helpview", enabled = false },
  { import = "plugins.extras.ui.log-highlight", enabled = false },
  { import = "plugins.extras.ui.smooth-scrolling", enabled = false },
  { import = "plugins.extras.util.fast", enabled = false },
  { import = "plugins.extras.util.neovide", enabled = false },
}

return {
  -- Add only the plugins from your list here.  Using lazyvim.plugins.extras.* is generally preferred.
  { import = "lazyvim.plugins.extras.coding.mini-surround" },
  { import = "lazyvim.plugins.extras.coding.yanky" },
  { import = "lazyvim.plugins.extras.editor.inc-rename" },
  { import = "lazyvim.plugins.extras.editor.mini-diff" },
  { import = "lazyvim.plugins.extras.editor.mini-move" },
  { import = "lazyvim.plugins.extras.ui.edgy" },
  { import = "lazyvim.plugins.extras.ui.treesitter-context" },
  { import = "plugins.extras.ai.avante" },
  { import = "plugins.extras.ai.copilot" },
  { import = "plugins.extras.ai.model" },
  { import = "plugins.extras.coding.cmp-extended" },
  { import = "plugins.extras.coding.mason-extended" },
  { import = "plugins.extras.coding.multicursor" },
  { import = "plugins.extras.coding.nvim-snippets-extended" },
  { import = "plugins.extras.coding.treesitter.endwise" },
  { import = "plugins.extras.coding.treesitter.sibling-swap" },
  { import = "plugins.extras.coding.treesitter.treesitter-extended" },
  { import = "plugins.extras.coding.treesitter.treesj" },
  { import = "plugins.extras.editor.docs.devdocs" },
  { import = "plugins.extras.editor.fzf-extended" },
  { import = "plugins.extras.editor.git.blame" },
  { import = "plugins.extras.editor.git.diffview" },
  { import = "plugins.extras.editor.git.git-conflict" },
  { import = "plugins.extras.editor.git.neogit" },
  { import = "plugins.extras.editor.leap-extended" },
  { import = "plugins.extras.editor.neo-tree-extended" },
  { import = "plugins.extras.editor.search-replace" },
  { import = "plugins.extras.editor.trouble-extended" },
  { import = "plugins.extras.formatting.trim_newlines" },
  { import = "plugins.extras.lang.ruby-extended" },
  { import = "plugins.extras.lsp.lspconfig-extended" },
  { import = "plugins.extras.marks.grapple" },
  { import = "plugins.extras.mini.mini-ai-extended" },
  { import = "plugins.extras.mini.mini-diff-extended" },
  { import = "plugins.extras.mini.mini-files-extended" },
  { import = "plugins.extras.mini.mini-hipatterns-extended" },
  { import = "plugins.extras.mini.mini-move" },
  { import = "plugins.extras.mini.mini-pairs-extended" },
  { import = "plugins.extras.mini.mini-surround-extended" },
  { import = "plugins.extras.ui.bufferline-extended" },
  { import = "plugins.extras.ui.edgy-extended" },
  { import = "plugins.extras.ui.lualine-extended" },
  { import = "plugins.extras.ui.noice-extended" },
  { import = "plugins.extras.ui.snacks-extended" },
  { import = "plugins.extras.ui.which-key-extended" },
  { import = "plugins.extras.util.better-escape" },
  { import = "plugins.extras.util.firenvim" },
  { import = "plugins.extras.util.kitty-scrollback" },
  { import = "plugins.extras.util.persistence-extended" },
  { import = "plugins.extras.util.smart-splits" },
  unpack(disabled),
}
