diff options
| author | William Boman <william@redwill.se> | 2022-07-17 01:53:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-17 01:53:20 +0200 |
| commit | 7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa (patch) | |
| tree | 66ac5066ba415eeb3557ba129f0282c4feb44300 /lua/mason-core | |
| parent | fix(jdtls): download milestone versions instead of snapshots (#87) (diff) | |
| download | mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.tar mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.tar.gz mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.tar.bz2 mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.tar.lz mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.tar.xz mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.tar.zst mason-7cb9f7aea300428fc38b5a71d1a6c48cf1f42efa.zip | |
fix(mason-lspconfig): deduplicate :LspInstall completion items (#88)
Diffstat (limited to 'lua/mason-core')
| -rw-r--r-- | lua/mason-core/functional/init.lua | 1 | ||||
| -rw-r--r-- | lua/mason-core/functional/list.lua | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lua/mason-core/functional/init.lua b/lua/mason-core/functional/init.lua index a7b0a369..97865f05 100644 --- a/lua/mason-core/functional/init.lua +++ b/lua/mason-core/functional/init.lua @@ -38,6 +38,7 @@ _.head = list.head _.length = list.length _.flatten = list.flatten _.sort_by = list.sort_by +_.uniq_by = list.uniq_by _.join = list.join -- relation diff --git a/lua/mason-core/functional/list.lua b/lua/mason-core/functional/list.lua index c3aaecd8..f30dd13d 100644 --- a/lua/mason-core/functional/list.lua +++ b/lua/mason-core/functional/list.lua @@ -172,4 +172,22 @@ _.join = fun.curryN(function(sep, list) return table.concat(list, sep) end, 2) +---@generic T +---@param fun (item: T): any +---@param list T[] +---@return T[] +_.uniq_by = fun.curryN(function(comp, list) + local set = {} + local result = {} + for i = 1, #list do + local item = list[i] + local uniq_key = comp(item) + if not set[uniq_key] then + set[uniq_key] = true + table.insert(result, item) + end + end + return result +end, 2) + return _ |
