aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/core/functional/init.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-05-17 13:49:18 +0200
committerGitHub <noreply@github.com>2022-05-17 13:49:18 +0200
commit9fa0bb2822af391db96687ad6ddb66ddb3529c58 (patch)
tree82d5838c98e5c0b3f273f23326099383be6b8c0e /lua/nvim-lsp-installer/core/functional/init.lua
parentrun autogen_metadata.lua (diff)
downloadmason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.tar
mason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.tar.gz
mason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.tar.bz2
mason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.tar.lz
mason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.tar.xz
mason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.tar.zst
mason-9fa0bb2822af391db96687ad6ddb66ddb3529c58.zip
chore(functional): restructure and extend functional modules (#703)
Diffstat (limited to 'lua/nvim-lsp-installer/core/functional/init.lua')
-rw-r--r--lua/nvim-lsp-installer/core/functional/init.lua89
1 files changed, 89 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/core/functional/init.lua b/lua/nvim-lsp-installer/core/functional/init.lua
new file mode 100644
index 00000000..45a09ea6
--- /dev/null
+++ b/lua/nvim-lsp-installer/core/functional/init.lua
@@ -0,0 +1,89 @@
+local _ = {}
+
+-- data
+local data = require "nvim-lsp-installer.core.functional.data"
+_.table_pack = data.table_pack
+_.enum = data.enum
+_.set_of = data.set_of
+
+-- function
+local fun = require "nvim-lsp-installer.core.functional.function"
+_.curryN = fun.curryN
+_.compose = fun.compose
+_.partial = fun.partial
+_.identity = fun.identity
+_.always = fun.always
+_.T = fun.T
+_.F = fun.F
+_.memoize = fun.memoize
+_.lazy = fun.lazy
+
+-- list
+local list = require "nvim-lsp-installer.core.functional.list"
+_.reverse = list.reverse
+_.list_not_nil = list.list_not_nil
+_.list_copy = list.list_copy
+_.find_first = list.find_first
+_.any = list.any
+_.filter = list.filter
+_.map = list.map
+_.each = list.each
+
+-- relation
+local relation = require "nvim-lsp-installer.core.functional.relation"
+_.equals = relation.equals
+_.prop_eq = relation.prop_eq
+_.prop_satisfies = relation.prop_satisfies
+
+-- logic
+local logic = require "nvim-lsp-installer.core.functional.logic"
+_.all_pass = logic.all_pass
+_.if_else = logic.if_else
+_.is_not = logic.is_not
+_.cond = logic.cond
+
+-- number
+local number = require "nvim-lsp-installer.core.functional.number"
+_.negate = number.negate
+_.gt = number.gt
+_.gte = number.gte
+_.lt = number.lt
+_.lte = number.lte
+_.inc = number.inc
+_.dec = number.dec
+
+-- string
+local string = require "nvim-lsp-installer.core.functional.string"
+_.matches = string.matches
+_.format = string.format
+
+-- table
+local tbl = require "nvim-lsp-installer.core.functional.table"
+_.prop = tbl.prop
+
+-- type
+local typ = require "nvim-lsp-installer.core.functional.type"
+_.is_nil = typ.is_nil
+_.is = typ.is
+
+-- TODO do something else with these
+
+_.coalesce = function(...)
+ local args = _.table_pack(...)
+ for i = 1, args.n do
+ local variable = args[i]
+ if variable ~= nil then
+ return variable
+ end
+ end
+end
+
+_.when = function(condition, value)
+ return condition and value or nil
+end
+
+_.lazy_when = function(condition, value)
+ return condition and value() or nil
+end
+
+return _