-- You can easily change to a different colorscheme.
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.

-- Cмена тем тут сделана уёбищно
-- Чтоб сменить стандартную тему, надо раскомментировать vim.cmd.colorscheme пад именем темы
-- и закомментировать это же у прошлой темы

-- В lazy.nvim параметр priority определяет порядок загрузки плагинов. 
-- Чем выше значение priority, тем раньше загружается плагин. 
-- Это особенно важно для тем, поскольку они часто требуют загрузки до других плагинов, 
-- чтобы корректно применить стили.

-- https://dotfyle.com/neovim/colorscheme/top

-- Убедитесь, что Sonokai установлен через lazy.nvim или другой менеджер
local variants = { 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso' }

-- Создаем псевдонимы для каждой темы
for _, variant in ipairs(variants) do
  local alias = "sonokai-" .. variant
  vim.api.nvim_create_user_command("Colorscheme" .. variant, function()
    vim.g.sonokai_style = variant
    vim.cmd("colorscheme sonokai")
  end, {})

  -- Регистрируем в Neovim как отдельный colorscheme
  vim.api.nvim_set_hl(0, alias, {})
  vim.cmd(string.format("autocmd ColorSchemePre %s let g:sonokai_style = '%s' | colorscheme sonokai", alias, variant))
end


return {
    {
        'folke/tokyonight.nvim',
        priority = 1000,
        init = function()
            -- 'tokyonight-storm', 'tokyonight-moon', 'tokyonight-day', 'tokyonight-night'
            -- vim.cmd.colorscheme 'tokyonight-night'
            vim.cmd.hi 'Comment gui=none' -- Убрать курсив у коммента в коде
        end,
    },
    {
        'rose-pine/neovim',
        name = 'rose-pine',
        priority = 1000,
        init = function()
            -- 'rose-pine-moon', 'rose-pine-main', 'rose-pine-dawn'
            -- vim.cmd.colorscheme 'rose-pine-main'
        end,
    },
    {
        'loctvl842/monokai-pro.nvim',
        priority = 1000,
        config = function()
            -- 'monokai-pro', 'monokai-pro-classic', 'monokai-pro-default', 'monokai-pro-machine',
            -- 'monokai-pro-octagon', 'monokai-pro-spectrum', 'monokai-pro-ristretto'
            -- vim.cmd.colorscheme 'monokai-pro'
        end,
    },
    {
        'catppuccin/nvim',
        name = 'catppuccin',
        priority = 1000,
        config = function()
            -- 'catppuccin', 'catppuccin-latte', 'catppuccin-frappe', 
            -- 'catppuccin-macchiato', 'catppuccin-mocha'
            -- vim.cmd.colorscheme 'catppuccin'
        end,
    },
    {
        'rebelot/kanagawa.nvim',
        priority = 1000,
        config = function()
            -- 'kanagawa-wave', 'kanagawa-dragon', 'kanagawa-lotus', 
            -- vim.cmd.colorscheme 'kanagawa-dragon'
        end,
    },
    {
        "EdenEast/nightfox.nvim",
        priority = 1000,
        config = function()
            -- 'nightfox', 'dayfox', 'dawnfox', 'duskfox'
            -- 'nordfox', 'terafox', 'carbonfox'
            -- vim.cmd.colorscheme 'carbonfox'
        end,
    },
    {
        'AlexvZyl/nordic.nvim',
        priority = 1000,
        config = function()
            -- vim.cmd.colorscheme 'nordic'
        end,
    },

    ----------------------------------------------------------
    -- Гандоны не дают выбрать тему нормально               --
    -- Приходится конфиг переписывать ради выбора расцветок --
    ----------------------------------------------------------
    {
        'sainnhe/gruvbox-material',
        priority = 1000,
        init = function()
            -- 'hard', 'medium', 'soft'
            vim.g.gruvbox_material_background = 'medium'
            -- 'material', 'mix', 'original'
            vim.g.gruvbox_material_foreground = 'mix'
            -- 'grey', 'colored', 'highlighted'
            vim.g.gruvbox_material_diagnostic_virtual_text = 'colored'
            vim.g.gruvbox_material_better_performance = 1
            vim.g.gruvbox_material_diagnostic_line_highlight = 1
            vim.g.gruvbox_material_diagnostic_text_highlight = 1
            -- vim.g.gruvbox_material_enable_italic = true
            vim.cmd.colorscheme 'gruvbox-material'
        end,
    },
    {
        'sainnhe/everforest',
        priority = 1000,
        init = function()
            -- 'hard', 'medium', 'soft'
            vim.g.everforest_background = 'hard'
            vim.g.everforest_better_performance = 1
            -- vim.g.everforest_enable_italic = true
            -- vim.cmd.colorscheme 'everforest'
        end,
    },
    {
        'sainnhe/sonokai',
        priority = 1000,
        init = function()
            -- Очень разные темы
            -- 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso'
            vim.g.sonokai_style = 'shusia'
            vim.g.sonokai_better_performance = 1
            -- vim.g.sonokai_enable_italic = true
            -- vim.cmd.colorscheme 'sonokai'
        end,
    },
    {
        'sainnhe/edge',
        priority = 1000,
        init = function()
            -- 'default', 'aura', 'neon'
            vim.g.edge_style = 'default'
            vim.g.edge_better_performance = 1
            -- vim.g.edge_enable_italic = true
            -- vim.cmd.colorscheme 'edge'
        end,
    },
}