diff options
Diffstat (limited to 'nvim/.config/nvim/lua/tobyvin/utils.lua')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/utils.lua | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/utils.lua b/nvim/.config/nvim/lua/tobyvin/utils.lua index 45772fb..5f02f9e 100644 --- a/nvim/.config/nvim/lua/tobyvin/utils.lua +++ b/nvim/.config/nvim/lua/tobyvin/utils.lua @@ -1,5 +1,27 @@ -- Lazy load -local M = setmetatable({}, { +local M = {} + +function M.require(mod) + local ok, ret = M.try(require, mod) + return ok and ret +end + +function M.try(fn, ...) + local args = { ... } + + return xpcall(function() + return fn(unpack(args)) + end, function(err) + local lines = {} + table.insert(lines, err) + table.insert(lines, debug.traceback("", 3)) + + M.error(table.concat(lines, "\n")) + return err + end) +end + +setmetatable(M, { __index = function(t, k) local ok, val = pcall(require, string.format("tobyvin.utils.%s", k)) |