summaryrefslogtreecommitdiff
path: root/lua/telescope/utils.lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2020-09-04 09:49:10 -0400
committerTJ DeVries <devries.timothyj@gmail.com>2020-09-04 09:49:10 -0400
commit14310ee6b1f40425ba854d6ddc6374960fdf81ca (patch)
treec6ea9c7a2acb62f853e91b4d1544b899a8af9f3e /lua/telescope/utils.lua
parent996f69465ed51856aa18093d88795fae2b8565f4 (diff)
fix: Don't push past midnight. You'll make clason's stuff break :/
Diffstat (limited to 'lua/telescope/utils.lua')
-rw-r--r--lua/telescope/utils.lua26
1 files changed, 25 insertions, 1 deletions
diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua
index b95f626..6154889 100644
--- a/lua/telescope/utils.lua
+++ b/lua/telescope/utils.lua
@@ -31,7 +31,7 @@ utils.reversed_ipairs = function(t)
return reversedipairsiter, t, #t + 1
end
-utils.default_table_mt = {
+utils.default_table_mt = {
__index = function(t, k)
local obj = {}
rawset(t, k, obj)
@@ -114,4 +114,28 @@ utils.path_shorten = (function()
end
end)()
+-- local x = utils.make_default_callable(function(opts)
+-- return function()
+-- print(opts.example, opts.another)
+-- end
+-- end, { example = 7, another = 5 })
+
+-- x()
+-- x.new { example = 3 }()
+function utils.make_default_callable(f, default_opts)
+ return setmetatable({
+ new = function(opts)
+ opts = vim.tbl_extend("keep", opts, default_opts)
+ return f(opts)
+ end,
+ }, {
+ __call = function()
+ local ok, err = pcall(f(default_opts))
+ if not ok then
+ error(debug.traceback(err))
+ end
+ end
+ })
+end
+
return utils