From 38c3c7f68c0cd442f4faf46569d83c5b8a610c97 Mon Sep 17 00:00:00 2001 From: William Boman Date: Wed, 19 Oct 2022 14:41:42 +0200 Subject: feat(api/command): add --debug flag to :MasonInstall (#576) --- lua/mason-core/functional/init.lua | 1 + lua/mason-core/functional/list.lua | 12 ++++++++++++ 2 files changed, 13 insertions(+) (limited to 'lua/mason-core/functional') 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 _ -- cgit v1.2.3-70-g09d2