diff options
| author | William Boman <william@redwill.se> | 2022-10-30 17:43:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-30 17:43:46 +0100 |
| commit | 37c745fa73b983c86904132efb30ef2a4a76df5e (patch) | |
| tree | c55fe52b7c5c20ed4fdbb3ee073519fd0ccbe6b2 /lua/mason-core/functional | |
| parent | chore: update generated code (#608) (diff) | |
| download | mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.gz mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.bz2 mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.lz mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.xz mason-37c745fa73b983c86904132efb30ef2a4a76df5e.tar.zst mason-37c745fa73b983c86904132efb30ef2a4a76df5e.zip | |
feat: add provider interface (#601)
Diffstat (limited to 'lua/mason-core/functional')
| -rw-r--r-- | lua/mason-core/functional/function.lua | 5 | ||||
| -rw-r--r-- | lua/mason-core/functional/init.lua | 3 | ||||
| -rw-r--r-- | lua/mason-core/functional/list.lua | 7 | ||||
| -rw-r--r-- | lua/mason-core/functional/string.lua | 4 |
4 files changed, 19 insertions, 0 deletions
diff --git a/lua/mason-core/functional/function.lua b/lua/mason-core/functional/function.lua index c6d460a5..f1475229 100644 --- a/lua/mason-core/functional/function.lua +++ b/lua/mason-core/functional/function.lua @@ -89,4 +89,9 @@ _.lazy = function(fn) end end +_.tap = _.curryN(function(fn, value) + fn(value) + return value +end, 2) + return _ diff --git a/lua/mason-core/functional/init.lua b/lua/mason-core/functional/init.lua index ed502a4b..04ef1534 100644 --- a/lua/mason-core/functional/init.lua +++ b/lua/mason-core/functional/init.lua @@ -27,6 +27,7 @@ _.T = fun.T _.F = fun.F _.memoize = fun.memoize _.lazy = fun.lazy +_.tap = fun.tap ---@module "mason-core.functional.list" local list = lazy_require "mason-core.functional.list" @@ -45,6 +46,7 @@ _.prepend = list.prepend _.zip_table = list.zip_table _.nth = list.nth _.head = list.head +_.last = list.last _.length = list.length _.flatten = list.flatten _.sort_by = list.sort_by @@ -80,6 +82,7 @@ _.dec = number.dec ---@module "mason-core.functional.string" local string = lazy_require "mason-core.functional.string" _.matches = string.matches +_.match = string.match _.format = string.format _.split = string.split _.gsub = string.gsub diff --git a/lua/mason-core/functional/list.lua b/lua/mason-core/functional/list.lua index 31b631b8..2a5378fe 100644 --- a/lua/mason-core/functional/list.lua +++ b/lua/mason-core/functional/list.lua @@ -148,6 +148,13 @@ end, 2) _.head = _.nth(1) +---@generic T +---@param list T[] +---@return T? +_.last = function(list) + return list[#list] +end + ---@param value string|any[] _.length = function(value) return #value diff --git a/lua/mason-core/functional/string.lua b/lua/mason-core/functional/string.lua index 7726c8e1..9b7da979 100644 --- a/lua/mason-core/functional/string.lua +++ b/lua/mason-core/functional/string.lua @@ -8,6 +8,10 @@ _.matches = fun.curryN(function(pattern, str) return str:match(pattern) ~= nil end, 2) +_.match = fun.curryN(function(pattern, str) + return { str:match(pattern) } +end, 2) + ---@param template string ---@param str string _.format = fun.curryN(function(template, str) |
