diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2026-04-04 16:19:29 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2026-04-04 16:26:40 -0400 |
| commit | 4c6b12fce57615c38043d55054da8a05d716503f (patch) | |
| tree | 01010a7c4ffa44e193194f2a257ce3c27c5f28c9 /nvim/lua/shared.lua | |
| parent | 35fc70735c2563de7dbbc6c4bdff3e91f2f8957c (diff) | |
Update nvim-treesitter config
Diffstat (limited to 'nvim/lua/shared.lua')
| -rw-r--r-- | nvim/lua/shared.lua | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/nvim/lua/shared.lua b/nvim/lua/shared.lua index 907159e..a1cf289 100644 --- a/nvim/lua/shared.lua +++ b/nvim/lua/shared.lua @@ -100,4 +100,50 @@ function M.vert_shift_selection(amount) vim.cmd("normal! gv") end +--- Build a set from a list +--- @generic T +--- @param list T[] +--- @return table<T, boolean> +function M.to_set(list) + --- @type table<T, boolean> + local set = {} + + for _, v in ipairs(list) do + set[v] = true + end + + return set +end + +--- Computes A \ B +--- @generic T +--- @param A table<T, boolean> +--- @param B table<T, boolean> +--- @return table<T, boolean> +function M.set_difference(A, B) + --- @type table<T, boolean> + local diff = {} + + for k, v in pairs(A) do + if v and not B[k] then + diff[k] = true + end + end + + return diff +end + +--- Get keys of table +--- @generic T +--- @param tbl table<T, any> +--- @return T[] +function M.keys(tbl) + local keys = {} + for k, _ in pairs(tbl) do + table.insert(keys, k) + end + + return keys +end + return M |
