local colors = require("sumi-e.colors") local config = require("sumi-e.config") local sumi = {} local function set_groups() local groups = { Normal = { fg = colors.fg, bg = colors.bg }, NormalFloat = { bg = colors.bg }, String = { fg = colors.string, italic = true }, Comment = { fg = colors.comment, bold = true, italic = true }, } groups = vim.tbl_extend("force", groups, type(config.overrides) == "function" and config.overrides() or config.overrides) for group, parameters in pairs(groups) do vim.api.nvim_set_hl(0, group, parameters) end end --- Apply user settings. ---@param values table function sumi.setup(values) setmetatable(config, { __index = vim.tbl_extend("force", config.defaults, values) }) end --- Set the colorscheme. function sumi.colorscheme() if vim.version().minor < 8 then vim.notify( "Neovim 0.8+ is required for sumi-e colorscheme", vim.log.levels.ERROR, { title = "Sumi-e colorscheme" } ) return end vim.api.nvim_command("hi clear") if vim.fn.exists("syntax_on") then vim.api.nvim_command("syntax reset") end vim.g.VM_theme_set_by_colorscheme = true -- Required for Visual Multi vim.o.termguicolors = true vim.g.colors_name = "sumi-e" colors.generate() set_groups() end return sumi