From 4c6b12fce57615c38043d55054da8a05d716503f Mon Sep 17 00:00:00 2001 From: JP Appel Date: Sat, 4 Apr 2026 16:19:29 -0400 Subject: Update nvim-treesitter config --- nvim/lua/shared.lua | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'nvim/lua/shared.lua') 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 +function M.to_set(list) + --- @type table + local set = {} + + for _, v in ipairs(list) do + set[v] = true + end + + return set +end + +--- Computes A \ B +--- @generic T +--- @param A table +--- @param B table +--- @return table +function M.set_difference(A, B) + --- @type table + 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 +--- @return T[] +function M.keys(tbl) + local keys = {} + for k, _ in pairs(tbl) do + table.insert(keys, k) + end + + return keys +end + return M -- cgit v1.2.3