From 61dba9967975d4a48d33776449c627c11f9bd365 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Mon, 2 Feb 2026 14:14:28 -0800 Subject: support config overrides --- util.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'util.lua') diff --git a/util.lua b/util.lua index 99bba7b..d678a9e 100644 --- a/util.lua +++ b/util.lua @@ -125,6 +125,36 @@ function util.stable_kmerge(t, u, k) return res end +function util.flatten_table(src, dst, prefix) + local dst = dst or {} + for k, v in pairs(src) do + local k = prefix and prefix .. '.' .. k or k + if type(v) == 'table' then + util.flatten_table(v, dst, k) + else + dst[k] = v + end + end + return dst +end + +function util.unflatten_table(src, dst) + local dst = dst or {} + for k, v in pairs(src) do + local t = dst + local prev + for curr in (k .. '.'):gmatch('(.-)%.') do + if prev then + t[prev] = t[prev] or {} + t = t[prev] + end + prev = curr + end + t[prev] = v + end + return dst +end + function util.str_seek_prev_char(str, pos) return util.utf8_seek(str, pos, -1) end -- cgit v1.2.3-70-g09d2