summaryrefslogtreecommitdiff
path: root/lua/utils/init.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-07-31 15:04:22 +0200
committerGitHub <[email protected]>2021-07-31 13:04:22 +0000
commit8157f50d1308f42f3db1c7f69c226eb2e5c0b796 (patch)
tree86632f6bd85ab6400fa657e6e6dc41c751c7dc3c /lua/utils/init.lua
parentf36082da0dccf4cfc50dd3fec271b7a5cd41aaea (diff)
feat: get null-ls registered providers by filetype (#1186)
Diffstat (limited to 'lua/utils/init.lua')
-rw-r--r--lua/utils/init.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/lua/utils/init.lua b/lua/utils/init.lua
index 9eb29ad8..1685c1ca 100644
--- a/lua/utils/init.lua
+++ b/lua/utils/init.lua
@@ -110,6 +110,32 @@ function utils.is_string(t)
return type(t) == "string"
end
+--- Extends a list-like table with the unique values of another list-like table.
+---
+--- NOTE: This mutates dst!
+---
+--@see |vim.tbl_extend()|
+---
+--@param dst list which will be modified and appended to.
+--@param src list from which values will be inserted.
+--@param start Start index on src. defaults to 1
+--@param finish Final index on src. defaults to #src
+--@returns dst
+function utils.list_extend_unique(dst, src, start, finish)
+ vim.validate {
+ dst = { dst, "t" },
+ src = { src, "t" },
+ start = { start, "n", true },
+ finish = { finish, "n", true },
+ }
+ for i = start or 1, finish or #src do
+ if not vim.tbl_contains(dst, src[i]) then
+ table.insert(dst, src[i])
+ end
+ end
+ return dst
+end
+
function utils.unrequire(m)
package.loaded[m] = nil
_G[m] = nil