From 37e99450cf0ce146be7c4ab863f9827ffd4d4e75 Mon Sep 17 00:00:00 2001 From: Zhong Liu Date: Sun, 26 Jun 2022 15:03:07 +0800 Subject: [PATCH 1/2] new autocmd event `CatppuccinLoaded` --- README.md | 14 ++++++++++++++ lua/catppuccin/main.lua | 2 ++ 2 files changed, 16 insertions(+) diff --git a/README.md b/README.md index e063ed3..284d469 100644 --- a/README.md +++ b/README.md @@ -336,6 +336,20 @@ catppuccin.before_loading = function () end ``` +#### Autocmd + +Instead of `after_loading` hook, you can use autocmd event like this: + +```lua +vim.api.nvim_create_autocmd("User", { + pattern = "CatppuccinLoaded", + callback = function() + local colors = require("catppuccin.api.colors").get_colors() + -- do something with colors + end +}) +``` + ## 💝 Thanks to - [Pocco81](https://github.com/Pocco81) diff --git a/lua/catppuccin/main.lua b/lua/catppuccin/main.lua index 16fc21c..0f96ba7 100644 --- a/lua/catppuccin/main.lua +++ b/lua/catppuccin/main.lua @@ -21,6 +21,8 @@ local function load() if catppuccin.after_loading ~= nil then catppuccin.after_loading() end + + vim.api.nvim_exec_autocmds("User", { pattern = "CatppuccinLoaded" }) end function M.main(option) From 357dc3791184a8f7edeafaddc4cf4e8b801dd9be Mon Sep 17 00:00:00 2001 From: Zhong Liu Date: Sun, 26 Jun 2022 16:06:30 +0800 Subject: [PATCH 2/2] use autocmd event instead of `after_loading` hook --- .../core/integrations/lightspeed.lua | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/lua/catppuccin/core/integrations/lightspeed.lua b/lua/catppuccin/core/integrations/lightspeed.lua index 5baf2ed..4b90a9e 100644 --- a/lua/catppuccin/core/integrations/lightspeed.lua +++ b/lua/catppuccin/core/integrations/lightspeed.lua @@ -13,19 +13,14 @@ end function M.get(cp) if not get_prepared() then - local catppuccin = require("catppuccin") - if catppuccin.after_loading ~= nil then - local callback = catppuccin.after_loading - catppuccin.after_loading = function () - callback() - require'lightspeed'.init_highlight() + set_prepared(vim.api.nvim_create_autocmd("User", { + pattern = "CatppuccinLoaded", + callback = function () + if pcall(require, "lightspeed") then + require("lightspeed").init_highlight() + end end - else - catppuccin.after_loading = function () - require'lightspeed'.init_highlight() - end - end - set_prepared(true) + })) end return {