diff options
| author | William Boman <william@redwill.se> | 2024-05-11 21:22:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-11 21:22:49 +0200 |
| commit | 0f1cb65f436b769733d18b41572f617a1fb41f62 (patch) | |
| tree | 05da82b94b6abd153c300418e019d4a3401ab5ef /lua/mason-core/functional | |
| parent | perf(registry): significantly improve the "file:" protocol performance (#1702) (diff) | |
| download | mason-0f1cb65f436b769733d18b41572f617a1fb41f62.tar mason-0f1cb65f436b769733d18b41572f617a1fb41f62.tar.gz mason-0f1cb65f436b769733d18b41572f617a1fb41f62.tar.bz2 mason-0f1cb65f436b769733d18b41572f617a1fb41f62.tar.lz mason-0f1cb65f436b769733d18b41572f617a1fb41f62.tar.xz mason-0f1cb65f436b769733d18b41572f617a1fb41f62.tar.zst mason-0f1cb65f436b769733d18b41572f617a1fb41f62.zip | |
fix: fix usage of deprecated Neovim APIs (#1703)
Diffstat (limited to 'lua/mason-core/functional')
| -rw-r--r-- | lua/mason-core/functional/init.lua | 1 | ||||
| -rw-r--r-- | lua/mason-core/functional/list.lua | 20 | ||||
| -rw-r--r-- | lua/mason-core/functional/type.lua | 4 |
3 files changed, 24 insertions, 1 deletions
diff --git a/lua/mason-core/functional/init.lua b/lua/mason-core/functional/init.lua index 87a5f325..d377d2db 100644 --- a/lua/mason-core/functional/init.lua +++ b/lua/mason-core/functional/init.lua @@ -133,6 +133,7 @@ _.assoc = tbl.assoc local typ = lazy_require "mason-core.functional.type" _.is_nil = typ.is_nil _.is = typ.is +_.is_list = typ.is_list -- TODO do something else with these diff --git a/lua/mason-core/functional/list.lua b/lua/mason-core/functional/list.lua index ff2e18c2..b2c48293 100644 --- a/lua/mason-core/functional/list.lua +++ b/lua/mason-core/functional/list.lua @@ -74,7 +74,25 @@ _.filter = fun.curryN(vim.tbl_filter, 2) ---@type fun(map_fn: (fun(item: T): U), items: T[]): U[] _.map = fun.curryN(vim.tbl_map, 2) -_.flatten = fun.curryN(vim.tbl_flatten, 1) +---@param tbl table +---@return table +_.flatten = function(tbl) + local result = {} + --- @param _tbl table<any,any> + local function _tbl_flatten(_tbl) + local n = #_tbl + for i = 1, n do + local v = _tbl[i] + if type(v) == "table" then + _tbl_flatten(v) + elseif v then + table.insert(result, v) + end + end + end + _tbl_flatten(tbl) + return result +end ---@generic T ---@param map_fn fun(item: T): Optional diff --git a/lua/mason-core/functional/type.lua b/lua/mason-core/functional/type.lua index e3bf5fe7..b15a2025 100644 --- a/lua/mason-core/functional/type.lua +++ b/lua/mason-core/functional/type.lua @@ -11,4 +11,8 @@ _.is = fun.curryN(function(typ, value) return type(value) == typ end, 2) +---@param value any +---@return boolean +_.is_list = vim.fn.has "nvim-0.10" and vim.islist or vim.tbl_islist + return _ |
