aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/data.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-lsp-installer/data.lua')
-rw-r--r--lua/nvim-lsp-installer/data.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/data.lua b/lua/nvim-lsp-installer/data.lua
index 901c293a..b5689142 100644
--- a/lua/nvim-lsp-installer/data.lua
+++ b/lua/nvim-lsp-installer/data.lua
@@ -33,6 +33,21 @@ function Data.list_map(fn, list)
return result
end
+function Data.table_pack(...)
+ return { n = select("#", ...), ... }
+end
+
+function Data.list_not_nil(...)
+ local result = {}
+ local args = Data.table_pack(...)
+ for i = 1, args.n do
+ if args[i] ~= nil then
+ result[#result + 1] = args[i]
+ end
+ end
+ return result
+end
+
function Data.tbl_pack(...)
return { n = select("#", ...), ... }
end
@@ -41,6 +56,10 @@ function Data.when(condition, value)
return condition and value or nil
end
+function Data.lazy(condition, fn)
+ return condition and fn() or nil
+end
+
function Data.coalesce(...)
local args = Data.tbl_pack(...)
for i = 1, args.n do