From d15112bc7d99bdbfb053534825307dd5ab029a44 Mon Sep 17 00:00:00 2001 From: jc <46619361+juancwu@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:05:33 -0500 Subject: [PATCH] make metatable in config init.lua --- nvim/init.lua | 4 +++- nvim/lua/juancwu/config/init.lua | 26 ++++++++++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/nvim/init.lua b/nvim/init.lua index 574f757..0c38c0e 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -12,5 +12,7 @@ end vim.opt.rtp:prepend(lazypath) require("juancwu.config").setup({ - colorscheme = "tokyonight", + colorscheme = function() + require("tokyonight").load() + end, }) diff --git a/nvim/lua/juancwu/config/init.lua b/nvim/lua/juancwu/config/init.lua index ccf06d2..0e2fef8 100644 --- a/nvim/lua/juancwu/config/init.lua +++ b/nvim/lua/juancwu/config/init.lua @@ -1,4 +1,4 @@ ----@class Config +---@class Config: ConfigOptions local M = {} ---@class ConfigOptions @@ -34,16 +34,30 @@ function M.setup(opts) -- try to load colorscheme xpcall(function() - if type(options.colorscheme) == "function" then - options.colorscheme() + if type(M.colorscheme) == "function" then + M.colorscheme() else - vim.cmd.colorscheme(options.colorscheme) + vim.cmd.colorscheme(M.colorscheme) end end, function(err) - local msg = "Failed to load colorscheme " .. options.colorscheme .. "\n\n" .. err - print(msg) + if type(M.colorscheme) == "string" then + local msg = "Failed to load colorscheme " .. M.colorscheme .. "\n\n" .. err + print(msg) + else + print("Failed to load colorscheme\n\n" .. err) + end vim.cmd.colorscheme("rose-pine") end) end +setmetatable(M, { + __index = function(_, k) + if options == nil then + return vim.deepcopy(defaultOpts)[k] + end + + return options[k] + end +}) + return M