-- You can use this file to reproduce an issue with your configuration.

---@module "yazi"
---@module "lazy"

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.uv.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    lazypath,
  })
end
vim.opt.runtimepath:prepend(lazypath)
vim.g.mapleader = " "

-- install the following plugins
---@type LazySpec
local plugins = {
  { "catppuccin/nvim", name = "catppuccin", opts = { flavour = "macchiato" } },
  {
    "mikavilpas/yazi.nvim",
    event = "VeryLazy",
    dependencies = {
      {
        -- https://github.com/folke/snacks.nvim
        "folke/snacks.nvim",
        lazy = false,
        priority = 1000,
        opts = {},
      },
    },
    keys = {
      {
        "<leader>-",
        "<cmd>Yazi<cr>",
        desc = "Open yazi at the current file",
      },
      {
        -- Open in the current working directory
        "<leader>cw",
        "<cmd>Yazi cwd<cr>",
        desc = "Open the file manager in nvim's working directory",
      },
      {
        "<c-up>",
        "<cmd>Yazi toggle<cr>",
        desc = "Resume the last yazi session",
      },
    },
    ---@type YaziConfig | {}
    opts = {
      open_for_directories = false,
      log_level = vim.log.levels.DEBUG,
    },
  },
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
  install = { colorscheme = { "catppuccin" } },
})

vim.cmd.colorscheme("catppuccin")
-- add anything else here
