aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config/nvim/lua/tobyvin/utils.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config/nvim/lua/tobyvin/utils.lua')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils.lua24
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))