Dotfiles/vim/theme/cyberqueer.nvim/lua/cyberdream/init.lua

66 lines
2.1 KiB
Lua

local theme = require("cyberdream.theme")
local config = require("cyberdream.config")
local util = require("cyberdream.util")
local M = {}
---@param variant? string
function M.load(variant)
if config.options.cache then
require("cyberdream.cache").load()
return
end
util.load(theme.setup(variant))
end
M.setup = config.setup
M.colorscheme = M.load
vim.api.nvim_create_user_command("CyberdreamToggleMode", function()
local new_variant = util.toggle_theme_variant()
util.toggle_lualine_theme()
vim.api.nvim_exec_autocmds("User", { pattern = "CyberdreamToggleMode", data = new_variant })
end, {})
vim.api.nvim_create_user_command("CyberdreamBuildCache", function()
require("cyberdream.cache").build(theme.setup())
end, {})
vim.api.nvim_create_user_command("CyberdreamClearCache", function()
require("cyberdream.cache").clear()
end, {})
-- autocmd runs togle_lualine_theme when background option is changed. checks if the colorscheme is 'cyberdream' and the variant is 'auto' before executing.
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "background",
callback = function()
if vim.g.cyberdream_opts.variant ~= "auto" or vim.fn.execute("colorscheme"):find("cyberdream") == nil then
return
end
util.toggle_lualine_theme()
end,
})
-- the following autocmd checks for lazy.nvim config files containing the string 'cyberdream' and rebuilds the theme's cache file (if enabled) when the file is saved.
-- useful for making changes to the themes config file without having to manually rebuild the cache or turn off the cache option.
vim.api.nvim_create_autocmd("User", {
pattern = "LazyReload",
callback = function(data)
if not config.options.cache then
return
end
local bufnr = data.buf
local bufcontent = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
for _, line in ipairs(bufcontent) do
if line:find("cyberdream") then
require("cyberdream.cache").build(theme.setup())
return
end
end
end,
})
return M