aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/functional
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-10-19 14:41:42 +0200
committerGitHub <noreply@github.com>2022-10-19 14:41:42 +0200
commit38c3c7f68c0cd442f4faf46569d83c5b8a610c97 (patch)
tree23c655b038ad8c0c1d80fe1aca7eaf5108aeb0f7 /lua/mason-core/functional
parentchore: update generated code (#575) (diff)
downloadmason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.tar
mason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.tar.gz
mason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.tar.bz2
mason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.tar.lz
mason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.tar.xz
mason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.tar.zst
mason-38c3c7f68c0cd442f4faf46569d83c5b8a610c97.zip
feat(api/command): add --debug flag to :MasonInstall (#576)
Diffstat (limited to 'lua/mason-core/functional')
-rw-r--r--lua/mason-core/functional/init.lua1
-rw-r--r--lua/mason-core/functional/list.lua12
2 files changed, 13 insertions, 0 deletions
diff --git a/lua/mason-core/functional/init.lua b/lua/mason-core/functional/init.lua
index a153e8fa..ed502a4b 100644
--- a/lua/mason-core/functional/init.lua
+++ b/lua/mason-core/functional/init.lua
@@ -50,6 +50,7 @@ _.flatten = list.flatten
_.sort_by = list.sort_by
_.uniq_by = list.uniq_by
_.join = list.join
+_.partition = list.partition
---@module "mason-core.functional.relation"
local relation = lazy_require "mason-core.functional.relation"
diff --git a/lua/mason-core/functional/list.lua b/lua/mason-core/functional/list.lua
index 151b9b25..31b631b8 100644
--- a/lua/mason-core/functional/list.lua
+++ b/lua/mason-core/functional/list.lua
@@ -189,4 +189,16 @@ _.uniq_by = fun.curryN(function(id, list)
return result
end, 2)
+---@generic T
+---@param predicate fun(item: T): boolean
+---@param list T[]
+---@return T[][] # [T[], T[]]
+_.partition = fun.curryN(function(predicate, list)
+ local partitions = { {}, {} }
+ for _, item in ipairs(list) do
+ table.insert(partitions[predicate(item) and 1 or 2], item)
+ end
+ return partitions
+end, 2)
+
return _