From 288bbd18adcfe1448c3252a54ffba4e6c45d0a2a Mon Sep 17 00:00:00 2001 From: nullchilly Date: Thu, 14 Jul 2022 00:46:00 +0700 Subject: [PATCH] fix(command): after_loading hook --- lua/catppuccin/init.lua | 29 +++++++++++++++++++++++ lua/catppuccin/main.lua | 52 +++++++++++------------------------------ 2 files changed, 43 insertions(+), 38 deletions(-) diff --git a/lua/catppuccin/init.lua b/lua/catppuccin/init.lua index bcc7c93..32b01e7 100644 --- a/lua/catppuccin/init.lua +++ b/lua/catppuccin/init.lua @@ -8,4 +8,33 @@ function M.setup(custom_opts) require("catppuccin.config").set_options(custom_opts) end +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, {}) + return M diff --git a/lua/catppuccin/main.lua b/lua/catppuccin/main.lua index 55d7cc5..4ae7c61 100644 --- a/lua/catppuccin/main.lua +++ b/lua/catppuccin/main.lua @@ -1,34 +1,5 @@ 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") @@ -36,24 +7,29 @@ local function load() catppuccin.before_loading() end + local loaded = nil 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 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 + loaded = true 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() + if not loaded then -- 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 end vim.api.nvim_exec_autocmds("User", { pattern = "CatppuccinLoaded" })