mirror of https://github.com/sgoudham/nvim.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
Lua
73 lines
1.8 KiB
Lua
local M = {}
|
|
|
|
local flavours = {"latte", "frappe", "macchiato", "mocha"}
|
|
|
|
local command = vim.api.nvim_create_user_command
|
|
|
|
command("Catppuccin", function(inp)
|
|
if not vim.tbl_contains(flavours, inp.args) then
|
|
local echo = require("catppuccin.utils.echo")
|
|
echo("Invalid flavour", "info")
|
|
return
|
|
end
|
|
vim.g.catppuccin_flavour = inp.args
|
|
vim.cmd "colorscheme catppuccin"
|
|
end, {
|
|
nargs = 1,
|
|
complete = function(line)
|
|
return vim.tbl_filter(function(val)
|
|
return vim.startswith(val, line)
|
|
end, flavours)
|
|
end
|
|
})
|
|
|
|
command("CatppuccinCompile", function()
|
|
require("catppuccin.utils.util").compile()
|
|
end, {})
|
|
|
|
command("CatppuccinClean", function()
|
|
require("catppuccin.utils.util").clean()
|
|
end, {})
|
|
|
|
local function load()
|
|
local catppuccin = require("catppuccin")
|
|
|
|
if catppuccin.before_loading ~= nil then
|
|
catppuccin.before_loading()
|
|
end
|
|
|
|
local config = require("catppuccin.config").options
|
|
if config.compile.enable == true then
|
|
local compiled_path = config.compile.path .. (vim.loop.os_uname().sysname == 'Windows' and "\\" or "/") .. vim.g.catppuccin_flavour .. config.compile.suffix .. ".lua"
|
|
local f = io.open(compiled_path, "r")
|
|
if f ~= nil then
|
|
io.close(f)
|
|
vim.cmd("luafile " .. compiled_path)
|
|
vim.api.nvim_exec_autocmds("User", { pattern = "CatppuccinLoaded" })
|
|
return
|
|
end
|
|
end
|
|
-- colorscheme gets evaluated from mapper.lua
|
|
local theme = require("catppuccin.core.mapper").apply()
|
|
local utils = require("catppuccin.utils.util")
|
|
utils.load(theme)
|
|
|
|
if catppuccin.after_loading ~= nil then
|
|
catppuccin.after_loading()
|
|
end
|
|
|
|
vim.api.nvim_exec_autocmds("User", { pattern = "CatppuccinLoaded" })
|
|
end
|
|
|
|
function M.main(option)
|
|
option = option or "load"
|
|
|
|
if option == "load" then
|
|
load()
|
|
else
|
|
print("catppuccin: option was not recognized")
|
|
end
|
|
end
|
|
|
|
return M
|