-- UI and visual plugins
return {
  -- Statusline
  {
    "nvim-lualine/lualine.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    event = "VeryLazy",
    config = function()
      require("configs.lualine")
    end,
  },

  -- Buffer tabs
  {
    "romgrk/barbar.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    event = "VeryLazy",
    config = function()
      require("configs.barbar")
    end,
  },

  -- LSP breadcrumbs in statusline
  {
    "SmiteshP/nvim-navic",
    lazy = true,
    opts = {
      separator = "  ",
      highlight = false,
      depth_limit = 5,
    },
  },

  -- Improved UI for vim.ui.input and vim.ui.select (LSP rename, code actions, etc.)
  {
    "folke/snacks.nvim",
    priority = 1000,
    lazy = false,
    opts = {
      input = {
        enabled = true,
        win = {
          relative = "cursor",
          row = 1,
          col = 0,
        },
      },
      select = {
        enabled = true,
      },
      indent = {
        enabled = true,
        char = "│",
      },
      notifier = {
        enabled = true,
        timeout = 6000,
      },
      quickfile = { enabled = false },
      statuscolumn = { enabled = false },
      words = { enabled = false },
    },
  },
}
