aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-05-12 18:02:47 +0200
committerGitHub <noreply@github.com>2022-05-12 18:02:47 +0200
commitf637ef2e6dbfb03cc896143d73749f541ca18e3e (patch)
tree2c15a25a2661d5eb424eace9267642977c58d2e9 /lua/nvim-lsp-installer
parentrun autogen_metadata.lua (diff)
downloadmason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.tar
mason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.tar.gz
mason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.tar.bz2
mason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.tar.lz
mason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.tar.xz
mason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.tar.zst
mason-f637ef2e6dbfb03cc896143d73749f541ca18e3e.zip
feat: patch :LspInfo's "cmd is executable" diagnostic message (#691)
Diffstat (limited to 'lua/nvim-lsp-installer')
-rw-r--r--lua/nvim-lsp-installer/core/functional.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/core/functional.lua b/lua/nvim-lsp-installer/core/functional.lua
index 244c3d96..8b549fb6 100644
--- a/lua/nvim-lsp-installer/core/functional.lua
+++ b/lua/nvim-lsp-installer/core/functional.lua
@@ -172,4 +172,29 @@ function functional.partial(fn, ...)
end
end
+function functional.compose(...)
+ local functions = functional.table_pack(...)
+ assert(functions.n > 0, "compose requires at least one function")
+ return function(...)
+ local result = functional.table_pack(...)
+ for i = functions.n, 1, -1 do
+ result = functional.table_pack(functions[i](unpack(result, 1, result.n)))
+ end
+ return unpack(result, 1, result.n)
+ end
+end
+
+---@generic T
+---@param filter_fn fun(item: T): boolean
+---@return fun(list: T[]): T[]
+function functional.filter(filter_fn)
+ return functional.partial(vim.tbl_filter, filter_fn)
+end
+
+function functional.each(fn, list)
+ for k, v in pairs(list) do
+ fn(v, k)
+ end
+end
+
return functional