local color = pcode.colorscheme or "gruvbox-baby" local transparent_mode = pcode.transparent_mode or 0 if substring(tostring(color), "sonokai") and true or false then return { "sainnhe/sonokai", priority = 1000, enabled = substring(tostring(color), "sonokai") and true or false, config = function() vim.api.nvim_create_autocmd("ColorScheme", { group = vim.api.nvim_create_augroup("custom_highlights_sonokai", {}), pattern = "sonokai", callback = function() local config = vim.fn["sonokai#get_configuration"]() local palette = vim.fn["sonokai#get_palette"](config.style, config.colors_override) local set_hl = vim.fn["sonokai#highlight"] set_hl("StatusLine", palette.fg, palette.none) set_hl("StatusLineTerm", palette.fg, palette.none) set_hl("StatusLineNC", palette.fg, palette.none) set_hl("StatusLineTermNC", palette.fg, palette.none) set_hl("LualineNormal", palette.fg, palette.none) set_hl("NvimTreeNormal", palette.fg, palette.bg0) set_hl("NvimTreeCursorLine", palette.fg, palette.bg1) set_hl("NvimTreeEndOfBuffer", palette.fg, palette.bg0) set_hl("Pmenu", palette.fg, palette.bg0) set_hl("WhichKeyFloat", palette.fg, palette.bg0) set_hl("WhichKey", palette.fg, palette.bg0) set_hl("WhichKeyBorder", palette.fg, palette.bg0) set_hl("NormalFloat", palette.fg, palette.bg0) set_hl("Normal", palette.fg, palette.bg0) set_hl("NormalNC", palette.fg, palette.bg0) set_hl("FloatBorder", palette.fg, palette.bg0) set_hl("LspInfoNormal", palette.fg, palette.bg0) end, }) vim.g.sonokai_style = extract(color)[2] or "default" vim.g.sonokai_transparent_background = (transparent_mode == 1) and 2 or 0 end, } else return {} end